Skip to content

Instantly share code, notes, and snippets.

@NTMan
Created December 21, 2019 20:30
Show Gist options
  • Save NTMan/51cfee61d26f3bdb82d5c6383ce2aade to your computer and use it in GitHub Desktop.
Save NTMan/51cfee61d26f3bdb82d5c6383ce2aade to your computer and use it in GitHub Desktop.
[24189.394274] input: Xbox One Wireless Controller as /devices/virtual/input/input34
[24199.121564] input: Xbox One Wireless Controller as /devices/virtual/input/input35
[24213.662603] input: Xbox One Wireless Controller as /devices/virtual/input/input36
[24253.907980] input: Xbox One Wireless Controller as /devices/virtual/input/input37
[24307.074339] ======================================================
[24307.074341] WARNING: possible circular locking dependency detected
[24307.074344] 5.5.0-0.rc2.git1.1.fc32.x86_64 #1 Not tainted
[24307.074346] ------------------------------------------------------
[24307.074348] winedevice.exe/73841 is trying to acquire lock:
[24307.074351] ffff98ed38dc4478 (&newdev->mutex){+.+.}, at: uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074359]
but task is already holding lock:
[24307.074361] ffff98e67903dfb8 (&ff->mutex){+.+.}, at: input_ff_upload+0x7e/0x2e0
[24307.074369]
which lock already depends on the new lock.
[24307.074371]
the existing dependency chain (in reverse order) is:
[24307.074373]
-> #2 (&ff->mutex){+.+.}:
[24307.074381] __mutex_lock+0xac/0x9e0
[24307.074384] input_ff_flush+0x2e/0x90
[24307.074388] input_flush_device+0x42/0x60
[24307.074392] evdev_flush+0x57/0x60
[24307.074395] filp_close+0x35/0x70
[24307.074398] __x64_sys_close+0x1e/0x50
[24307.074403] do_syscall_64+0x5c/0xa0
[24307.074408] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[24307.074409]
-> #1 (&dev->mutex#2){+.+.}:
[24307.074415] __mutex_lock+0xac/0x9e0
[24307.074418] __input_unregister_device+0x27/0x170
[24307.074420] input_unregister_device+0x41/0x60
[24307.074423] uinput_destroy_device+0xbb/0xc0 [uinput]
[24307.074427] uinput_ioctl_handler.isra.0+0x3a5/0x9a0 [uinput]
[24307.074431] do_vfs_ioctl+0x580/0x7b0
[24307.074433] ksys_ioctl+0x5e/0x90
[24307.074436] __x64_sys_ioctl+0x16/0x20
[24307.074442] do_syscall_64+0x5c/0xa0
[24307.074446] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[24307.074448]
-> #0 (&newdev->mutex){+.+.}:
[24307.074454] __lock_acquire+0xe13/0x1a30
[24307.074457] lock_acquire+0xa2/0x1b0
[24307.074459] __mutex_lock+0xac/0x9e0
[24307.074462] uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074466] uinput_dev_upload_effect+0x60/0x90 [uinput]
[24307.074470] input_ff_upload+0x22f/0x2e0
[24307.074473] evdev_ioctl_handler+0x962/0xc60
[24307.074475] do_vfs_ioctl+0x580/0x7b0
[24307.074478] ksys_ioctl+0x5e/0x90
[24307.074481] __x64_sys_ioctl+0x16/0x20
[24307.074485] do_syscall_64+0x5c/0xa0
[24307.074487] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[24307.074489]
other info that might help us debug this:
[24307.074491] Chain exists of:
&newdev->mutex --> &dev->mutex#2 --> &ff->mutex
[24307.074494] Possible unsafe locking scenario:
[24307.074496] CPU0 CPU1
[24307.074497] ---- ----
[24307.074498] lock(&ff->mutex);
[24307.074500] lock(&dev->mutex#2);
[24307.074502] lock(&ff->mutex);
[24307.074504] lock(&newdev->mutex);
[24307.074506]
*** DEADLOCK ***
[24307.074509] 2 locks held by winedevice.exe/73841:
[24307.074511] #0: ffff98e9d7a67178 (&evdev->mutex){+.+.}, at: evdev_ioctl_handler+0x52/0xc60
[24307.074516] #1: ffff98e67903dfb8 (&ff->mutex){+.+.}, at: input_ff_upload+0x7e/0x2e0
[24307.074521]
stack backtrace:
[24307.074526] CPU: 1 PID: 73841 Comm: winedevice.exe Not tainted 5.5.0-0.rc2.git1.1.fc32.x86_64 #1
[24307.074528] Hardware name: System manufacturer System Product Name/ROG STRIX X470-I GAMING, BIOS 2901 10/16/2019
[24307.074530] Call Trace:
[24307.074536] dump_stack+0x8f/0xd0
[24307.074541] check_noncircular+0x176/0x190
[24307.074546] __lock_acquire+0xe13/0x1a30
[24307.074551] lock_acquire+0xa2/0x1b0
[24307.074555] ? uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074560] __mutex_lock+0xac/0x9e0
[24307.074564] ? uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074567] ? find_held_lock+0x32/0x90
[24307.074571] ? sched_clock+0x5/0x10
[24307.074575] ? sched_clock_cpu+0xc/0xc0
[24307.074578] ? uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074582] ? uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074584] uinput_request_submit.part.0+0x1f/0xf0 [uinput]
[24307.074588] uinput_dev_upload_effect+0x60/0x90 [uinput]
[24307.074591] ? find_held_lock+0x32/0x90
[24307.074593] ? sched_clock+0x5/0x10
[24307.074597] input_ff_upload+0x22f/0x2e0
[24307.074600] evdev_ioctl_handler+0x962/0xc60
[24307.074604] do_vfs_ioctl+0x580/0x7b0
[24307.074609] ksys_ioctl+0x5e/0x90
[24307.074612] __x64_sys_ioctl+0x16/0x20
[24307.074616] do_syscall_64+0x5c/0xa0
[24307.074619] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[24307.074623] RIP: 0033:0x7f50b95501fb
[24307.074627] Code: 0f 1e fa 48 8b 05 9d 9c 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 6d 9c 0c 00 f7 d8 64 89 01 48
[24307.074629] RSP: 002b:0000000000d4f648 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[24307.074631] RAX: ffffffffffffffda RBX: 00007f50a0020c20 RCX: 00007f50b95501fb
[24307.074633] RDX: 00007f50a005a430 RSI: 0000000040304580 RDI: 000000000000002b
[24307.074635] RBP: 00007f50a001de80 R08: 00007f50a005a430 R09: 0000000000010468
[24307.074637] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f50a005a430
[24307.074638] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000d4f700
[24583.734648] input: Xbox One Wireless Controller as /devices/virtual/input/input38
[26273.943895] input: Xbox One Wireless Controller as /devices/virtual/input/input39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment