BUG: workqueue lockup in batadv_tt_purge

Status: upstream: reported on 2026/09/15 15:10
Subsystems: netfilter
Labels: prio:high
[Documentation on labels]
Reported-by: syzbot+61b202fdc410840f0198@syzkaller.appspotmail.com
First crash: 29d, last: 7d20h
▶ ▼ ✨ AI Jobs (3)
ID Workflow Result Correct Bug Created Started Finished Revision
8ee1d451 repro-c 💥 BUG: workqueue lockup in batadv_tt_purge 2026/09/14 21:13 2026/09/15 00:49 2026/09/15 04:05 81a27d1a
85bbb2e5 repro-c Reproduced: ✅ ❓ BUG: workqueue lockup in batadv_tt_purge 2026/09/14 14:12 2026/09/14 14:12 2026/09/14 17:03 81a27d1a
d15d28ef assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ NetworkTrigger: ✅ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ❌ UserNamespace: ✅ VMGuestTrigger: ❌ VMHostTrigger: ❌ ❓ BUG: workqueue lockup in batadv_tt_purge 2026/09/12 00:51 2026/09/12 00:51 2026/09/12 00:57 6816f32e
▶ ▼ Discussions (2)
Title Replies (including bot) Last reply
[syzbot] Monthly netfilter report (Oct 2026) 0 (1) 2026/10/02 20:33
[syzbot] [netfilter?] BUG: workqueue lockup in batadv_tt_purge 0 (1) 2026/09/15 15:10
▶ ▼ Last patch testing requests (1)
Created Duration User Patch Repo Result
2026/09/14 18:11 14m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 704340f1cd0dcef829eb62f5b48ae95a2ce17bdf report job log log

Sample crash report:
wlan0: beacon TX faster than countdown (channel/color switch) completion
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=22 refcnt=23
    in-flight: 9:netdev_work_proc for 48s netdev_work_proc
    pending: 8*nsim_dev_hwstats_traffic_work, drm_fb_helper_damage_work, psi_avgs_work, free_obj_work, psi_avgs_work, vmstat_shepherd, psi_avgs_work, 5*ovs_dp_masks_rebalance, delayed_vfree_work
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=9 refcnt=10
    in-flight: 24:xprt_destroy_cb for 4s
    pending: 3*nsim_dev_hwstats_traffic_work, psi_avgs_work, delayed_vfree_work, psi_avgs_work, 2*ovs_dp_masks_rebalance
workqueue events_unbound: flags=0x2
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=5 refcnt=6
    in-flight: 1378:cfg80211_wiphy_work for 44s cfg80211_wiphy_work ,49:cfg80211_wiphy_work for 38s cfg80211_wiphy_work ,93:linkwatch_event for 45s
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=14 refcnt=15
    pending: 2*nsim_dev_trap_report_work, toggle_allocation_gate, nsim_dev_trap_report_work, macvlan_process_broadcast, 6*nsim_dev_trap_report_work, flush_memcg_stats_dwork, 2*nsim_dev_trap_report_work
workqueue events_power_efficient: flags=0x82
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
    in-flight: 1185:crda_timeout_work for 46s
    pending: neigh_managed_work
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
    pending: fb_flashcursor, wg_ratelimiter_gc_entries
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: 266:cleanup_net for 53s
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 cfg80211: flags=0x2000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=4
    in-flight: 12:cfg80211_dfs_channels_update_work for 32s
workqueue ipv6_addrconf: flags=0x6000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=42
    in-flight: 1482:addrconf_dad_work for 45s
    inactive: 38*addrconf_dad_work
workqueue krxrpcd: flags=0x2001a
  pwq 9: cpus=0-1 node=0 flags=0x4 nice=-20 active=1 refcnt=4
    pending: rxrpc_peer_keepalive_worker
workqueue bat_events: flags=0x6000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=59 MAYDAY
    in-flight: 2856(RESCUER):batadv_tt_purge for 9s
    inactive: 6*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, 2*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, 5*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, batadv_iv_send_outstanding_bat_ogm_packet, 2*batadv_tt_purge, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_iv_send_outstanding_bat_ogm_packet, batadv_mcast_mla_update, 2*batadv_tt_purge, batadv_iv_send_outstanding_bat_ogm_packet, 2*batadv_purge_orig, batadv_tt_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, 2*batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_mcast_mla_update, batadv_tt_purge, batadv_bla_periodic_work, 5*batadv_mcast_mla_update, 2*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, batadv_iv_send_outstanding_bat_ogm_packet
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_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-crypt-wg1: 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
workqueue wg-kex-wg0: flags=0x6
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=2 refcnt=3
    in-flight: 40:wg_packet_handshake_send_worker for 0s
    pending: 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
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
  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
    in-flight: 1494:wg_packet_handshake_send_worker for 3s
workqueue bond0: flags=0x2000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=6 MAYDAY
    pending: bond_netdev_notify_work
    inactive: bond_resend_igmp_join_requests_delayed
