BUG: sleeping function called from invalid context at kernel/workqueue.c:4487
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5048, name: udevd
preempt_count: 100, expected: 0
RCU nest depth: 1, expected: 0
2 locks held by udevd/5048:
 #0: ffffffff8eb59c60 (rcu_read_lock){....}-{1:3}, at: path_init+0x124/0x1330
 #1: ffffc90000007cc0 ((&vub300->inactivity_timer)){+.-.}-{0:0}, at: call_timer_fn+0xd4/0x5e0
Preemption disabled at:
[<ffffffff818871ab>] handle_softirqs+0xab/0x840
CPU: 0 UID: 0 PID: 5048 Comm: udevd Tainted: G             L      syzkaller #0 PREEMPT(full) 
Tainted: [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <IRQ>
 dump_stack_lvl+0xe8/0x150
 __might_resched+0x378/0x4d0
 __cancel_work_sync+0x6d/0x110
 mmc_free_host+0x19/0x30
 call_timer_fn+0x192/0x5e0
 __run_timer_base+0x652/0x8b0
 run_timer_softirq+0xb7/0x170
 handle_softirqs+0x225/0x840
 __irq_exit_rcu+0xca/0x220
 irq_exit_rcu+0x9/0x30
 sysvec_apic_timer_interrupt+0xa6/0xc0
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20
RIP: 0010:__d_lookup_rcu+0x79/0x4c0
Code: 03 42 80 3c 28 00 74 08 48 89 df e8 21 1c e6 ff 48 8b 03 48 89 44 24 38 48 bb 00 00 20 00 00 c9 ff ff 4c 89 34 24 41 c1 ee 0c <48> 89 e8 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 eb 03 00 00 48 89
RSP: 0018:ffffc9000347f880 EFLAGS: 00000207
RAX: ffff88811397241d RBX: ffffc90000200000 RCX: ffff8881be8a1dc0
RDX: 0000000000000000 RSI: ffffc9000347fc30 RDI: ffff888167de3be8
RBP: ffff888167de3be8 R08: ffff8881be8a1dc0 R09: 0000000000000002
R10: 000000000000002f R11: 0000000000000000 R12: ffffc9000347fc30
R13: dffffc0000000000 R14: 00000000000295e7 R15: ffffc9000347fc64
 lookup_fast+0xd2/0x5d0
 link_path_walk+0x71f/0x1910
 path_openat+0x236/0x3830
 do_file_open+0x23e/0x4a0
 do_sys_openat2+0x115/0x200
 __x64_sys_openat+0x138/0x170
 do_syscall_64+0x174/0x580
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f11677989a4
Code: 24 20 48 8d 44 24 30 48 89 44 24 28 64 8b 04 25 18 00 00 00 85 c0 75 2c 44 89 e2 48 89 ee bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 76 60 48 8b 15 55 a4 0d 00 f7 d8 64 89 02 48 83
RSP: 002b:00007ffc89ee26a0 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 00007f11677989a4
RDX: 0000000000080000 RSI: 00007ffc89ee27d8 RDI: 00000000ffffff9c
RBP: 00007ffc89ee27d8 R08: 0000000000000008 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000080000
R13: 000055c3bc572b42 R14: 0000000000000001 R15: 0000000000000000
 </TASK>

=============================
WARNING: suspicious RCU usage
syzkaller #0 Tainted: G        W    L     
-----------------------------
kernel/rcu/srcutree.c:1487 Illegal synchronize_srcu() in same-type SRCU (or in RCU) read-side critical section!

other info that might help us debug this:


rcu_scheduler_active = 2, debug_locks = 1
2 locks held by udevd/5048:
 #0: ffffffff8eb59c60 (rcu_read_lock
){....}-{1:3}, at: path_init+0x124/0x1330
 #1: ffffc90000007cc0 ((&vub300->inactivity_timer)){+.-.}-{0:0}, at: call_timer_fn+0xd4/0x5e0

stack backtrace:
CPU: 0 UID: 0 PID: 5048 Comm: udevd Tainted: G        W    L      syzkaller #0 PREEMPT(full) 
Tainted: [W]=WARN, [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <IRQ>
 dump_stack_lvl+0xe8/0x150
 lockdep_rcu_suspicious+0x13f/0x1d0
 __synchronize_srcu+0x157/0x2f0
 wakeup_source_unregister+0x129/0x3f0
 mmc_host_classdev_release+0x47/0x100
 device_release+0xc4/0x1f0
 kobject_put+0x222/0x550
 call_timer_fn+0x192/0x5e0
 __run_timer_base+0x652/0x8b0
 run_timer_softirq+0xb7/0x170
 handle_softirqs+0x225/0x840
 __irq_exit_rcu+0xca/0x220
 irq_exit_rcu+0x9/0x30
 sysvec_apic_timer_interrupt+0xa6/0xc0
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20
RIP: 0010:__d_lookup_rcu+0x79/0x4c0
Code: 03 42 80 3c 28 00 74 08 48 89 df e8 21 1c e6 ff 48 8b 03 48 89 44 24 38 48 bb 00 00 20 00 00 c9 ff ff 4c 89 34 24 41 c1 ee 0c <48> 89 e8 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 eb 03 00 00 48 89
RSP: 0018:ffffc9000347f880 EFLAGS: 00000207
RAX: ffff88811397241d RBX: ffffc90000200000 RCX: ffff8881be8a1dc0
RDX: 0000000000000000 RSI: ffffc9000347fc30 RDI: ffff888167de3be8
RBP: ffff888167de3be8 R08: ffff8881be8a1dc0 R09: 0000000000000002
R10: 000000000000002f R11: 0000000000000000 R12: ffffc9000347fc30
R13: dffffc0000000000 R14: 00000000000295e7 R15: ffffc9000347fc64
 lookup_fast+0xd2/0x5d0
 link_path_walk+0x71f/0x1910
 path_openat+0x236/0x3830
 do_file_open+0x23e/0x4a0
 do_sys_openat2+0x115/0x200
 __x64_sys_openat+0x138/0x170
 do_syscall_64+0x174/0x580
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f11677989a4
Code: 24 20 48 8d 44 24 30 48 89 44 24 28 64 8b 04 25 18 00 00 00 85 c0 75 2c 44 89 e2 48 89 ee bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 76 60 48 8b 15 55 a4 0d 00 f7 d8 64 89 02 48 83
RSP: 002b:00007ffc89ee26a0 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 00007f11677989a4
RDX: 0000000000080000 RSI: 00007ffc89ee27d8 RDI: 00000000ffffff9c
RBP: 00007ffc89ee27d8 R08: 0000000000000008 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000080000
R13: 000055c3bc572b42 R14: 0000000000000001 R15: 0000000000000000
 </TASK>
ODEBUG: object ffffc90000007a80 is NOT on stack ffffc90003478000, but annotated.

======================================================
