[syzbot] INFO: task hung in wg_netns_pre_exit (2)

Eric Dumazet eric.dumazet at gmail.com
Thu Oct 21 19:46:54 UTC 2021



On 10/21/21 12:39 PM, syzbot wrote:
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    02d5e016800d Merge tag 'sound-5.15-rc4' of git://git.kerne..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=16e21b17300000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=c76f0f4ac6e9f8d2
> dashboard link: https://syzkaller.appspot.com/bug?extid=fa3b49ed40f26375a8ee
> compiler:       gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> 
> Unfortunately, I don't have any reproducer for this issue yet.
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+fa3b49ed40f26375a8ee at syzkaller.appspotmail.com
> 
> INFO: task kworker/u4:3:254 blocked for more than 143 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:kworker/u4:3    state:D stack:24064 pid:  254 ppid:     2 flags:0x00004000
> Workqueue: netns cleanup_net
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  wg_netns_pre_exit+0x15/0x190 drivers/net/wireguard/device.c:402
>  ops_pre_exit_list net/core/net_namespace.c:158 [inline]
>  cleanup_net+0x451/0xb00 net/core/net_namespace.c:579
>  process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
>  worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
>  kthread+0x3e5/0x4d0 kernel/kthread.c:319
>  ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> INFO: task syz-executor.5:13115 blocked for more than 143 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.5  state:D stack:28440 pid:13115 ppid:  6871 flags:0x00004004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  smc_pnet_create_pnetids_list net/smc/smc_pnet.c:798 [inline]
>  smc_pnet_net_init+0x1f9/0x410 net/smc/smc_pnet.c:867
>  ops_init+0xaf/0x470 net/core/net_namespace.c:140
>  setup_net+0x40f/0xa30 net/core/net_namespace.c:326
>  copy_net_ns+0x319/0x760 net/core/net_namespace.c:470
>  create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110
>  unshare_nsproxy_namespaces+0xc1/0x1f0 kernel/nsproxy.c:226
>  ksys_unshare+0x445/0x920 kernel/fork.c:3077
>  __do_sys_unshare kernel/fork.c:3151 [inline]
>  __se_sys_unshare kernel/fork.c:3149 [inline]
>  __x64_sys_unshare+0x2d/0x40 kernel/fork.c:3149
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7f2348aa4709
> RSP: 002b:00007f234601b188 EFLAGS: 00000246 ORIG_RAX: 0000000000000110
> RAX: ffffffffffffffda RBX: 00007f2348ba8f60 RCX: 00007f2348aa4709
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000048040200
> RBP: 00007f2348afecb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffe1dab5b5f R14: 00007f234601b300 R15: 0000000000022000
> INFO: task syz-executor.5:13120 blocked for more than 144 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.5  state:D stack:26688 pid:13120 ppid:  6871 flags:0x00004004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7f2348aa4709
> RSP: 002b:00007f2345ffa188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007f2348ba9020 RCX: 00007f2348aa4709
> RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000003
> RBP: 00007f2348afecb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffe1dab5b5f R14: 00007f2345ffa300 R15: 0000000000022000
> INFO: task syz-executor.5:13156 blocked for more than 144 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.5  state:D stack:28696 pid:13156 ppid:  6871 flags:0x00004004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  smc_pnet_create_pnetids_list net/smc/smc_pnet.c:798 [inline]
>  smc_pnet_net_init+0x1f9/0x410 net/smc/smc_pnet.c:867
>  ops_init+0xaf/0x470 net/core/net_namespace.c:140
>  setup_net+0x40f/0xa30 net/core/net_namespace.c:326
>  copy_net_ns+0x319/0x760 net/core/net_namespace.c:470
>  create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110
>  unshare_nsproxy_namespaces+0xc1/0x1f0 kernel/nsproxy.c:226
>  ksys_unshare+0x445/0x920 kernel/fork.c:3077
>  __do_sys_unshare kernel/fork.c:3151 [inline]
>  __se_sys_unshare kernel/fork.c:3149 [inline]
>  __x64_sys_unshare+0x2d/0x40 kernel/fork.c:3149
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7f2348aa4709
> RSP: 002b:00007f2345fd9188 EFLAGS: 00000246 ORIG_RAX: 0000000000000110
> RAX: ffffffffffffffda RBX: 00007f2348ba90e0 RCX: 00007f2348aa4709
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000048040200
> RBP: 00007f2348afecb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffe1dab5b5f R14: 00007f2345fd9300 R15: 0000000000022000
> INFO: task syz-executor.5:13162 blocked for more than 145 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.5  state:D stack:28024 pid:13162 ppid:  6871 flags:0x00000004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7f2348aa4709
> RSP: 002b:00007f2345f97188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007f2348ba9260 RCX: 00007f2348aa4709
> RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000003
> RBP: 00007f2348afecb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffe1dab5b5f R14: 00007f2345f97300 R15: 0000000000022000
> INFO: task syz-executor.2:13147 blocked for more than 145 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.2  state:D stack:28072 pid:13147 ppid:  6566 flags:0x00000004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7fccb83ee709
> RSP: 002b:00007fccb5965188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007fccb84f2f60 RCX: 00007fccb83ee709
> RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000006
> RBP: 00007fccb8448cb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffd586b757f R14: 00007fccb5965300 R15: 0000000000022000
> INFO: task syz-executor.2:13150 blocked for more than 145 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.2  state:D stack:28656 pid:13150 ppid:  6566 flags:0x00000004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7fccb83ee709
> RSP: 002b:00007fccb5944188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007fccb84f3020 RCX: 00007fccb83ee709
> RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000005
> RBP: 00007fccb8448cb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffd586b757f R14: 00007fccb5944300 R15: 0000000000022000
> INFO: task syz-executor.2:13153 blocked for more than 146 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.2  state:D stack:28656 pid:13153 ppid:  6566 flags:0x00004004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7fccb83ee709
> RSP: 002b:00007fccb5923188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007fccb84f30e0 RCX: 00007fccb83ee709
> RDX: 0000000000000000 RSI: 0000000020000080 RDI: 0000000000000004
> RBP: 00007fccb8448cb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffd586b757f R14: 00007fccb5923300 R15: 0000000000022000
> INFO: task syz-executor.2:13167 blocked for more than 146 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.2  state:D stack:28656 pid:13167 ppid:  6566 flags:0x00000004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7fccb83ee709
> RSP: 002b:00007fccb58e1188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007fccb84f3260 RCX: 00007fccb83ee709
> RDX: 0000000000000000 RSI: 0000000020000040 RDI: 0000000000000006
> RBP: 00007fccb8448cb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffd586b757f R14: 00007fccb58e1300 R15: 0000000000022000
> INFO: task syz-executor.2:13168 blocked for more than 147 seconds.
>       Not tainted 5.15.0-rc3-syzkaller #0
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:syz-executor.2  state:D stack:28656 pid:13168 ppid:  6566 flags:0x00004004
> Call Trace:
>  context_switch kernel/sched/core.c:4940 [inline]
>  __schedule+0x940/0x26f0 kernel/sched/core.c:6287
>  schedule+0xd3/0x270 kernel/sched/core.c:6366
>  schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6425
>  __mutex_lock_common kernel/locking/mutex.c:669 [inline]
>  __mutex_lock+0xa34/0x12f0 kernel/locking/mutex.c:729
>  rtnl_lock net/core/rtnetlink.c:72 [inline]
>  rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
>  netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
>  netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
>  netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
>  netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
>  sock_sendmsg_nosec net/socket.c:704 [inline]
>  sock_sendmsg+0xcf/0x120 net/socket.c:724
>  ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
>  ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
>  __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
>  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>  do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
>  entry_SYSCALL_64_after_hwframe+0x44/0xae
> RIP: 0033:0x7fccb83ee709
> RSP: 002b:00007fccb58c0188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
> RAX: ffffffffffffffda RBX: 00007fccb84f3320 RCX: 00007fccb83ee709
> RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000005
> RBP: 00007fccb8448cb4 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ffd586b757f R14: 00007fccb58c0300 R15: 0000000000022000
> 
> Showing all locks held in the system:
> 1 lock held by khungtaskd/27:
>  #0: ffffffff8b97d420 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6446
> 4 locks held by kworker/u4:3/254:
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1198 [inline]
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:634 [inline]
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:661 [inline]
>  #0: ffff888140275938 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0x8a3/0x16b0 kernel/workqueue.c:2268
>  #1: ffffc90002107db0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0x8d7/0x16b0 kernel/workqueue.c:2272
>  #2: ffffffff8d0cef50 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0x9b/0xb00 net/core/net_namespace.c:553
>  #3: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: wg_netns_pre_exit+0x15/0x190 drivers/net/wireguard/device.c:402
> 3 locks held by kworker/1:3/2932:
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1198 [inline]
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:634 [inline]
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:661 [inline]
>  #0: ffff888027a77938 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_one_work+0x8a3/0x16b0 kernel/workqueue.c:2268
>  #1: ffffc9000c517db0 ((addr_chk_work).work){+.+.}-{0:0}, at: process_one_work+0x8d7/0x16b0 kernel/workqueue.c:2272
>  #2: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: addrconf_verify_work+0xa/0x20 net/ipv6/addrconf.c:4590
> 1 lock held by in:imklog/6229:
>  #0: ffff88806fed6df0 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0xe9/0x100 fs/file.c:990
> 3 locks held by kworker/0:4/8291:
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1198 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:634 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:661 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x8a3/0x16b0 kernel/workqueue.c:2268
>  #1: ffffc9001698fdb0 ((linkwatch_work).work){+.+.}-{0:0}, at: process_one_work+0x8d7/0x16b0 kernel/workqueue.c:2272
>  #2: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: linkwatch_event+0xb/0x60 net/core/link_watch.c:251
> 3 locks held by kworker/0:5/8480:
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1198 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:634 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:661 [inline]
>  #0: ffff888010c67d38 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x8a3/0x16b0 kernel/workqueue.c:2268
>  #1: ffffc900171cfdb0 (deferred_process_work){+.+.}-{0:0}, at: process_one_work+0x8d7/0x16b0 kernel/workqueue.c:2272
>  #2: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: switchdev_deferred_process_work+0xa/0x20 net/switchdev/switchdev.c:74
> 2 locks held by syz-executor.1/13097:
> 2 locks held by syz-executor.5/13115:
>  #0: ffffffff8d0cef50 (pernet_ops_rwsem){++++}-{3:3}, at: copy_net_ns+0x2f5/0x760 net/core/net_namespace.c:466
>  #1: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: smc_pnet_create_pnetids_list net/smc/smc_pnet.c:798 [inline]
>  #1: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: smc_pnet_net_init+0x1f9/0x410 net/smc/smc_pnet.c:867
> 1 lock held by syz-executor.5/13120:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 2 locks held by syz-executor.5/13156:
>  #0: ffffffff8d0cef50 (pernet_ops_rwsem){++++}-{3:3}, at: copy_net_ns+0x2f5/0x760 net/core/net_namespace.c:466
>  #1: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: smc_pnet_create_pnetids_list net/smc/smc_pnet.c:798 [inline]
>  #1: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: smc_pnet_net_init+0x1f9/0x410 net/smc/smc_pnet.c:867
> 1 lock held by syz-executor.5/13162:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 1 lock held by syz-executor.2/13147:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 1 lock held by syz-executor.2/13150:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 1 lock held by syz-executor.2/13153:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 1 lock held by syz-executor.2/13167:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 1 lock held by syz-executor.2/13168:
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
>  #0: ffffffff8d0e21a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3be/0xb80 net/core/rtnetlink.c:5569
> 
> =============================================
> 
> NMI backtrace for cpu 0
> CPU: 0 PID: 27 Comm: khungtaskd Not tainted 5.15.0-rc3-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Call Trace:
>  __dump_stack lib/dump_stack.c:88 [inline]
>  dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
>  nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:105
>  nmi_trigger_cpumask_backtrace+0x1ae/0x220 lib/nmi_backtrace.c:62
>  trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline]
>  check_hung_uninterruptible_tasks kernel/hung_task.c:210 [inline]
>  watchdog+0xc1d/0xf50 kernel/hung_task.c:295
>  kthread+0x3e5/0x4d0 kernel/kthread.c:319
>  ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> Sending NMI from CPU 0 to CPUs 1:
> NMI backtrace for cpu 1
> CPU: 1 PID: 154 Comm: kworker/u4:2 Not tainted 5.15.0-rc3-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Workqueue: phy8 ieee80211_iface_work
> RIP: 0010:lock_acquire kernel/locking/lockdep.c:5628 [inline]
> RIP: 0010:lock_acquire+0x1d3/0x510 kernel/locking/lockdep.c:5590
> Code: ff ff 48 c7 c7 c0 e5 8b 89 48 83 c4 20 e8 45 b4 da 07 b8 ff ff ff ff 65 0f c1 05 a8 70 a7 7e 83 f8 01 0f 85 b4 02 00 00 9c 58 <f6> c4 02 0f 85 9f 02 00 00 48 83 7c 24 08 00 74 01 fb 48 b8 00 00
> RSP: 0018:ffffc900011e6e58 EFLAGS: 00000046
> RAX: 0000000000000046 RBX: 1ffff9200023cdcd RCX: ffffffff815a36bf
> RDX: 1ffff11002293d46 RSI: 0000000000000001 RDI: 0000000000000000
> RBP: 0000000000000001 R08: 0000000000000000 R09: ffffffff8fd00927
> R10: fffffbfff1fa0124 R11: 000000000000003f R12: 0000000000000000
> R13: 0000000000000000 R14: ffffffff90455b70 R15: 0000000000000000
> FS:  0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f056bfab000 CR3: 00000000273a9000 CR4: 00000000003506e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
>  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
>  _raw_spin_lock_irqsave+0x39/0x50 kernel/locking/spinlock.c:162
>  __debug_check_no_obj_freed lib/debugobjects.c:980 [inline]
>  debug_check_no_obj_freed+0xc7/0x420 lib/debugobjects.c:1023
>  kfree+0xd1/0x2c0 mm/slab.c:3802
>  ieee802_11_parse_elems_crc+0xac2/0xfe0 net/mac80211/util.c:1517
>  ieee802_11_parse_elems net/mac80211/ieee80211_i.h:2207 [inline]
>  ieee80211_bss_info_update+0x468/0xb60 net/mac80211/scan.c:212
>  ieee80211_rx_bss_info net/mac80211/ibss.c:1119 [inline]
>  ieee80211_rx_mgmt_probe_beacon+0xcce/0x17c0 net/mac80211/ibss.c:1608
>  ieee80211_ibss_rx_queued_mgmt+0xd37/0x1610 net/mac80211/ibss.c:1635
>  ieee80211_iface_process_skb net/mac80211/iface.c:1439 [inline]
>  ieee80211_iface_work+0xa65/0xd00 net/mac80211/iface.c:1493
>  process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
>  worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
>  kthread+0x3e5/0x4d0 kernel/kthread.c:319
>  ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> ----------------
> Code disassembly (best guess), 1 bytes skipped:
>    0:	ff 48 c7             	decl   -0x39(%rax)
>    3:	c7 c0 e5 8b 89 48    	mov    $0x48898be5,%eax
>    9:	83 c4 20             	add    $0x20,%esp
>    c:	e8 45 b4 da 07       	callq  0x7dab456
>   11:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
>   16:	65 0f c1 05 a8 70 a7 	xadd   %eax,%gs:0x7ea770a8(%rip)        # 0x7ea770c6
>   1d:	7e
>   1e:	83 f8 01             	cmp    $0x1,%eax
>   21:	0f 85 b4 02 00 00    	jne    0x2db
>   27:	9c                   	pushfq
>   28:	58                   	pop    %rax
> * 29:	f6 c4 02             	test   $0x2,%ah <-- trapping instruction
>   2c:	0f 85 9f 02 00 00    	jne    0x2d1
>   32:	48 83 7c 24 08 00    	cmpq   $0x0,0x8(%rsp)
>   38:	74 01                	je     0x3b
>   3a:	fb                   	sti
>   3b:	48                   	rex.W
>   3c:	b8                   	.byte 0xb8
> 
> 
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller at googlegroups.com.
> 
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> 


Hmm.. ieee80211_iface_work() can apparently process unbounded lists.

Maybe this ?

diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 62c95597704b4031f6352d1b833cddbe22447db5..e9b0ddedb2f3660c4cfce4e58682dce907d00d91 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1494,6 +1494,7 @@ static void ieee80211_iface_work(struct work_struct *work)
 
                kfree_skb(skb);
                kcov_remote_stop();
+               cond_resched();
        }
 
        /* process status queue */
@@ -1504,6 +1505,7 @@ static void ieee80211_iface_work(struct work_struct *work)
                kfree_skb(skb);
 
                kcov_remote_stop();
+               cond_resched();
        }
 
        /* then other type-dependent work */



More information about the WireGuard mailing list