workqueue wg-kex-wg0: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_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_tx_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg1: 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_tx_worker, wg_packet_decrypt_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
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 26:wg_packet_handshake_receive_worker for 4s
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-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_tx_worker
workqueue wg-crypt-wg1: 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
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=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_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-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=2
    in-flight: 13:wg_packet_handshake_send_worker for 0s
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=1 refcnt=2
    pending: wg_packet_encrypt_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=0x124
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg0: 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=1 refcnt=2
    pending: wg_packet_tx_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
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
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 4802:wg_packet_handshake_receive_worker for 4s
workqueue wg-crypt-wg2: 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 bond1: flags=0x2000a
  pwq 8: cpus=0-1 flags=0x6 nice=0 active=1 refcnt=6 MAYDAY
    pending: bond_mii_monitor
    inactive: bond_alb_monitor
pool 2: cpus=0 node=0 flags=0x0 nice=0 hung=38s workers=9 idle: 4889 5697 4890 6633 6634 4822 10 1157
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=4s workers=9 idle: 4309 4803 4817 4804 866 4795
pool 8: cpus=0-1 flags=0x6 nice=0 hung=0s workers=11 manager: 7380
Showing backtraces of busy workers in stalled worker pools:
pool 2: no worker in running state, cpu=0 is busy (nr_workers=9 nr_idle=8)
The pool might have trouble waking an idle worker.
Backtrace of last woken worker:
task:kworker/0:4     state:R  running task     stack:0     pid:4889  tgid:4889  ppid:2      task_flags:0x4208060 flags:0x00000010
Workqueue:  0x0 (events)
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
 worker_thread+0x924/0xbd0 kernel/workqueue.c:3575
 kthread+0x304/0x3d4 kernel/kthread.c:436
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
NMI backtrace for cpu 0
CPU: 0 UID: 0 PID: 2856 Comm: kworker/R-bat_e Tainted: G             L      syzkaller #0 PREEMPT 
Tainted: [L]=SOFTLOCKUP
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/14/2026
Workqueue: bat_events batadv_tt_purge
Call trace:
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C)
 __dump_stack+0x30/0x40 lib/dump_stack.c:94
 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120
 dump_stack+0x1c/0x28 lib/dump_stack.c:129
 nmi_cpu_backtrace+0x270/0x2b8 lib/nmi_backtrace.c:123
 nmi_trigger_cpumask_backtrace+0x1c0/0x430 lib/nmi_backtrace.c:66
 arch_trigger_cpumask_backtrace+0x30/0x40 arch/arm64/kernel/smp.c:972
 cpumask_backtrace+0x28/0x38 lib/nmi_backtrace.c:136
 trigger_single_cpu_backtrace include/linux/nmi.h:182 [inline]
 show_cpu_pool_busy_workers kernel/workqueue.c:7885 [inline]
 show_cpu_pools_busy_workers+0x640/0x830 kernel/workqueue.c:7899
 wq_watchdog_timer_fn+0x648/0x740 kernel/workqueue.c:8015
 call_timer_fn+0x198/0x7f4 kernel/time/timer.c:1748
 expire_timers kernel/time/timer.c:1799 [inline]
 __run_timers kernel/time/timer.c:2374 [inline]
 __run_timer_base+0x530/0x744 kernel/time/timer.c:2386
 run_timer_base+0x84/0x1b8 kernel/time/timer.c:2395
 run_timer_softirq+0x28/0x48 kernel/time/timer.c:2406
 handle_softirqs+0x324/0xcbc kernel/softirq.c:645
 __do_softirq+0x14/0x20 kernel/softirq.c:679
 ____do_softirq+0x14/0x20 arch/arm64/kernel/irq.c:78
 call_on_irq_stack+0x30/0x48 arch/arm64/kernel/entry.S:901
 do_softirq_own_stack+0x20/0x2c arch/arm64/kernel/irq.c:83
 do_softirq+0x90/0xf8 kernel/softirq.c:546
 __local_bh_enable_ip+0x190/0x234 kernel/softirq.c:473
 __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]
 batadv_tt_local_purge+0x274/0x2f0 net/batman-adv/translation-table.c:1402
 batadv_tt_purge+0x44/0x7b4 net/batman-adv/translation-table.c:3753
 process_one_work kernel/workqueue.c:3396 [inline]
 process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
 rescuer_thread+0x68c/0xd90 kernel/workqueue.c:3703
 kthread+0x304/0x3d4 kernel/kthread.c:436
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854

Crashes (15):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/02 11:52 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7ce5295296b5 6d32eb1f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/10/01 23:59 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7ce5295296b5 6d32eb1f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/28 04:42 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 batadv_tt_purge
2026/09/26 06:29 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 batadv_tt_purge
2026/09/24 00:13 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 batadv_tt_purge
2026/09/23 19:26 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 batadv_tt_purge
2026/09/19 16:52 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 38872197cae2 853b104b .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/18 09:08 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 8d7d05f1 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/16 05:21 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 12a0a44a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/16 02:26 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 12a0a44a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/15 15:09 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 batadv_tt_purge
2026/09/15 11:25 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 batadv_tt_purge
2026/09/15 03:32 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 924033e8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/13 04:33 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 70a60e12 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
2026/09/10 09:39 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 4e8b1cc6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in batadv_tt_purge
* Struck through repros no longer work on HEAD.