BUG: workqueue lockup in reg_todo

Status: upstream: reported on 2026/09/23 07:59
Subsystems: wireless
Labels: prio:high
[Documentation on labels]
Reported-by: syzbot+b733a65a200ab7aa2cbe@syzkaller.appspotmail.com
First crash: 29d, last: 4d06h
▶ ▼ ✨ AI Jobs (3)
ID Workflow Result Correct Bug Created Started Finished Revision
af6bc2ff repro-c 💥 BUG: workqueue lockup in reg_todo 2026/10/03 04:25 2026/10/03 04:25 2026/10/03 05:08 57bbd979
6677dbaa repro-c 💥 BUG: workqueue lockup in reg_todo 2026/10/01 00:15 2026/10/01 00:15 2026/10/01 03:11 38f7f0d1
65f122f3 assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ NetworkTrigger: ✅ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ❌ UserNamespace: ✅ VMGuestTrigger: ✅ VMHostTrigger: ❌ ❓ BUG: workqueue lockup in reg_todo 2026/09/13 00:01 2026/09/13 00:01 2026/09/13 00:07 70a60e12
▶ ▼ Discussions (2)
Title Replies (including bot) Last reply
[syzbot] Monthly wireless report (Oct 2026) 0 (1) 2026/10/05 20:33
[syzbot] [wireless?] BUG: workqueue lockup in reg_todo 0 (1) 2026/09/23 07:59

Sample crash report:
ip6_tunnel: ip6gre1 xmit: Local address not yet configured!
ip6_tunnel: ip6gre1 xmit: Local address not yet configured!
BUG: workqueue lockup - pool cpus=1 node=0 flags=0x0 nice=0 stuck for 40s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: nsim_dev_hwstats_traffic_work
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=16 refcnt=17
    in-flight: 866:reg_todo for 40s
    pending: free_obj_work, 3*psi_avgs_work, drm_fb_helper_damage_work, 2*psi_avgs_work, ovs_dp_masks_rebalance, 5*nsim_dev_hwstats_traffic_work, ovs_dp_masks_rebalance, delayed_vfree_work
workqueue events_unbound: flags=0x2
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=9 refcnt=10
    pending: macvlan_process_broadcast, 2*nsim_dev_trap_report_work, flush_memcg_stats_dwork, 3*macvlan_process_broadcast, nsim_dev_trap_report_work, toggle_allocation_gate
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=27 refcnt=28
    in-flight: 49:cfg80211_wiphy_work for 36s cfg80211_wiphy_work ,12:cfg80211_wiphy_work for 36s cfg80211_wiphy_work ,13:cfg80211_wiphy_work for 38s cfg80211_wiphy_work ,40:cfg80211_wiphy_work for 37s cfg80211_wiphy_work ,188:cfg80211_wiphy_work for 41s cfg80211_wiphy_work ,1430:nsim_dev_trap_report_work for 6s ,58:cfg80211_wiphy_work for 24s ,1283:cfg80211_wiphy_work for 37s cfg80211_wiphy_work ,1345:cfg80211_wiphy_work for 7s
    pending: 5*macvlan_process_broadcast, nsim_dev_trap_report_work, cfg80211_wiphy_work, nsim_dev_trap_report_work, crng_reseed, macvlan_process_broadcast, 2*cfg80211_wiphy_work
workqueue events_power_efficient: flags=0x82
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=4 refcnt=5
    pending: neigh_managed_work, fb_flashcursor, do_cache_clean, wg_ratelimiter_gc_entries
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
    pending: neigh_managed_work, neigh_periodic_work
workqueue events_dfl_long: flags=0x2
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=4 refcnt=5
    pending: 4*defense_work_handler
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
    pending: 2*defense_work_handler
workqueue mm_percpu_wq: flags=0x108
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: vmstat_update
workqueue kblockd: flags=0x118
  pwq 3: cpus=0 node=0 flags=0x0 nice=-20 active=1 refcnt=2
    pending: blk_mq_timeout_work
workqueue bat_events: flags=0x6000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=44 MAYDAY
    in-flight: 2855(RESCUER):batadv_dat_purge for 8s
    pending: mayday_cursor_func
    inactive: 4*batadv_tt_purge, 2*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_iv_send_outstanding_bat_ogm_packet, 3*batadv_mcast_mla_update, 7*batadv_iv_send_outstanding_bat_ogm_packet, 2*batadv_mcast_mla_update, 2*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, 3*batadv_iv_send_outstanding_bat_ogm_packet, 4*batadv_purge_orig, 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 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_tx_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_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_tx_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg1: flags=0x124
  pwq 6: cpus=1 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-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 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=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_tx_worker, wg_packet_encrypt_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 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_tx_worker, wg_packet_encrypt_worker, wg_packet_decrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_tx_worker, wg_packet_encrypt_worker, wg_packet_decrypt_worker
workqueue loop2: flags=0x6
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
    pending: loop_rootcg_workfn
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_tx_worker, wg_packet_encrypt_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 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 4804:wg_packet_decrypt_worker for 0s
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_tx_worker, wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue loop5: flags=0x6
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
    pending: loop_rootcg_workfn
pool 2: cpus=0 node=0 flags=0x0 nice=0 hung=0s workers=6 idle: 4811 1018 10 9 4812
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=40s workers=8 idle: 24 26 4902 4717 4716 4813 4715
pool 8: cpus=0-1 flags=0x6 nice=0 hung=2s workers=10 manager: 12217
Showing backtraces of busy workers in stalled worker pools:
pool 6:
task:kworker/1:2     state:R  running task     stack:0     pid:866   tgid:866   ppid:2      task_flags:0x4208060 flags:0x00000010
Workqueue: events reg_todo
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
 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:211 [inline]
 _raw_spin_unlock_irqrestore+0x94/0x98 kernel/locking/spinlock.c:221
 __debug_object_init+0xf4/0x1e0 lib/debugobjects.c:810
 debug_object_init+0x20/0x2c lib/debugobjects.c:834
 __init_work+0x58/0x68 kernel/workqueue.c:697
 call_usermodehelper_setup+0xbc/0x26c kernel/umh.c:364
 kobject_uevent_env+0x61c/0x944 lib/kobject_uevent.c:631
 call_crda net/wireless/reg.c:574 [inline]
 reg_query_database+0x278/0x4e4 net/wireless/reg.c:1116
 reg_process_hint_core net/wireless/reg.c:2715 [inline]
 reg_process_hint+0x1b8/0x990 net/wireless/reg.c:3061
 reg_process_pending_hints net/wireless/reg.c:3149 [inline]
 reg_todo+0x168/0x6a4 net/wireless/reg.c:3240
 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

Crashes (9):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/06 02:11 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci fe98fb51bf62 f7710056 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/29 12:17 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e8e60d3ddd25 7bf4ea23 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/28 05:08 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e8e60d3ddd25 a3c7249d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/24 01:02 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7dc79bb50ab6 0a1606bc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/23 07:58 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 38872197cae2 abce1216 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/23 07:26 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 38872197cae2 abce1216 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/15 13:16 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 81a27d1a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/11 09:36 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 1fe56c0a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
2026/09/11 07:38 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 1fe56c0a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in reg_todo
* Struck through repros no longer work on HEAD.