BUG: workqueue lockup in uhid_device_add_worker

Status: moderation: reported on 2026/09/21 01:13
Subsystems: kernfs
Labels: prio:high
[Documentation on labels]
Reported-by: syzbot+a2cb777c737a16f16acf@syzkaller.appspotmail.com
First crash: 49d, last: 24d
▶ ▼ ✨ AI Jobs (4)
ID Workflow Result Correct Bug Created Started Finished Revision
b4397d29 repro-c Reproduced: ✅ ❓ BUG: workqueue lockup in uhid_device_add_worker 2026/10/10 16:02 2026/10/10 16:02 2026/10/10 19:00 4f92358f
4c3bc847 repro-c 💥 BUG: workqueue lockup in uhid_device_add_worker 2026/10/07 21:46 2026/10/07 21:46 2026/10/07 22:35 f8f239cf
6d3e5827 assessment-security DenialOfService: ✅ Exploitable: ✅ FilesystemTrigger: ❌ NetworkTrigger: ❌ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ❌ UserNamespace: ✅ VMGuestTrigger: ❌ VMHostTrigger: ❌ ❓ BUG: workqueue lockup in uhid_device_add_worker 2026/09/20 01:18 2026/09/20 01:18 2026/09/20 01:28 853b104b
0b414727 assessment-security 💥 BUG: workqueue lockup in uhid_device_add_worker 2026/09/19 00:36 2026/09/19 00:36 2026/09/19 01:07 853b104b
▶ ▼ Last patch testing requests (1)
Created Duration User Patch Repo Result
2026/10/10 19:00 17m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git 71c3e5409eef3b51ff28a2e14b4a9877f7766863 report job log log

Sample crash report:
BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 30s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=24 refcnt=26
    in-flight: 4896:uhid_device_add_worker for 31s BAR(8748)
    pending: 8*nsim_dev_hwstats_traffic_work, release_one_tty, jump_label_update_timeout, psi_avgs_work, ovs_dp_masks_rebalance, delayed_vfree_work, vmstat_shepherd, 2*psi_avgs_work, 2*ovs_dp_masks_rebalance, psi_avgs_work, ovs_dp_masks_rebalance, free_obj_work, ovs_dp_masks_rebalance, drm_fb_helper_damage_work
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=5 refcnt=6
    in-flight: 55:xfrm_state_gc_task for 15s xfrm_state_gc_task
    pending: 2*nsim_dev_hwstats_traffic_work, key_garbage_collector
workqueue events_unbound: flags=0x2
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=16 refcnt=17
    in-flight: 5364:cfg80211_wiphy_work for 18s ,40:cfg80211_wiphy_work for 19s ,5361:linkwatch_event for 23s ,5356:cfg80211_wiphy_work for 7s ,5360:cfg80211_wiphy_work for 17s ,12:nsim_dev_trap_report_work for 0s ,1238:cfg80211_wiphy_work for 21s ,98:cfg80211_wiphy_work for 5s
    pending: nsim_dev_trap_report_work, 4*cfg80211_wiphy_work, macvlan_process_broadcast, 2*cfg80211_wiphy_work
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=12 refcnt=13
    in-flight: 5359:nsim_dev_trap_report_work for 0s
    pending: nsim_dev_trap_report_work, crng_reseed, 2*nsim_dev_trap_report_work, flush_memcg_stats_dwork, 2*nsim_dev_trap_report_work, macvlan_process_broadcast, toggle_allocation_gate, macvlan_process_broadcast, nsim_dev_trap_report_work
workqueue events_power_efficient: flags=0x82
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=3 refcnt=4
    in-flight: 1184:crda_timeout_work for 22s
    pending: fb_flashcursor, neigh_periodic_work
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=4 refcnt=6
    pending: do_cache_clean, wg_ratelimiter_gc_entries, nf_flow_offload_work_gc BAR(5357), neigh_managed_work
workqueue events_dfl_long: flags=0x2
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=8 refcnt=9
    pending: 8*defense_work_handler
workqueue netns: flags=0x6000a
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=5
    in-flight: 5357:cleanup_net for 42s
    inactive: cleanup_net
workqueue mm_percpu_wq: flags=0x108
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: vmstat_update
workqueue writeback: flags=0x4a
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    in-flight: 5358:wb_workfn for 30s
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    pending: wb_update_bandwidth_workfn
workqueue gid-cache-wq: flags=0x20002
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=4
    pending: update_gid_event_work_handler
workqueue bat_events: flags=0x6000a
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=46
    in-flight: 14:batadv_tt_purge for 23s
    inactive: 6*batadv_mcast_mla_update, 4*batadv_iv_send_outstanding_bat_ogm_packet, 2*batadv_purge_orig, 5*batadv_iv_send_outstanding_bat_ogm_packet, 3*batadv_purge_orig, 4*batadv_iv_send_outstanding_bat_ogm_packet, batadv_purge_orig, batadv_tt_purge, batadv_dat_purge, batadv_bla_periodic_work, batadv_tt_purge, batadv_dat_purge, 2*batadv_bla_periodic_work, batadv_dat_purge, 2*batadv_tt_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_bla_periodic_work, batadv_dat_purge, batadv_tt_purge, batadv_bla_periodic_work, batadv_dat_purge
