* Re: [syzbot] [wireguard?] BUG: workqueue lockup in wg_packet_decrypt_worker
2026-09-15 21:33 [syzbot] [wireguard?] BUG: workqueue lockup in wg_packet_decrypt_worker syzbot
@ 2026-09-21 11:47 ` syzbot
2026-10-10 1:59 ` syzbot
1 sibling, 0 replies; 3+ messages in thread
From: syzbot @ 2026-09-21 11:47 UTC (permalink / raw)
To: Jason, andrew+netdev, andrew, davem, edumazet, jason, kuba,
linux-kernel, netdev, pabeni, syzkaller-bugs, wireguard
syzbot has found a reproducer for the following issue on:
HEAD commit: 38872197cae2 Merge branch 'for-next/fixes' into for-kernelci
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=17567005580000
kernel config: https://syzkaller.appspot.com/x/.config?x=56ed23170c168d4c
dashboard link: https://syzkaller.appspot.com/bug?extid=d0d2f1a65f45b319d25d
compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1606a805580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/c5963fdd6790/disk-38872197.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/a8c2cab00c45/vmlinux-38872197.xz
kernel image: https://storage.googleapis.com/syzbot-assets/bde15d173380/Image-38872197.gz.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d0d2f1a65f45b319d25d@syzkaller.appspotmail.com
BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 38s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=16 refcnt=17
in-flight: 4858:nsim_fib_event_work for 39s ,4830:nsim_fib_event_work for 40s
pending: 3*nsim_dev_hwstats_traffic_work, 2*psi_avgs_work, vmstat_shepherd, rht_deferred_worker, free_obj_work, 3*ovs_dp_masks_rebalance, drm_fb_helper_damage_work, 2*nsim_fib_event_work
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=11 refcnt=12
in-flight: 869:nsim_fib_event_work for 44s nsim_fib_event_work ,4806:nsim_fib_event_work for 41s nsim_fib_event_work
pending: psi_avgs_work, 6*ovs_dp_masks_rebalance
workqueue events_unbound: flags=0x2
pwq 8: cpus=0-1 flags=0x6 nice=0 active=22 refcnt=23
in-flight: 1472:cfg80211_wiphy_work for 41s cfg80211_wiphy_work ,1438:cfg80211_wiphy_work for 43s cfg80211_wiphy_work ,1295:cfg80211_wiphy_work for 43s cfg80211_wiphy_work ,14:cfg80211_wiphy_work for 36s ,79:cfg80211_wiphy_work for 43s cfg80211_wiphy_work ,1486:cfg80211_wiphy_work for 42s cfg80211_wiphy_work ,12:cfg80211_wiphy_work for 39s
pending: 2*cfg80211_wiphy_work, nsim_dev_trap_report_work, toggle_allocation_gate, macvlan_process_broadcast, 3*nsim_dev_trap_report_work, flush_memcg_stats_dwork, macvlan_process_broadcast
pwq 8: cpus=0-1 flags=0x6 nice=0 active=7 refcnt=8
in-flight: 1234:cfg80211_wiphy_work for 43s cfg80211_wiphy_work
pending: macvlan_process_broadcast, crng_reseed, 3*macvlan_process_broadcast
workqueue events_power_efficient: flags=0x82
pwq 8: cpus=0-1 flags=0x6 nice=0 active=5 refcnt=6
in-flight: 50:neigh_periodic_work for 33s
pending: neigh_managed_work, fb_flashcursor, wg_ratelimiter_gc_entries, neigh_managed_work
pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
pending: neigh_periodic_work, do_cache_clean
workqueue events_dfl_long: flags=0x2
pwq 8: cpus=0-1 flags=0x6 nice=0 active=9 refcnt=10
pending: 9*defense_work_handler
workqueue netns: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=4
in-flight: 1183:cleanup_net for 45s
workqueue mm_percpu_wq: flags=0x108
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: vmstat_update
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: vmstat_update
workqueue mld: flags=0x40108
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=73
pending: mld_ifc_work
inactive: 2*mld_ifc_work, mld_dad_work, mld_ifc_work, mld_dad_work, mld_ifc_work, mld_dad_work, 4*mld_ifc_work, 2*mld_dad_work, mld_ifc_work, mld_dad_work, 3*mld_ifc_work, 2*mld_dad_work, 5*mld_ifc_work, mld_dad_work, mld_ifc_work, mld_dad_work, 3*mld_ifc_work, 3*mld_dad_work, mld_ifc_work, 2*mld_dad_work, 3*mld_ifc_work, mld_dad_work, 2*mld_ifc_work, mld_dad_work, 6*mld_ifc_work, mld_dad_work, mld_ifc_work, 2*mld_dad_work, 3*mld_ifc_work, 2*mld_dad_work, mld_ifc_work, 2*mld_dad_work, mld_ifc_work, 8*mld_dad_work
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=95
pending: mld_ifc_work
inactive: mld_ifc_work, mld_dad_work, mld_ifc_work, mld_dad_work, 9*mld_ifc_work, 2*mld_dad_work, 6*mld_ifc_work, mld_dad_work, 4*mld_ifc_work, mld_dad_work, 4*mld_ifc_work, 62*mld_dad_work
workqueue ipv6_addrconf: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=178 MAYDAY
in-flight: 2825(RESCUER):addrconf_dad_work for 0s
pending: mayday_cursor_func
inactive: 172*addrconf_dad_work
workqueue bat_events: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=51 MAYDAY
in-flight: 2857(RESCUER):batadv_tt_purge for 11s
pending: mayday_cursor_func
inactive: 4*batadv_tt_purge, batadv_dat_purge, batadv_bla_periodic_work, 6*batadv_mcast_mla_update, 5*batadv_iv_send_outstanding_bat_ogm_packet, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, 5*batadv_iv_send_outstanding_bat_ogm_packet, 6*batadv_purge_orig, 6*batadv_iv_send_outstanding_bat_ogm_packet, batadv_tt_purge
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=4 refcnt=5
in-flight: 9:wg_packet_decrypt_worker for 40s wg_packet_decrypt_worker
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
pending: wg_packet_decrypt_worker, wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=4 refcnt=5
in-flight: 10:wg_packet_decrypt_worker for 41s wg_packet_decrypt_worker
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg0: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_decrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg1: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-kex-wg1: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
in-flight: 1115:wg_packet_decrypt_worker for 41s wg_packet_decrypt_worker
pending: wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
in-flight: 4356:wg_packet_handshake_receive_worker for 41s
workqueue wg-kex-wg2: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
pending: 2*wg_packet_handshake_send_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_tx_worker
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
pending: 2*wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg1: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_decrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg2: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg0: flags=0x124
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_tx_worker
workqueue wg-kex-wg1: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
in-flight: 40:wg_packet_handshake_send_worker for 6s
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
pending: wg_packet_tx_worker, wg_packet_encrypt_worker
pool 2: cpus=0 node=0 flags=0x0 nice=0 hung=38s workers=8 idle: 5002 4997
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=21s workers=7 idle: 26 24 4967 5000 4999
pool 8: cpus=0-1 flags=0x6 nice=0 hung=0s workers=12 manager: 5001
Showing backtraces of busy workers in stalled worker pools:
pool 2:
task:kworker/0:1 state:R running task stack:0 pid:10 tgid:10 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: wg-crypt-wg2 wg_packet_decrypt_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5526 [inline]
__schedule+0x1370/0x2d80 kernel/sched/core.c:7277
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7456
preempt_schedule+0x60/0x78 kernel/sched/core.c:7480
__kunmap_atomic include/linux/highmem-internal.h:247 [inline]
sg_miter_stop+0x220/0x2cc lib/scatterlist.c:941
chacha20poly1305_crypt_sg_inplace+0x75c/0xc30 lib/crypto/chacha20poly1305.c:319
chacha20poly1305_decrypt_sg_inplace+0x6c/0x94 lib/crypto/chacha20poly1305.c:353
decrypt_packet drivers/net/wireguard/receive.c:278 [inline]
wg_packet_decrypt_worker+0x490/0xa00 drivers/net/wireguard/receive.c:501
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838
pool 2:
task:kworker/0:5 state:R running task stack:0 pid:4858 tgid:4858 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: events nsim_fib_event_work
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5526 [inline]
__schedule+0x1370/0x2d80 kernel/sched/core.c:7277
__schedule_loop kernel/sched/core.c:7354 [inline]
schedule+0x13c/0x20c kernel/sched/core.c:7369
schedule_timeout+0x13c/0x28c kernel/time/sleep_timeout.c:99
schedule_timeout_uninterruptible+0x78/0xbc kernel/time/sleep_timeout.c:158
msleep+0x3c/0x68 kernel/time/sleep_timeout.c:318
nsim_fib6_rt_add drivers/net/netdevsim/fib.c:693 [inline]
nsim_fib6_rt_insert drivers/net/netdevsim/fib.c:759 [inline]
nsim_fib6_event drivers/net/netdevsim/fib.c:856 [inline]
nsim_fib_event+0x57a0/0x60c4 drivers/net/netdevsim/fib.c:889
nsim_fib_event_work+0x1d8/0x320 drivers/net/netdevsim/fib.c:1493
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838
pool 2:
task:kworker/0:4 state:R running task stack:0 pid:4830 tgid:4830 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: events nsim_fib_event_work
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5526 [inline]
__schedule+0x1370/0x2d80 kernel/sched/core.c:7277
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7456
preempt_schedule+0x60/0x78 kernel/sched/core.c:7480
irq_work_queue+0xa0/0xa4 kernel/irq_work.c:125
__rhashtable_insert_fast include/linux/rhashtable.h:852 [inline]
rhashtable_insert_fast include/linux/rhashtable.h:886 [inline]
nsim_fib6_rt_add drivers/net/netdevsim/fib.c:686 [inline]
nsim_fib6_rt_insert drivers/net/netdevsim/fib.c:759 [inline]
nsim_fib6_event drivers/net/netdevsim/fib.c:856 [inline]
nsim_fib_event+0x4f5c/0x60c4 drivers/net/netdevsim/fib.c:889
nsim_fib_event_work+0x1d8/0x320 drivers/net/netdevsim/fib.c:1493
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838
pool 2:
task:kworker/0:3 state:R running task stack:0 pid:4356 tgid:4356 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: wg-kex-wg2 wg_packet_handshake_receive_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5526 [inline]
__schedule+0x1370/0x2d80 kernel/sched/core.c:7277
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7456
preempt_schedule+0x60/0x78 kernel/sched/core.c:7480
__local_bh_enable_ip+0x20c/0x35c kernel/softirq.c:480
local_bh_enable include/linux/bottom_half.h:33 [inline]
rcu_read_unlock_bh include/linux/rcupdate.h:923 [inline]
mod_peer_timer+0x21c/0x25c drivers/net/wireguard/timers.c:38
wg_timers_session_derived+0x5c/0x6c drivers/net/wireguard/timers.c:208
wg_receive_handshake_packet drivers/net/wireguard/receive.c:178 [inline]
wg_packet_handshake_receive_worker+0x5b8/0xcf8 drivers/net/wireguard/receive.c:213
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838
pool 2:
task:kworker/0:0 state:R running task stack:0 pid:9 tgid:9 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: wg-crypt-wg1 wg_packet_decrypt_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5526 [inline]
__schedule+0x1370/0x2d80 kernel/sched/core.c:7277
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7456
preempt_schedule+0x60/0x78 kernel/sched/core.c:7480
__local_bh_enable_ip+0x20c/0x35c kernel/softirq.c:480
__raw_spin_unlock_bh include/linux/spinlock_api_smp.h:237 [inline]
_raw_spin_unlock_bh+0x3c/0x4c kernel/locking/spinlock.c:245
spin_unlock_bh include/linux/spinlock.h:407 [inline]
ptr_ring_consume_bh include/linux/ptr_ring.h:399 [inline]
wg_packet_decrypt_worker+0x980/0xa00 drivers/net/wireguard/receive.c:499
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838
pool 2:
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [syzbot] [wireguard?] BUG: workqueue lockup in wg_packet_decrypt_worker
2026-09-15 21:33 [syzbot] [wireguard?] BUG: workqueue lockup in wg_packet_decrypt_worker syzbot
2026-09-21 11:47 ` syzbot
@ 2026-10-10 1:59 ` syzbot
1 sibling, 0 replies; 3+ messages in thread
From: syzbot @ 2026-10-10 1:59 UTC (permalink / raw)
To: Jason, andrew, catalin.marinas, davem, edumazet, jason, kuba,
linux-arm-kernel, linux-kernel, mark.rutland, netdev, pabeni,
syzkaller-bugs, will, wireguard
syzbot has found a reproducer for the following issue on:
HEAD commit: 71c3e5409eef Merge remote-tracking branch 'will/for-next/p..
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=13fb40a5580000
kernel config: https://syzkaller.appspot.com/x/.config?x=42bd821301b42742
dashboard link: https://syzkaller.appspot.com/bug?extid=d0d2f1a65f45b319d25d
compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=171efa8e580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1030649c580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/7596ece97a32/disk-71c3e540.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/4d2c36351098/vmlinux-71c3e540.xz
kernel image: https://storage.googleapis.com/syzbot-assets/396ce0b85b3c/Image-71c3e540.gz.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d0d2f1a65f45b319d25d@syzkaller.appspotmail.com
bridge0: received packet on veth1_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:1c, vlan:0)
BUG: workqueue lockup - pool cpus=0 node=0 flags=0x2 nice=0 stuck for 58s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=12 refcnt=13
in-flight: 4802:switchdev_deferred_process_work for 64s ,9:request_firmware_work_func for 147s ,4923:drm_fb_helper_damage_work for 58s ,10:nsim_fib_event_work for 68s
pending: 2*ovs_dp_masks_rebalance, 2*nsim_dev_hwstats_traffic_work, psi_avgs_work, drm_fb_helper_damage_work, vmstat_shepherd, free_obj_work
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
in-flight: 26:free_ipc for 13s
pending: nsim_dev_hwstats_traffic_work, psi_avgs_work
workqueue events_unbound: flags=0x2
pwq 8: cpus=0-1 flags=0x6 nice=0 active=4 refcnt=5
in-flight: 4976:cfg80211_wiphy_work for 110s cfg80211_wiphy_work ,1204:cfg80211_wiphy_work for 114s cfg80211_wiphy_work
pwq 8: cpus=0-1 flags=0x6 nice=0 active=12 refcnt=13
in-flight: 240:cfg80211_wiphy_work for 48s ,14:cfg80211_wiphy_work for 112s cfg80211_wiphy_work ,4979:nsim_dev_trap_report_work for 0s ,48:nsim_dev_trap_report_work for 0s ,1190:cfg80211_wiphy_work for 105s cfg80211_wiphy_work ,4980:nsim_dev_trap_report_work for 0s ,4978:macvlan_process_broadcast for 3s
pending: flush_memcg_stats_dwork, nsim_dev_trap_report_work, toggle_allocation_gate
workqueue events_power_efficient: flags=0x82
pwq 8: cpus=0-1 flags=0x6 nice=0 active=5 refcnt=6
in-flight: 3700:neigh_periodic_work for 36s
pending: 2*neigh_managed_work, fb_flashcursor, gc_worker
workqueue rcu_gp: flags=0x108
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=4 MAYDAY
pending: srcu_invoke_callbacks
workqueue netns: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=4
in-flight: 12:cleanup_net for 116s
workqueue mm_percpu_wq: flags=0x108
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=4 MAYDAY
pending: vmstat_update
workqueue writeback: flags=0x4a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
in-flight: 59:wb_workfn for 111s
workqueue mld: flags=0x40108
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=55 MAYDAY
pending: mld_dad_work
inactive: mld_dad_work, 3*mld_ifc_work, mld_dad_work, 5*mld_ifc_work, 2*mld_dad_work, mld_ifc_work, mld_dad_work, 3*mld_ifc_work, mld_dad_work, 9*mld_ifc_work, 25*mld_dad_work
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=79 MAYDAY
in-flight: 1495:mld_ifc_work for 0s
inactive: mld_ifc_work, mld_dad_work, mld_ifc_work, 3*mld_dad_work, 4*mld_ifc_work, 2*mld_dad_work, mld_ifc_work, 2*mld_dad_work, mld_ifc_work, mld_dad_work, mld_ifc_work, 2*mld_dad_work, 4*mld_ifc_work, mld_dad_work, 4*mld_ifc_work, 2*mld_dad_work, 4*mld_ifc_work, 3*mld_dad_work, 4*mld_ifc_work, 4*mld_dad_work, 4*mld_ifc_work, mld_dad_work, 4*mld_ifc_work, mld_dad_work, 3*mld_ifc_work, 2*mld_dad_work, 4*mld_ifc_work, 10*mld_dad_work
workqueue ipv6_addrconf: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=222 MAYDAY
in-flight: 2825(RESCUER):addrconf_dad_work for 64s
inactive: 215*addrconf_dad_work, addrconf_verify_work
workqueue bat_events: flags=0x6000a
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=50 MAYDAY
in-flight: 2857(RESCUER):batadv_tt_purge for 1s
pending: mayday_cursor_func
inactive: batadv_mcast_mla_update, 2*batadv_iv_send_outstanding_bat_ogm_packet, 4*batadv_mcast_mla_update, batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, 9*batadv_iv_send_outstanding_bat_ogm_packet, batadv_mcast_mla_update, 3*batadv_purge_orig, 4*batadv_iv_send_outstanding_bat_ogm_packet, 2*batadv_purge_orig, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, 4*batadv_tt_purge
workqueue wg-kex-wg0: flags=0x124
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
in-flight: 24:wg_packet_handshake_receive_worker for 1s
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_encrypt_worker, wg_packet_decrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=3 MAYDAY
pending: wg_packet_decrypt_worker
workqueue wg-kex-wg2: flags=0x124
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=4 refcnt=7 MAYDAY
in-flight: 4811:wg_packet_decrypt_worker for 64s wg_packet_decrypt_worker
pending: wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=4 refcnt=7 MAYDAY
in-flight: 4471:wg_packet_decrypt_worker for 63s
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg0: flags=0x124
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-kex-wg0: flags=0x6
pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_send_worker
workqueue wg-crypt-wg0: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_encrypt_worker, wg_packet_decrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=3 MAYDAY
pending: wg_packet_decrypt_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg1: flags=0x124
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=1 refcnt=2
pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg1: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=4 MAYDAY
pending: wg_packet_decrypt_worker, wg_packet_tx_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg2: flags=0x124
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=2 refcnt=3
in-flight: 4977:wg_packet_handshake_receive_worker for 107s wg_packet_handshake_receive_worker
pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
in-flight: 1496:wg_packet_handshake_receive_worker for 12s wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
pwq 2: cpus=0 node=0 flags=0x2 nice=0 active=3 refcnt=6 MAYDAY
pending: wg_packet_tx_worker, wg_packet_decrypt_worker, wg_packet_encrypt_worker
pool 2: cpus=0 node=0 flags=0x2 nice=0 hung=58s workers=8 manager: 1091
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=0s workers=7 idle: 4930 866 4981
pool 8: cpus=0-1 flags=0x6 nice=0 hung=0s workers=13 manager: 40
Showing backtraces of busy workers in stalled worker pools:
pool 2:
task:kworker/0:5 state:R running task stack:0 pid:4811 tgid:4811 ppid:2 task_flags:0x4208060 flags:0x20000010
Workqueue: wg-crypt-wg2 wg_packet_decrypt_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5533 [inline]
__schedule+0x135c/0x2b00 kernel/sched/core.c:7284
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7463
preempt_schedule+0x60/0x78 kernel/sched/core.c:7487
__local_bh_enable_ip+0x16c/0x234 kernel/softirq.c:480
local_bh_enable include/linux/bottom_half.h:33 [inline]
put_cpu_fpsimd_context arch/arm64/kernel/fpsimd.c:251 [inline]
kernel_neon_begin+0x29c/0x400 arch/arm64/kernel/fpsimd.c:1924
class_ksimd_constructor arch/arm64/include/asm/simd.h:48 [inline]
poly1305_blocks+0x110/0x204 lib/crypto/arm64/poly1305.h:30
poly1305_update+0x168/0x39c lib/crypto/poly1305.c:59
chacha20poly1305_crypt_sg_inplace+0x888/0xc30 lib/crypto/chacha20poly1305.c:304
chacha20poly1305_decrypt_sg_inplace+0x6c/0x94 lib/crypto/chacha20poly1305.c:353
decrypt_packet drivers/net/wireguard/receive.c:278 [inline]
wg_packet_decrypt_worker+0x490/0xa00 drivers/net/wireguard/receive.c:501
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
pool 2:
task:kworker/0:7 state:R running task stack:0 pid:4977 tgid:4977 ppid:2 task_flags:0x4208060 flags:0x20000010
Workqueue: wg-kex-wg2 wg_packet_handshake_receive_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5533 [inline]
__schedule+0x135c/0x2b00 kernel/sched/core.c:7284
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7463
preempt_schedule+0x60/0x78 kernel/sched/core.c:7487
__local_bh_enable_ip+0x16c/0x234 kernel/softirq.c:480
local_bh_enable include/linux/bottom_half.h:33 [inline]
put_cpu_fpsimd_context arch/arm64/kernel/fpsimd.c:251 [inline]
kernel_neon_begin+0x29c/0x400 arch/arm64/kernel/fpsimd.c:1924
class_ksimd_constructor arch/arm64/include/asm/simd.h:48 [inline]
poly1305_blocks+0x110/0x204 lib/crypto/arm64/poly1305.h:30
poly1305_update+0x168/0x39c lib/crypto/poly1305.c:59
__chacha20poly1305_decrypt+0x240/0x39c lib/crypto/chacha20poly1305.c:151
chacha20poly1305_decrypt+0x238/0x5e4 lib/crypto/chacha20poly1305.c:186
message_decrypt+0x50/0x90 drivers/net/wireguard/noise.c:477
wg_noise_handshake_consume_initiation+0x1a0/0x53c drivers/net/wireguard/noise.c:612
wg_receive_handshake_packet drivers/net/wireguard/receive.c:144 [inline]
wg_packet_handshake_receive_worker+0x54c/0xcf8 drivers/net/wireguard/receive.c:213
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
pool 2:
task:kworker/0:6 state:R running task stack:0 pid:4923 tgid:4923 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: events drm_fb_helper_damage_work
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5533 [inline]
__schedule+0x135c/0x2b00 kernel/sched/core.c:7284
__schedule_loop kernel/sched/core.c:7361 [inline]
schedule+0x13c/0x20c kernel/sched/core.c:7376
schedule_timeout+0x13c/0x28c kernel/time/sleep_timeout.c:99
drm_crtc_wait_one_vblank+0x19c/0x440 drivers/gpu/drm/drm_vblank.c:1325
drm_client_modeset_wait_for_vblank+0xc4/0xec drivers/gpu/drm/drm_client_modeset.c:1331
drm_fb_helper_fb_dirty drivers/gpu/drm/drm_fb_helper.c:327 [inline]
drm_fb_helper_damage_work+0x520/0xbc0 drivers/gpu/drm/drm_fb_helper.c:365
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
pool 2:
task:kworker/0:1 state:R running task stack:0 pid:10 tgid:10 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: events nsim_fib_event_work
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5533 [inline]
__schedule+0x135c/0x2b00 kernel/sched/core.c:7284
__schedule_loop kernel/sched/core.c:7361 [inline]
schedule+0x13c/0x20c kernel/sched/core.c:7376
schedule_timeout+0x13c/0x28c kernel/time/sleep_timeout.c:99
schedule_timeout_uninterruptible+0x78/0xbc kernel/time/sleep_timeout.c:158
msleep+0x3c/0x68 kernel/time/sleep_timeout.c:318
nsim_fib6_rt_add drivers/net/netdevsim/fib.c:693 [inline]
nsim_fib6_rt_insert drivers/net/netdevsim/fib.c:759 [inline]
nsim_fib6_event drivers/net/netdevsim/fib.c:856 [inline]
nsim_fib_event+0x57a0/0x60c4 drivers/net/netdevsim/fib.c:889
nsim_fib_event_work+0x1d8/0x320 drivers/net/netdevsim/fib.c:1493
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
pool 2:
task:kworker/0:3 state:R running task stack:0 pid:4471 tgid:4471 ppid:2 task_flags:0x4208060 flags:0x00000010
Workqueue: wg-crypt-wg0 wg_packet_decrypt_worker
Call trace:
__switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
context_switch kernel/sched/core.c:5533 [inline]
__schedule+0x135c/0x2b00 kernel/sched/core.c:7284
preempt_schedule_common+0xd4/0x190 kernel/sched/core.c:7463
preempt_schedule+0x60/0x78 kernel/sched/core.c:7487
__local_bh_enable_ip+0x16c/0x234 kernel/softirq.c:480
__raw_spin_unlock_bh include/linux/spinlock_api_smp.h:237 [inline]
_raw_spin_unlock_bh+0x3c/0x4c kernel/locking/spinlock.c:245
spin_unlock_bh include/linux/spinlock.h:407 [inline]
ptr_ring_consume_bh include/linux/ptr_ring.h:399 [inline]
wg_packet_decrypt_worker+0x254/0xa00 drivers/net/wireguard/receive.c:499
process_one_work kernel/workqueue.c:3396 [inline]
process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
kthread+0x304/0x3d4 kernel/kthread.c:436
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
net_ratelimit: 70318 callbacks suppressed
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:1c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on veth1_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:1c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on bridge_slave_1 with own address as source address (addr:aa:aa:aa:aa:aa:1c, vlan:0)
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
^ permalink raw reply [flat|nested] 3+ messages in thread