Console: switching to colour dummy device 80x25 ============================================================================= ====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Not tainted ------------------------------------------------------ syz.0.0/5314 is trying to acquire lock: ffffffff8eb4c3c0 (console_owner){....}-{0:0}, at: rcu_try_lock_acquire include/linux/rcupdate.h:305 [inline] ffffffff8eb4c3c0 (console_owner){....}-{0:0}, at: srcu_read_lock_nmisafe include/linux/srcu.h:428 [inline] ffffffff8eb4c3c0 (console_owner){....}-{0:0}, at: console_srcu_read_lock kernel/printk/printk.c:291 [inline] ffffffff8eb4c3c0 (console_owner){....}-{0:0}, at: console_flush_one_record kernel/printk/printk.c:3246 [inline] ffffffff8eb4c3c0 (console_owner){....}-{0:0}, at: console_flush_all+0x123/0xaf0 kernel/printk/printk.c:3343 but task is already holding lock: ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: spin_lock_irq include/linux/spinlock.h:377 [inline] ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: free_partial mm/slub.c:8009 [inline] ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: __kmem_cache_shutdown+0x111/0x2a0 mm/slub.c:8058 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #4 (&n->list_lock){-.-.}-{3:3}: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:155 [inline] _raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:181 get_from_partial_node+0x54/0x4c0 mm/slub.c:3817 get_from_partial mm/slub.c:3947 [inline] ___slab_alloc+0xbe/0x950 mm/slub.c:4459 slab_alloc_node mm/slub.c:4908 [inline] kmem_cache_alloc_noprof+0x137/0x5f0 mm/slub.c:4931 kmem_alloc_batch lib/debugobjects.c:371 [inline] fill_pool+0x163/0x600 lib/debugobjects.c:420 debug_objects_fill_pool lib/debugobjects.c:780 [inline] debug_object_activate+0x38d/0x420 lib/debugobjects.c:869 debug_work_activate kernel/workqueue.c:682 [inline] insert_work+0x35/0x330 kernel/workqueue.c:2223 __queue_work+0xcda/0x10a0 kernel/workqueue.c:2401 queue_work_on+0x106/0x1d0 kernel/workqueue.c:2452 queue_work include/linux/workqueue.h:699 [inline] schedule_work include/linux/workqueue.h:760 [inline] pcpu_schedule_balance_work mm/percpu.c:204 [inline] pcpu_alloc_noprof+0xa92/0x1900 mm/percpu.c:1862 iommu_dma_init_fq_percpu drivers/iommu/dma-iommu.c:321 [inline] iommu_dma_init_fq+0x2d3/0x700 drivers/iommu/dma-iommu.c:347 iommu_dma_init_domain drivers/iommu/dma-iommu.c:720 [inline] iommu_setup_dma_ops+0x6e5/0x1820 drivers/iommu/dma-iommu.c:2159 bus_iommu_probe+0x296/0x470 drivers/iommu/iommu.c:1983 iommu_device_register+0x1af/0x210 drivers/iommu/iommu.c:307 intel_iommu_init+0x6f0/0x8e0 drivers/iommu/intel/iommu.c:2662 pci_iommu_init+0x38/0x70 arch/x86/kernel/pci-dma.c:174 do_one_initcall+0x250/0x870 init/main.c:1353 do_initcall_level+0x10a/0x1a0 init/main.c:1415 do_initcalls+0x59/0xa0 init/main.c:1431 kernel_init_freeable+0x29d/0x3e0 init/main.c:1666 kernel_init+0x22/0x1d0 init/main.c:1556 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 -> #3 (&pool->lock){-.-.}-{2:2}: __raw_spin_lock include/linux/spinlock_api_smp.h:190 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:173 __queue_work+0x731/0x10a0 kernel/workqueue.c:2361 queue_work_on+0x106/0x1d0 kernel/workqueue.c:2452 queue_work include/linux/workqueue.h:699 [inline] rpm_suspend+0xeca/0x17a0 drivers/base/power/runtime.c:685 __pm_runtime_idle+0x12f/0x1a0 drivers/base/power/runtime.c:1129 pm_runtime_put include/linux/pm_runtime.h:551 [inline] __device_attach+0x355/0x450 drivers/base/dd.c:1116 device_initial_probe+0xa1/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x12a/0x220 drivers/base/bus.c:620 device_add+0x7d7/0xb80 drivers/base/core.c:3772 serial_base_port_add+0x18f/0x270 drivers/tty/serial/serial_base_bus.c:186 serial_core_port_device_add drivers/tty/serial/serial_core.c:3275 [inline] serial_core_register_port+0x37f/0x2840 drivers/tty/serial/serial_core.c:3314 serial8250_register_8250_port+0x16b4/0x2090 drivers/tty/serial/8250/8250_core.c:828 serial_pnp_probe+0x56a/0x7f0 drivers/tty/serial/8250/8250_pnp.c:480 pnp_device_probe+0x30b/0x4c0 drivers/pnp/driver.c:111 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __driver_attach+0x339/0x600 drivers/base/dd.c:1292 bus_for_each_dev+0x23b/0x2c0 drivers/base/bus.c:383 bus_add_driver+0x345/0x670 drivers/base/bus.c:763 driver_register+0x23a/0x320 drivers/base/driver.c:174 serial8250_init+0x8f/0x160 drivers/tty/serial/8250/8250_platform.c:317 do_one_initcall+0x250/0x870 init/main.c:1353 do_initcall_level+0x10a/0x1a0 init/main.c:1415 do_initcalls+0x59/0xa0 init/main.c:1431 kernel_init_freeable+0x29d/0x3e0 init/main.c:1666 kernel_init+0x22/0x1d0 init/main.c:1556 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 -> #2 (&dev->power.lock){-...}-{3:3}: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:155 [inline] _raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:181 __pm_runtime_resume+0x10f/0x180 drivers/base/power/runtime.c:1196 pm_runtime_get include/linux/pm_runtime.h:494 [inline] __uart_start+0x171/0x460 drivers/tty/serial/serial_core.c:149 uart_write+0x251/0x9f0 drivers/tty/serial/serial_core.c:629 process_output_block drivers/tty/n_tty.c:557 [inline] n_tty_write+0xd49/0x11e0 drivers/tty/n_tty.c:2366 iterate_tty_write drivers/tty/tty_io.c:1006 [inline] file_tty_write+0x50d/0x9f0 drivers/tty/tty_io.c:1081 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #1 (&port_lock_key){-.-.}-{3:3}: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:155 [inline] _raw_spin_lock_irqsave+0x40/0x60 kernel/locking/spinlock.c:181 uart_port_lock_irqsave include/linux/serial_core.h:719 [inline] serial8250_console_write+0x153/0x1ba0 drivers/tty/serial/8250/8250_port.c:3344 console_emit_next_record kernel/printk/printk.c:3183 [inline] console_flush_one_record kernel/printk/printk.c:3269 [inline] console_flush_all+0x6ea/0xaf0 kernel/printk/printk.c:3343 __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0xd1/0x1c0 kernel/printk/printk.c:3413 vprintk_emit+0x485/0x560 kernel/printk/printk.c:2479 _printk+0xdd/0x130 kernel/printk/printk.c:2504 register_console+0xbc3/0xfc0 kernel/printk/printk.c:4208 univ8250_console_init+0x3a/0x70 drivers/tty/serial/8250/8250_core.c:515 console_init+0x10b/0x4a0 kernel/printk/printk.c:4407 start_kernel+0x238/0x3e0 init/main.c:1118 x86_64_start_reservations+0x24/0x30 arch/x86/kernel/head64.c:310 x86_64_start_kernel+0x137/0x1b0 arch/x86/kernel/head64.c:291 common_startup_64+0x13e/0x157 -> #0 (console_owner){....}-{0:0}: check_prev_add kernel/locking/lockdep.c:3181 [inline] check_prevs_add kernel/locking/lockdep.c:3300 [inline] validate_chain kernel/locking/lockdep.c:3924 [inline] __lock_acquire+0x1520/0x2cf0 kernel/locking/lockdep.c:5253 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5886 console_lock_spinning_enable kernel/printk/printk.c:1902 [inline] console_emit_next_record kernel/printk/printk.c:3177 [inline] console_flush_one_record kernel/printk/printk.c:3269 [inline] console_flush_all+0x693/0xaf0 kernel/printk/printk.c:3343 __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0xd1/0x1c0 kernel/printk/printk.c:3413 vprintk_emit+0x485/0x560 kernel/printk/printk.c:2479 _printk+0xdd/0x130 kernel/printk/printk.c:2504 __slab_bug+0x6e/0xd0 mm/slub.c:1144 slab_bug+0x57/0x80 mm/slub.c:1155 list_slab_objects+0x35/0x1a0 mm/slub.c:7978 free_partial mm/slub.c:8015 [inline] __kmem_cache_shutdown+0x1a5/0x2a0 mm/slub.c:8058 kmem_cache_destroy+0x98/0x180 mm/slab_common.c:569 virtio_gpu_free_vbufs+0x40/0x70 drivers/gpu/drm/virtio/virtgpu_vq.c:86 virtio_gpu_release+0x55/0x140 drivers/gpu/drm/virtio/virtgpu_kms.c:312 drm_dev_release drivers/gpu/drm/drm_drv.c:912 [inline] kref_put include/linux/kref.h:65 [inline] drm_dev_put+0xa9/0x120 drivers/gpu/drm/drm_drv.c:948 virtio_dev_remove+0x9c/0x1b0 drivers/virtio/virtio.c:375 device_remove drivers/base/dd.c:616 [inline] __device_release_driver drivers/base/dd.c:1349 [inline] device_release_driver_internal+0x48b/0x880 drivers/base/dd.c:1372 unbind_store+0x1a1/0x1d0 drivers/base/bus.c:244 kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Chain exists of: console_owner --> &pool->lock --> &n->list_lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&n->list_lock); lock(&pool->lock); lock(&n->list_lock); lock(console_owner); *** DEADLOCK *** locks held by syz.0.0/5314: 9, last CPU#0: #0: ffff88800031ad30 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x246/0x320 fs/file.c:1259 #1: ffff8880127b8460 (sb_writers#7){.+.+}-{0:0}, at: file_start_write include/linux/fs.h:2739 [inline] #1: ffff8880127b8460 (sb_writers#7){.+.+}-{0:0}, at: vfs_write+0x22b/0xba0 fs/read_write.c:683 #2: ffff88801fc65480 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x1d8/0x540 fs/kernfs/file.c:336 #3: ffff88803335f1b0 (&dev->mutex){....}-{4:4}, at: device_lock include/linux/device.h:1104 [inline] #3: ffff88803335f1b0 (&dev->mutex){....}-{4:4}, at: __device_driver_lock drivers/base/dd.c:1171 [inline] #3: ffff88803335f1b0 (&dev->mutex){....}-{4:4}, at: device_release_driver_internal+0xb9/0x880 drivers/base/dd.c:1369 #4: ffffffff8e9e75d0 (cpu_hotplug_lock){++++}-{0:0}, at: kmem_cache_destroy+0x60/0x180 mm/slab_common.c:556 #5: ffffffff8ec6a4e8 (slab_mutex){+.+.}-{4:4}, at: kmem_cache_destroy+0x6e/0x180 mm/slab_common.c:557 #6: ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: spin_lock_irq include/linux/spinlock.h:377 [inline] #6: ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: free_partial mm/slub.c:8009 [inline] #6: ffff8880004cde58 (&n->list_lock){-.-.}-{3:3}, at: __kmem_cache_shutdown+0x111/0x2a0 mm/slub.c:8058 #7: ffffffff8eb4c420 (console_lock){+.+.}-{0:0}, at: _printk+0xdd/0x130 kernel/printk/printk.c:2504 #8: ffffffff8ea33cb8 (console_srcu){....}-{0:0}, at: rcu_try_lock_acquire include/linux/rcupdate.h:305 [inline] #8: ffffffff8ea33cb8 (console_srcu){....}-{0:0}, at: srcu_read_lock_nmisafe include/linux/srcu.h:428 [inline] #8: ffffffff8ea33cb8 (console_srcu){....}-{0:0}, at: console_srcu_read_lock kernel/printk/printk.c:291 [inline] #8: ffffffff8ea33cb8 (console_srcu){....}-{0:0}, at: console_flush_one_record kernel/printk/printk.c:3246 [inline] #8: ffffffff8ea33cb8 (console_srcu){....}-{0:0}, at: console_flush_all+0x123/0xaf0 kernel/printk/printk.c:3343 stack backtrace: CPU: 0 UID: 0 PID: 5314 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_circular_bug+0x2e1/0x300 kernel/locking/lockdep.c:2059 check_noncircular+0x12e/0x150 kernel/locking/lockdep.c:2191 check_prev_add kernel/locking/lockdep.c:3181 [inline] check_prevs_add kernel/locking/lockdep.c:3300 [inline] validate_chain kernel/locking/lockdep.c:3924 [inline] __lock_acquire+0x1520/0x2cf0 kernel/locking/lockdep.c:5253 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5886 console_lock_spinning_enable kernel/printk/printk.c:1902 [inline] console_emit_next_record kernel/printk/printk.c:3177 [inline] console_flush_one_record kernel/printk/printk.c:3269 [inline] console_flush_all+0x693/0xaf0 kernel/printk/printk.c:3343 __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0xd1/0x1c0 kernel/printk/printk.c:3413 vprintk_emit+0x485/0x560 kernel/printk/printk.c:2479 _printk+0xdd/0x130 kernel/printk/printk.c:2504 __slab_bug+0x6e/0xd0 mm/slub.c:1144 slab_bug+0x57/0x80 mm/slub.c:1155 list_slab_objects+0x35/0x1a0 mm/slub.c:7978 free_partial mm/slub.c:8015 [inline] __kmem_cache_shutdown+0x1a5/0x2a0 mm/slub.c:8058 kmem_cache_destroy+0x98/0x180 mm/slab_common.c:569 virtio_gpu_free_vbufs+0x40/0x70 drivers/gpu/drm/virtio/virtgpu_vq.c:86 virtio_gpu_release+0x55/0x140 drivers/gpu/drm/virtio/virtgpu_kms.c:312 drm_dev_release drivers/gpu/drm/drm_drv.c:912 [inline] kref_put include/linux/kref.h:65 [inline] drm_dev_put+0xa9/0x120 drivers/gpu/drm/drm_drv.c:948 virtio_dev_remove+0x9c/0x1b0 drivers/virtio/virtio.c:375 device_remove drivers/base/dd.c:616 [inline] __device_release_driver drivers/base/dd.c:1349 [inline] device_release_driver_internal+0x48b/0x880 drivers/base/dd.c:1372 unbind_store+0x1a1/0x1d0 drivers/base/bus.c:244 kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f888879e0d9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f88896bcfe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f8888a25fa0 RCX: 00007f888879e0d9 RDX: 0000000000000007 RSI: 0000200000000140 RDI: 0000000000000004 RBP: 00007f8888835024 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f8888a26038 R14: 00007f8888a25fa0 R15: 00007ffc392c6b98 BUG virtio-gpu-vbufs (Not tainted): Objects remaining on __kmem_cache_shutdown() ----------------------------------------------------------------------------- Object 0xffff8880121a4e38 @offset=3640 Slab 0xffffea0000486900 objects=14 used=1 fp=0xffff8880121a4af0 flags=0xfff00000000200(workingset|node=0|zone=1|lastcpupid=0x7ff) ------------[ cut here ]------------ 1 WARNING: mm/slub.c:1244 at __slab_err+0x15/0x20 mm/slub.c:1244, CPU#0: syz.0.0/5314 Modules linked in: CPU: 0 UID: 0 PID: 5314 Comm: syz.0.0 Tainted: G B syzkaller #0 PREEMPT(full) Tainted: [B]=BAD_PAGE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:__slab_err+0x15/0x20 mm/slub.c:1244 Code: 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 e8 2b 00 00 00 bf 05 00 00 00 be 01 00 00 00 e8 cc 93 5e 00 90 <0f> 0b 90 c3 cc cc cc cc cc 66 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc9000f667a80 EFLAGS: 00010087 RAX: ffffffff8186c8da RBX: ffff888034eb2000 RCX: 0000000000100000 RDX: ffffc9000ecc9000 RSI: 000000000005dedd RDI: 000000000005dede RBP: ffffea00004a9550 R08: ffffffff937330c7 R09: 1ffffffff26e6618 R10: dffffc0000000000 R11: fffffbfff26e6619 R12: ffffea00004adc50 R13: ffffea0000486900 R14: ffffc9000f667a98 R15: ffff8880004cde40 FS: 00007f88896bd6c0(0000) GS:ffff88808c533000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f3e42b909c0 CR3: 000000001fcc9000 CR4: 0000000000352ef0 Call Trace: free_partial mm/slub.c:8015 [inline] __kmem_cache_shutdown+0x1a5/0x2a0 mm/slub.c:8058 kmem_cache_destroy+0x98/0x180 mm/slab_common.c:569 virtio_gpu_free_vbufs+0x40/0x70 drivers/gpu/drm/virtio/virtgpu_vq.c:86 virtio_gpu_release+0x55/0x140 drivers/gpu/drm/virtio/virtgpu_kms.c:312 drm_dev_release drivers/gpu/drm/drm_drv.c:912 [inline] kref_put include/linux/kref.h:65 [inline] drm_dev_put+0xa9/0x120 drivers/gpu/drm/drm_drv.c:948 virtio_dev_remove+0x9c/0x1b0 drivers/virtio/virtio.c:375 device_remove drivers/base/dd.c:616 [inline] __device_release_driver drivers/base/dd.c:1349 [inline] device_release_driver_internal+0x48b/0x880 drivers/base/dd.c:1372 unbind_store+0x1a1/0x1d0 drivers/base/bus.c:244 kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f888879e0d9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f88896bcfe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f8888a25fa0 RCX: 00007f888879e0d9 RDX: 0000000000000007 RSI: 0000200000000140 RDI: 0000000000000004 RBP: 00007f8888835024 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f8888a26038 R14: 00007f8888a25fa0 R15: 00007ffc392c6b98