workqueue ext4-rsv-conversion: flags=0xa
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    pending: ext4_end_io_rsv_work
workqueue wg-kex-wg0: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue wg-kex-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue wg-kex-wg2: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 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=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 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=2 refcnt=3
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_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-kex-wg2: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue bond0: flags=0x2000a
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=4
    pending: bond_arp_monitor
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_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-kex-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 26:wg_packet_handshake_receive_worker for 3s
workqueue wg-kex-wg2: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 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=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg0: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_send_worker
workqueue wg-kex-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_send_worker
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_send_worker
workqueue wg-kex-wg2: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue wg-kex-wg0: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 4817:wg_packet_handshake_receive_worker for 2s
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
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 4473:wg_packet_handshake_receive_worker for 14s
workqueue wg-kex-wg1: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 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=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x6
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=2 refcnt=3
    pending: 2*wg_packet_handshake_send_worker
workqueue krds_cp_wq#1/0: flags=0x20002
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=4
    pending: rds_connect_worker
pool 2: cpus=0 node=0 flags=0x0 nice=0 hung=30s workers=9 idle: 4809 4794 4802 866 4810 4801 10 9
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=0s workers=8 idle: 4897 24 6746 4903
pool 8: cpus=0-1 flags=0x4 nice=0 hung=0s workers=17 idle: 49 3732 5362 928
Showing backtraces of busy workers in stalled worker pools:
pool 2:
task:kworker/0:8     state:R  running task     stack:0     pid:4896  tgid:4896  ppid:2      task_flags:0x4208060 flags:0x00000010
Workqueue: events uhid_device_add_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
 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:211 [inline]
 _raw_spin_unlock_irqrestore+0x94/0x98 kernel/locking/spinlock.c:221
 __debug_check_no_obj_freed lib/debugobjects.c:1180 [inline]
 debug_check_no_obj_freed+0x2c8/0x3a4 lib/debugobjects.c:1201
 __free_pages_prepare mm/page_alloc.c:1425 [inline]
 __free_frozen_pages+0x470/0xbd0 mm/page_alloc.c:2962
 free_frozen_pages+0x14/0x20 mm/page_alloc.c:2999
 __free_slab+0x11c/0x1b4 mm/slub.c:3528
 free_slab+0x2c/0x154 mm/slub.c:3562
 discard_slab+0x48/0x90 mm/slub.c:3568
 __slab_free+0x1a0/0x1d0 mm/slub.c:5823
 ___cache_free+0x80/0x94 mm/slub.c:6581
 qlink_free mm/kasan/quarantine.c:163 [inline]
 qlist_free_all+0xb4/0x120 mm/kasan/quarantine.c:179
 kasan_quarantine_reduce+0x118/0x124 mm/kasan/quarantine.c:286
 __kasan_slab_alloc+0x2c/0x88 mm/kasan/common.c:361
 kasan_slab_alloc include/linux/kasan.h:253 [inline]
 slab_post_alloc_hook mm/slub.c:4683 [inline]
 slab_alloc_node mm/slub.c:4996 [inline]
 kmem_cache_alloc_noprof+0x268/0x5d4 mm/slub.c:5010
 __kernfs_new_node+0xf0/0x7d8 fs/kernfs/dir.c:665
 kernfs_new_node+0xe8/0x130 fs/kernfs/dir.c:751
 kernfs_create_link+0x98/0x1e4 fs/kernfs/symlink.c:39
 sysfs_do_create_link_sd+0x8c/0x120 fs/sysfs/symlink.c:44
 sysfs_do_create_link fs/sysfs/symlink.c:80 [inline]
 sysfs_create_link+0x74/0x94 fs/sysfs/symlink.c:92
 device_add_class_symlinks+0xb8/0x254 drivers/base/core.c:3508
 device_add+0x3fc/0x9e0 drivers/base/core.c:3712
 device_create_groups_vargs+0x1fc/0x298 drivers/base/core.c:4458
 device_create+0xf4/0x148 drivers/base/core.c:4497
 hidraw_connect+0x124/0x2f0 drivers/hid/hidraw.c:628
 hid_connect+0x2a8/0xe20 drivers/hid/hid-core.c:2330
 hidpp_probe+0xe30/0x132c drivers/hid/hid-logitech-hidpp.c:4769
 __hid_device_probe drivers/hid/hid-core.c:2839 [inline]
 hid_device_probe+0x35c/0x61c drivers/hid/hid-core.c:2878
 call_driver_probe drivers/base/dd.c:-1 [inline]
 really_probe+0x29c/0x800 drivers/base/dd.c:706
 __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
 driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
 __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
 bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
 __device_attach+0x248/0x390 drivers/base/dd.c:1098
 device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
 bus_probe_device+0x58/0x120 drivers/base/bus.c:620
 device_add+0x6cc/0x9e0 drivers/base/core.c:3776
 hid_add_device+0x254/0x3b8 drivers/hid/hid-core.c:3065
 uhid_device_add_worker+0x4c/0xf8 drivers/hid/uhid.c:73
 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 (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/12 07:32 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 71c3e5409eef 4f92358f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in uhid_device_add_worker
2026/09/17 01:07 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 95928915 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in uhid_device_add_worker
* Struck through repros no longer work on HEAD.