syzbot
BUG: soft lockup in call_timer_fn
Status:
upstream: reported C repro on 2021/07/10 02:48
Reported-by: syzbot+4ee8d25ea1fc2657dec8@syzkaller.appspotmail.com
First crash: 1845d, last: 1242d
Sample crash report:
netlink: 12 bytes leftover after parsing attributes in process `syz-executor293'.
netlink: 12 bytes leftover after parsing attributes in process `syz-executor293'.
netlink: 12 bytes leftover after parsing attributes in process `syz-executor293'.
watchdog: BUG: soft lockup - CPU#0 stuck for 21s! [syz-executor293:27510]
Modules linked in:
irq event stamp: 3824741
hardirqs last enabled at (3824740): [<ffffffff81003ce4>] trace_hardirqs_on_thunk+0x1a/0x1c
hardirqs last disabled at (3824741): [<ffffffff81003d00>] trace_hardirqs_off_thunk+0x1a/0x1c
softirqs last enabled at (627144): [<ffffffff84a7735c>] spin_unlock_bh include/linux/spinlock.h:374 [inline]
softirqs last enabled at (627144): [<ffffffff84a7735c>] remove_user_radios drivers/net/wireless/mac80211_hwsim.c:3582 [inline]
softirqs last enabled at (627144): [<ffffffff84a7735c>] mac80211_hwsim_netlink_notify drivers/net/wireless/mac80211_hwsim.c:3600 [inline]
softirqs last enabled at (627144): [<ffffffff84a7735c>] mac80211_hwsim_netlink_notify+0x23c/0x1400 drivers/net/wireless/mac80211_hwsim.c:3591
softirqs last disabled at (627147): [<ffffffff813927d5>] invoke_softirq kernel/softirq.c:372 [inline]
softirqs last disabled at (627147): [<ffffffff813927d5>] irq_exit+0x215/0x260 kernel/softirq.c:412
CPU: 0 PID: 27510 Comm: syz-executor293 Not tainted 4.19.211-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:789 [inline]
RIP: 0010:lock_release+0x429/0x8b0 kernel/locking/lockdep.c:3930
Code: 84 08 00 00 00 00 00 00 48 c1 e8 03 80 3c 10 00 0f 85 95 03 00 00 48 83 3d 7b 34 a6 08 00 0f 84 cc 01 00 00 48 8b 3c 24 57 9d <0f> 1f 44 00 00 48 b8 00 00 00 00 00 fc ff df 49 c7 04 04 00 00 00
RSP: 0018:ffff8880ba007c78 EFLAGS: 00000286 ORIG_RAX: ffffffffffffff13
RAX: 1ffffffff13e3051 RBX: ffff88808ddee500 RCX: 1ffff11011bbddc0
RDX: dffffc0000000000 RSI: 0000000000000004 RDI: 0000000000000286
RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000003
R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff11017400f92
R13: 10189baec0906248 R14: ffff88808ddee500 R15: 0000000000000004
FS: 00005555574503c0(0000) GS:ffff8880ba000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000557e471f6c28 CR3: 00000000b1603000 CR4: 00000000003406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
call_timer_fn+0x1de/0x700 kernel/time/timer.c:1341
expire_timers+0x243/0x4e0 kernel/time/timer.c:1375
__run_timers kernel/time/timer.c:1696 [inline]
run_timer_softirq+0x21c/0x670 kernel/time/timer.c:1709
__do_softirq+0x265/0x980 kernel/softirq.c:292
invoke_softirq kernel/softirq.c:372 [inline]
irq_exit+0x215/0x260 kernel/softirq.c:412
exiting_irq arch/x86/include/asm/apic.h:536 [inline]
smp_apic_timer_interrupt+0x136/0x550 arch/x86/kernel/apic/apic.c:1098
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:894
</IRQ>
RIP: 0010:net_generic include/net/netns/generic.h:46 [inline]
RIP: 0010:hwsim_net_get_wmediumd drivers/net/wireless/mac80211_hwsim.c:283 [inline]
RIP: 0010:mac80211_hwsim_netlink_notify drivers/net/wireless/mac80211_hwsim.c:3602 [inline]
RIP: 0010:mac80211_hwsim_netlink_notify+0x62a/0x1400 drivers/net/wireless/mac80211_hwsim.c:3591
Code: 0f bb fc 45 85 ed 0f 84 bf 09 00 00 e8 3f 0e bb fc 49 8d 3c dc 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 <0f> 85 8d 0c 00 00 4d 8b 24 dc e8 97 26 a9 fc 31 ff 89 c3 89 c6 e8
RSP: 0018:ffff88807cadf778 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: dffffc0000000000 RBX: 0000000000000011 RCX: ffffffff84a77723
RDX: 1ffff11046a09dc9 RSI: ffffffff84a77731 RDI: ffff88823504ee48
RBP: 0000000000006b76 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000005 R11: 0000000000000000 R12: ffff88823504edc0
R13: 0000000000000001 R14: dead000000000100 R15: ffff88807cadf7f0
notifier_call_chain+0xc0/0x230 kernel/notifier.c:93
__blocking_notifier_call_chain kernel/notifier.c:317 [inline]
__blocking_notifier_call_chain kernel/notifier.c:304 [inline]
blocking_notifier_call_chain kernel/notifier.c:328 [inline]
blocking_notifier_call_chain+0x85/0xa0 kernel/notifier.c:325
netlink_release+0xe03/0x17b0 net/netlink/af_netlink.c:793
__sock_release+0xcd/0x2a0 net/socket.c:599
sock_close+0x15/0x20 net/socket.c:1214
__fput+0x2ce/0x890 fs/file_table.c:278
task_work_run+0x148/0x1c0 kernel/task_work.c:113
exit_task_work include/linux/task_work.h:22 [inline]
do_exit+0xbf3/0x2be0 kernel/exit.c:870
do_group_exit+0x125/0x310 kernel/exit.c:967
get_signal+0x3f2/0x1f70 kernel/signal.c:2589
do_signal+0x8f/0x1670 arch/x86/kernel/signal.c:799
exit_to_usermode_loop+0x204/0x2a0 arch/x86/entry/common.c:163
prepare_exit_to_usermode arch/x86/entry/common.c:198 [inline]
syscall_return_slowpath arch/x86/entry/common.c:271 [inline]
do_syscall_64+0x538/0x620 arch/x86/entry/common.c:296
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7f875a5ac8c9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 a1 17 00 00 90 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 c4 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc3beddb78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: 000000000000003c RBX: 00007ffc3beddbb0 RCX: 00007f875a5ac8c9
RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000004
RBP: 0000000000000000 R08: 00000000001c43d6 R09: 00000000001c43d6
R10: 00000000001c43d6 R11: 0000000000000246 R12: 00000000000f4240
R13: 00000000001c43d6 R14: 00007ffc3beddb9c R15: 00007ffc3beddba0
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 8110 Comm: syz-executor293 Not tainted 4.19.211-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:__read_once_size include/linux/compiler.h:263 [inline]
RIP: 0010:csd_lock_wait kernel/smp.c:108 [inline]
RIP: 0010:smp_call_function_single+0x1db/0x420 kernel/smp.c:302
Code: 00 e8 09 04 0a 00 48 8b 4c 24 08 48 8b 54 24 10 48 8d 74 24 40 8b 7c 24 1c e8 a1 f9 ff ff 41 89 c5 eb 07 e8 e7 03 0a 00 f3 90 <44> 8b 64 24 58 31 ff 41 83 e4 01 44 89 e6 e8 42 05 0a 00 45 85 e4
RSP: 0000:ffff88809516f8c0 EFLAGS: 00000293
RAX: ffff8880b43a05c0 RBX: 1ffff11012a2df1c RCX: ffffffff8158819e
RDX: 0000000000000000 RSI: ffffffff81588189 RDI: 0000000000000005
RBP: ffff88809516f990 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000005 R11: 0000000000000000 R12: 0000000000000001
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000002
FS: 00005555574503c0(0000) GS:ffff8880ba100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555574516a8 CR3: 00000000b1603000 CR4: 00000000003406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
smp_call_function_many+0x743/0x8d0 kernel/smp.c:434
flush_tlb_others arch/x86/include/asm/paravirt.h:309 [inline]
flush_tlb_mm_range+0x179/0x320 arch/x86/mm/tlb.c:728
flush_tlb_page arch/x86/include/asm/tlbflush.h:576 [inline]
ptep_clear_flush+0x123/0x160 mm/pgtable-generic.c:87
wp_page_copy+0xaf2/0x2c40 mm/memory.c:2654
do_wp_page+0x2d4/0x2210 mm/memory.c:2903
handle_pte_fault mm/memory.c:4191 [inline]
__handle_mm_fault+0x258b/0x41c0 mm/memory.c:4299
handle_mm_fault+0x436/0xb10 mm/memory.c:4336
__do_page_fault+0x68e/0xd60 arch/x86/mm/fault.c:1412
page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1205
RIP: 0033:0x7f875a581031
Code: 09 00 4c 29 e8 4b 8d 0c 2f 48 8b 6c 24 18 48 39 d3 48 89 4b 60 0f 95 c2 48 83 c8 01 0f b6 d2 48 c1 e2 02 4c 09 ea 48 83 ca 01 <49> 89 57 08 48 89 41 08 49 83 c7 10 eb b3 48 8d 3d ea 8d 06 00 e8
RSP: 002b:00007ffc3bedd870 EFLAGS: 00010206
RAX: 0000000000018921 RBX: 00007f875a6157e0 RCX: 00005555574596e0
RDX: 0000000000008041 RSI: 0000000000000000 RDI: 0000000000000004
RBP: 0000000000008030 R08: 0000000000000003 R09: 00007f875a615840
R10: 0000000000000231 R11: 0000000000000000 R12: 0000000000000802
R13: 0000000000008040 R14: 0000000000000804 R15: 00005555574516a0
----------------
Code disassembly (best guess):
0: 84 08 test %cl,(%rax)
2: 00 00 add %al,(%rax)
4: 00 00 add %al,(%rax)
6: 00 00 add %al,(%rax)
8: 48 c1 e8 03 shr $0x3,%rax
c: 80 3c 10 00 cmpb $0x0,(%rax,%rdx,1)
10: 0f 85 95 03 00 00 jne 0x3ab
16: 48 83 3d 7b 34 a6 08 cmpq $0x0,0x8a6347b(%rip) # 0x8a63499
1d: 00
1e: 0f 84 cc 01 00 00 je 0x1f0
24: 48 8b 3c 24 mov (%rsp),%rdi
28: 57 push %rdi
29: 9d popfq
* 2a: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) <-- trapping instruction
2f: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
36: fc ff df
39: 49 rex.WB
3a: c7 .byte 0xc7
3b: 04 04 add $0x4,%al
3d: 00 00 add %al,(%rax)
* Struck through repros no longer work on HEAD.