--- x/drivers/dma-buf/sync_debug.c +++ s/drivers/dma-buf/sync_debug.c @@ -107,15 +107,16 @@ static void sync_print_fence(struct seq_ static void sync_print_obj(struct seq_file *s, struct sync_timeline *obj) { struct list_head *pos; + unsigned long flags; seq_printf(s, "%s: %d\n", obj->name, obj->value); - spin_lock_irq(&obj->lock); + spin_lock_irqsave(&obj->lock, flags); list_for_each(pos, &obj->pt_list) { struct sync_pt *pt = container_of(pos, struct sync_pt, link); sync_print_fence(s, &pt->base, false); } - spin_unlock_irq(&obj->lock); + spin_unlock_irqrestore(&obj->lock, flags); } static void sync_print_sync_file(struct seq_file *s, @@ -141,10 +142,11 @@ static void sync_print_sync_file(struct static int sync_info_debugfs_show(struct seq_file *s, void *unused) { struct list_head *pos; + unsigned long flags; seq_puts(s, "objs:\n--------------\n"); - spin_lock_irq(&sync_timeline_list_lock); + spin_lock_irqsave(&sync_timeline_list_lock, flags); list_for_each(pos, &sync_timeline_list_head) { struct sync_timeline *obj = container_of(pos, struct sync_timeline, @@ -153,11 +155,11 @@ static int sync_info_debugfs_show(struct sync_print_obj(s, obj); seq_putc(s, '\n'); } - spin_unlock_irq(&sync_timeline_list_lock); + spin_unlock_irqrestore(&sync_timeline_list_lock, flags); seq_puts(s, "fences:\n--------------\n"); - spin_lock_irq(&sync_file_list_lock); + spin_lock_irqsave(&sync_file_list_lock, flags); list_for_each(pos, &sync_file_list_head) { struct sync_file *sync_file = container_of(pos, struct sync_file, sync_file_list); @@ -165,7 +167,7 @@ static int sync_info_debugfs_show(struct sync_print_sync_file(s, sync_file); seq_putc(s, '\n'); } - spin_unlock_irq(&sync_file_list_lock); + spin_unlock_irqrestore(&sync_file_list_lock, flags); return 0; }