Re: [syzbot] [reiserfs?] possible deadlock in __run_timers

From: syzbot
Date: Sun Dec 17 2023 - 20:47:18 EST


Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
general protection fault in mac80211_hwsim_netlink_notify

general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 1 PID: 5405 Comm: udevd Not tainted 6.7.0-rc5-syzkaller-00042-g88035e5694a8-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/17/2023
RIP: 0010:remove_user_radios drivers/net/wireless/virtual/mac80211_hwsim.c:6195 [inline]
RIP: 0010:mac80211_hwsim_netlink_notify+0x1fb/0x8e0 drivers/net/wireless/virtual/mac80211_hwsim.c:6221
Code: 8b ab 94 2c 00 00 8b 3c 24 44 89 ee e8 3e 65 2e fb 44 39 2c 24 0f 84 a2 03 00 00 e8 3f 6a 2e fb 48 89 e8 49 89 ef 48 c1 e8 03 <42> 80 3c 20 00 0f 85 5b 05 00 00 48 81 fd 00 43 0f 8e 48 8b 45 00
RSP: 0018:ffffc90004d8f850 EFLAGS: 00010256
RAX: 0000000000000000 RBX: ffff888073793040 RCX: ffffffff8659238e
RDX: ffff888021b38000 RSI: ffffffff865923e1 RDI: 0000000000000001
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000002 R12: dffffc0000000000
R13: 0000000000000000 R14: ffffc90004d8f898 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 000000000cd77000 CR4: 0000000000350ef0
Call Trace:
<TASK>
notifier_call_chain+0xb6/0x3b0 kernel/notifier.c:93
blocking_notifier_call_chain kernel/notifier.c:388 [inline]
blocking_notifier_call_chain+0x69/0x90 kernel/notifier.c:376
netlink_release+0x1835/0x1ff0 net/netlink/af_netlink.c:795
__sock_release+0xae/0x260 net/socket.c:659
sock_close+0x1c/0x20 net/socket.c:1419
__fput+0x270/0xbb0 fs/file_table.c:394
task_work_run+0x14d/0x240 kernel/task_work.c:180
exit_task_work include/linux/task_work.h:38 [inline]
do_exit+0xa92/0x2ae0 kernel/exit.c:871
do_group_exit+0xd4/0x2a0 kernel/exit.c:1021
get_signal+0x23be/0x2790 kernel/signal.c:2904
arch_do_signal_or_restart+0x90/0x7f0 arch/x86/kernel/signal.c:309
exit_to_user_mode_loop kernel/entry/common.c:168 [inline]
exit_to_user_mode_prepare+0x121/0x240 kernel/entry/common.c:204
__syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
syscall_exit_to_user_mode+0x1e/0x60 kernel/entry/common.c:296
do_syscall_64+0x4d/0x110 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x7f0965ebe3cd
Code: Unable to access opcode bytes at 0x7f0965ebe3a3.
RSP: 002b:00007ffd49acfb40 EFLAGS: 00000246 ORIG_RAX: 00000000000000ea
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f0965ebe3cd
RDX: 0000000000000006 RSI: 000000000000151d RDI: 000000000000151d
RBP: 000000000000151d R08: 0000000000000000 R09: 0000000000000003
R10: 0000000000000008 R11: 0000000000000246 R12: 0000000000000006
R13: 00007ffd49acfd50 R14: 0000000000001000 R15: 0000000000000000
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:remove_user_radios drivers/net/wireless/virtual/mac80211_hwsim.c:6195 [inline]
RIP: 0010:mac80211_hwsim_netlink_notify+0x1fb/0x8e0 drivers/net/wireless/virtual/mac80211_hwsim.c:6221
Code: 8b ab 94 2c 00 00 8b 3c 24 44 89 ee e8 3e 65 2e fb 44 39 2c 24 0f 84 a2 03 00 00 e8 3f 6a 2e fb 48 89 e8 49 89 ef 48 c1 e8 03 <42> 80 3c 20 00 0f 85 5b 05 00 00 48 81 fd 00 43 0f 8e 48 8b 45 00
RSP: 0018:ffffc90004d8f850 EFLAGS: 00010256

RAX: 0000000000000000 RBX: ffff888073793040 RCX: ffffffff8659238e
RDX: ffff888021b38000 RSI: ffffffff865923e1 RDI: 0000000000000001
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000002 R12: dffffc0000000000
R13: 0000000000000000 R14: ffffc90004d8f898 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 000000000cd77000 CR4: 0000000000350ef0
----------------
Code disassembly (best guess):
0: 8b ab 94 2c 00 00 mov 0x2c94(%rbx),%ebp
6: 8b 3c 24 mov (%rsp),%edi
9: 44 89 ee mov %r13d,%esi
c: e8 3e 65 2e fb call 0xfb2e654f
11: 44 39 2c 24 cmp %r13d,(%rsp)
15: 0f 84 a2 03 00 00 je 0x3bd
1b: e8 3f 6a 2e fb call 0xfb2e6a5f
20: 48 89 e8 mov %rbp,%rax
23: 49 89 ef mov %rbp,%r15
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 80 3c 20 00 cmpb $0x0,(%rax,%r12,1) <-- trapping instruction
2f: 0f 85 5b 05 00 00 jne 0x590
35: 48 81 fd 00 43 0f 8e cmp $0xffffffff8e0f4300,%rbp
3c: 48 8b 45 00 mov 0x0(%rbp),%rax


Tested on:

commit: 88035e56 Merge tag 'hid-for-linus-2023121201' of git:/..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
console output: https://syzkaller.appspot.com/x/log.txt?x=14d3d969e80000
kernel config: https://syzkaller.appspot.com/x/.config?x=be2bd0a72b52d4da
dashboard link: https://syzkaller.appspot.com/bug?extid=a3981d3c93cde53224be
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=16a9b876e80000