Extracting prog: 1m47.00861739s Minimizing prog: 3m52.662971289s Simplifying prog options: 0s Extracting C: 28.616371382s Simplifying C: 6m4.347683436s extracting reproducer from 1 programs testing a last program of every proc single: executing 1 programs separately with timeout 30s testing program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB="12011001000000405f0500a800010102030109022e0001010080320904000004ff00000007050102080000070582030800010705030240000007058402400000"], 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program crashed: possible deadlock in mdc800_device_open single: successfully extracted reproducer found reproducer with 2 syscalls minimizing guilty program testing program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB="12011001000000405f0500a800010102030109022e0001010080320904000004ff00000007050102080000070582030800010705030240000007058402400000"], 0x0) program did not crash testing program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_open_dev$char_usb detailed listing: executing program 0: syz_open_dev$char_usb(0xc, 0xb4, 0x0) program did not crash testing program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, 0x0, 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program did not crash testing program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB], 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program did not crash extracting C reproducer testing compiled C program (duration=30s, {Threaded:true Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open simplifying C reproducer testing compiled C program (duration=30s, {Threaded:false Repeat:true RepeatTimes:0 Procs:5 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:true Cgroups:true BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:true NetDevices:true NetReset:false Cgroups:false BinfmtMisc:true CloseFDs:true KCSAN:false DevlinkPCI:false NicVF:false USB:true VhciInjection:true Wifi:true IEEE802154:true Sysctl:true Swap:true UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:true Sysctl:true Swap:false UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:true Swap:false UseTmpDir:true HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:true Swap:false UseTmpDir:false HandleSegv:true Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:true Swap:false UseTmpDir:false HandleSegv:false Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing compiled C program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb program crashed: possible deadlock in mdc800_device_open testing program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB="12011001000000405f0500a800010102030109022e0001010080320904000004ff00000007050102080000070582030800010705030240000007058402400000"], 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program crashed: possible deadlock in mdc800_device_open validation run: crashed=true testing program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB="12011001000000405f0500a800010102030109022e0001010080320904000004ff00000007050102080000070582030800010705030240000007058402400000"], 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program crashed: possible deadlock in mdc800_device_open validation run: crashed=true testing program (duration=30s, {Threaded:false Repeat:false RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Trace:false CallComments:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}): syz_usb_connect-syz_open_dev$char_usb detailed listing: executing program 0: syz_usb_connect(0x2, 0x40, &(0x7f0000000000)=ANY=[@ANYBLOB="12011001000000405f0500a800010102030109022e0001010080320904000004ff00000007050102080000070582030800010705030240000007058402400000"], 0x0) syz_open_dev$char_usb(0xc, 0xb4, 0x0) program crashed: possible deadlock in mdc800_device_open validation run: crashed=true reproducing took 17m25.930898727s repro crashed as (corrupted=false): ====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Not tainted ------------------------------------------------------ syz.0.17/4895 is trying to acquire lock: ffff0000c9c18a18 (&mdc800->io_lock){+.+.}-{4:4}, at: mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 but task is already holding lock: ffff8000896fe188 (minor_rwsem#2){++++}-{4:4}, at: usb_open+0x3c/0x1c0 drivers/usb/core/file.c:38 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (minor_rwsem#2){++++}-{4:4}: down_write+0x50/0xc0 kernel/locking/rwsem.c:1631 usb_register_dev+0x11c/0x428 drivers/usb/core/file.c:134 mdc800_usb_probe+0x5a4/0xd28 drivers/usb/image/mdc800.c:485 usb_probe_interface+0x374/0x834 drivers/usb/core/driver.c:399 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x29c/0x800 drivers/base/dd.c:706 __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868 driver_probe_device+0x6c/0x19c drivers/base/dd.c:898 __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026 bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500 __device_attach+0x248/0x390 drivers/base/dd.c:1098 device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153 bus_probe_device+0x58/0x120 drivers/base/bus.c:620 device_add+0x6cc/0x9e0 drivers/base/core.c:3776 usb_set_configuration+0x1184/0x158c drivers/usb/core/message.c:2268 usb_generic_driver_probe+0x8c/0x148 drivers/usb/core/generic.c:250 usb_probe_device+0x114/0x2b0 drivers/usb/core/driver.c:293 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x29c/0x800 drivers/base/dd.c:706 __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868 driver_probe_device+0x6c/0x19c drivers/base/dd.c:898 __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026 bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500 __device_attach+0x248/0x390 drivers/base/dd.c:1098 device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153 bus_probe_device+0x58/0x120 drivers/base/bus.c:620 device_add+0x6cc/0x9e0 drivers/base/core.c:3776 usb_new_device+0x9c4/0x11f8 drivers/usb/core/hub.c:2708 hub_port_connect drivers/usb/core/hub.c:5580 [inline] hub_port_connect_change drivers/usb/core/hub.c:5720 [inline] port_event drivers/usb/core/hub.c:5884 [inline] hub_event+0x1ef0/0x39fc drivers/usb/core/hub.c:5966 process_one_work kernel/workqueue.c:3387 [inline] process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3470 worker_thread+0x798/0xbd0 kernel/workqueue.c:3551 kthread+0x304/0x3d4 kernel/kthread.c:436 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838 -> #0 (&mdc800->io_lock){+.+.}-{4:4}: 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+0x1600/0x2a6c kernel/locking/lockdep.c:5254 lock_acquire+0x150/0x370 kernel/locking/lockdep.c:5908 __mutex_lock_common kernel/locking/mutex.c:646 [inline] __mutex_lock+0x164/0xf14 kernel/locking/mutex.c:821 mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:874 mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 usb_open+0x150/0x1c0 drivers/usb/core/file.c:47 chrdev_open+0x398/0x3e8 fs/char_dev.c:411 do_dentry_open+0x5c4/0xfc0 fs/open.c:996 vfs_open+0x44/0x2dc fs/open.c:1101 do_open fs/namei.c:4837 [inline] path_openat+0x1084/0x18f4 fs/namei.c:5000 do_file_open+0x1c8/0x2e8 fs/namei.c:5029 do_sys_openat2+0x114/0x1e8 fs/open.c:1417 do_sys_open+0xb0/0xe0 fs/open.c:1423 __do_sys_openat fs/open.c:1439 [inline] __se_sys_openat fs/open.c:1434 [inline] __arm64_sys_openat+0xa8/0xc4 fs/open.c:1434 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x244 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xec/0x23c arch/arm64/kernel/syscall.c:121 do_el0_svc+0x4c/0x5c arch/arm64/kernel/syscall.c:140 el0_svc+0x64/0x260 arch/arm64/kernel/entry-common.c:758 el0t_64_sync_handler+0x44/0x104 arch/arm64/kernel/entry-common.c:777 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:590 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- rlock(minor_rwsem#2); lock(&mdc800->io_lock); lock(minor_rwsem#2); lock(&mdc800->io_lock); *** DEADLOCK *** locks held by syz.0.17/4895: 1, last CPU#1: #0: ffff8000896fe188 (minor_rwsem#2){++++}-{4:4}, at: usb_open+0x3c/0x1c0 drivers/usb/core/file.c:38 stack backtrace: CPU: 1 UID: 0 PID: 4895 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/14/2026 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 print_circular_bug+0x328/0x330 kernel/locking/lockdep.c:2059 check_noncircular+0x158/0x174 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+0x1600/0x2a6c kernel/locking/lockdep.c:5254 lock_acquire+0x150/0x370 kernel/locking/lockdep.c:5908 __mutex_lock_common kernel/locking/mutex.c:646 [inline] __mutex_lock+0x164/0xf14 kernel/locking/mutex.c:821 mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:874 mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 usb_open+0x150/0x1c0 drivers/usb/core/file.c:47 chrdev_open+0x398/0x3e8 fs/char_dev.c:411 do_dentry_open+0x5c4/0xfc0 fs/open.c:996 vfs_open+0x44/0x2dc fs/open.c:1101 do_open fs/namei.c:4837 [inline] path_openat+0x1084/0x18f4 fs/namei.c:5000 do_file_open+0x1c8/0x2e8 fs/namei.c:5029 do_sys_openat2+0x114/0x1e8 fs/open.c:1417 do_sys_open+0xb0/0xe0 fs/open.c:1423 __do_sys_openat fs/open.c:1439 [inline] __se_sys_openat fs/open.c:1434 [inline] __arm64_sys_openat+0xa8/0xc4 fs/open.c:1434 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x244 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xec/0x23c arch/arm64/kernel/syscall.c:121 do_el0_svc+0x4c/0x5c arch/arm64/kernel/syscall.c:140 el0_svc+0x64/0x260 arch/arm64/kernel/entry-common.c:758 el0t_64_sync_handler+0x44/0x104 arch/arm64/kernel/entry-common.c:777 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:590 final repro crashed as (corrupted=false): ====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Not tainted ------------------------------------------------------ syz.0.17/4895 is trying to acquire lock: ffff0000c9c18a18 (&mdc800->io_lock){+.+.}-{4:4}, at: mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 but task is already holding lock: ffff8000896fe188 (minor_rwsem#2){++++}-{4:4}, at: usb_open+0x3c/0x1c0 drivers/usb/core/file.c:38 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (minor_rwsem#2){++++}-{4:4}: down_write+0x50/0xc0 kernel/locking/rwsem.c:1631 usb_register_dev+0x11c/0x428 drivers/usb/core/file.c:134 mdc800_usb_probe+0x5a4/0xd28 drivers/usb/image/mdc800.c:485 usb_probe_interface+0x374/0x834 drivers/usb/core/driver.c:399 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x29c/0x800 drivers/base/dd.c:706 __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868 driver_probe_device+0x6c/0x19c drivers/base/dd.c:898 __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026 bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500 __device_attach+0x248/0x390 drivers/base/dd.c:1098 device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153 bus_probe_device+0x58/0x120 drivers/base/bus.c:620 device_add+0x6cc/0x9e0 drivers/base/core.c:3776 usb_set_configuration+0x1184/0x158c drivers/usb/core/message.c:2268 usb_generic_driver_probe+0x8c/0x148 drivers/usb/core/generic.c:250 usb_probe_device+0x114/0x2b0 drivers/usb/core/driver.c:293 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x29c/0x800 drivers/base/dd.c:706 __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868 driver_probe_device+0x6c/0x19c drivers/base/dd.c:898 __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026 bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500 __device_attach+0x248/0x390 drivers/base/dd.c:1098 device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153 bus_probe_device+0x58/0x120 drivers/base/bus.c:620 device_add+0x6cc/0x9e0 drivers/base/core.c:3776 usb_new_device+0x9c4/0x11f8 drivers/usb/core/hub.c:2708 hub_port_connect drivers/usb/core/hub.c:5580 [inline] hub_port_connect_change drivers/usb/core/hub.c:5720 [inline] port_event drivers/usb/core/hub.c:5884 [inline] hub_event+0x1ef0/0x39fc drivers/usb/core/hub.c:5966 process_one_work kernel/workqueue.c:3387 [inline] process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3470 worker_thread+0x798/0xbd0 kernel/workqueue.c:3551 kthread+0x304/0x3d4 kernel/kthread.c:436 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838 -> #0 (&mdc800->io_lock){+.+.}-{4:4}: 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+0x1600/0x2a6c kernel/locking/lockdep.c:5254 lock_acquire+0x150/0x370 kernel/locking/lockdep.c:5908 __mutex_lock_common kernel/locking/mutex.c:646 [inline] __mutex_lock+0x164/0xf14 kernel/locking/mutex.c:821 mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:874 mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 usb_open+0x150/0x1c0 drivers/usb/core/file.c:47 chrdev_open+0x398/0x3e8 fs/char_dev.c:411 do_dentry_open+0x5c4/0xfc0 fs/open.c:996 vfs_open+0x44/0x2dc fs/open.c:1101 do_open fs/namei.c:4837 [inline] path_openat+0x1084/0x18f4 fs/namei.c:5000 do_file_open+0x1c8/0x2e8 fs/namei.c:5029 do_sys_openat2+0x114/0x1e8 fs/open.c:1417 do_sys_open+0xb0/0xe0 fs/open.c:1423 __do_sys_openat fs/open.c:1439 [inline] __se_sys_openat fs/open.c:1434 [inline] __arm64_sys_openat+0xa8/0xc4 fs/open.c:1434 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x244 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xec/0x23c arch/arm64/kernel/syscall.c:121 do_el0_svc+0x4c/0x5c arch/arm64/kernel/syscall.c:140 el0_svc+0x64/0x260 arch/arm64/kernel/entry-common.c:758 el0t_64_sync_handler+0x44/0x104 arch/arm64/kernel/entry-common.c:777 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:590 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- rlock(minor_rwsem#2); lock(&mdc800->io_lock); lock(minor_rwsem#2); lock(&mdc800->io_lock); *** DEADLOCK *** locks held by syz.0.17/4895: 1, last CPU#1: #0: ffff8000896fe188 (minor_rwsem#2){++++}-{4:4}, at: usb_open+0x3c/0x1c0 drivers/usb/core/file.c:38 stack backtrace: CPU: 1 UID: 0 PID: 4895 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/14/2026 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 print_circular_bug+0x328/0x330 kernel/locking/lockdep.c:2059 check_noncircular+0x158/0x174 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+0x1600/0x2a6c kernel/locking/lockdep.c:5254 lock_acquire+0x150/0x370 kernel/locking/lockdep.c:5908 __mutex_lock_common kernel/locking/mutex.c:646 [inline] __mutex_lock+0x164/0xf14 kernel/locking/mutex.c:821 mutex_lock_nested+0x24/0x30 kernel/locking/mutex.c:874 mdc800_device_open+0x38/0x3c4 drivers/usb/image/mdc800.c:611 usb_open+0x150/0x1c0 drivers/usb/core/file.c:47 chrdev_open+0x398/0x3e8 fs/char_dev.c:411 do_dentry_open+0x5c4/0xfc0 fs/open.c:996 vfs_open+0x44/0x2dc fs/open.c:1101 do_open fs/namei.c:4837 [inline] path_openat+0x1084/0x18f4 fs/namei.c:5000 do_file_open+0x1c8/0x2e8 fs/namei.c:5029 do_sys_openat2+0x114/0x1e8 fs/open.c:1417 do_sys_open+0xb0/0xe0 fs/open.c:1423 __do_sys_openat fs/open.c:1439 [inline] __se_sys_openat fs/open.c:1434 [inline] __arm64_sys_openat+0xa8/0xc4 fs/open.c:1434 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x244 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xec/0x23c arch/arm64/kernel/syscall.c:121 do_el0_svc+0x4c/0x5c arch/arm64/kernel/syscall.c:140 el0_svc+0x64/0x260 arch/arm64/kernel/entry-common.c:758 el0t_64_sync_handler+0x44/0x104 arch/arm64/kernel/entry-common.c:777 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:590