rc rc0: syz0 as /devices/virtual/misc/uhid/0003:04D8:C002.0002/rc/rc0 input: syz0 as /devices/virtual/misc/uhid/ input: syz0 as /devices/virtual/misc/uhid/0003:04D8:C002.0002/rc/rc0/input3 BUG: sleeping function called from invalid context at ./include/linux/sched/mm.h:323 in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 1009, name: kworker/1:2 preempt_count: 1, expected: 0 RCU nest depth: 0, expected: 0 4 locks held by kworker/1:2/1009: #0: ffff0000c002b540 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3297 [inline] #0: ffff0000c002b540 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x734/0x10b8 kernel/workqueue.c:3405 #1: ffff800094657c40 ((work_completion)(&uhid->worker)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3297 [inline] #1: ffff800094657c40 ((work_completion)(&uhid->worker)){+.+.}-{0:0}, at: process_scheduled_works+0x73c/0x10b8 kernel/workqueue.c:3405 #2: ffff0000f41ada58 (&dev->mutex){....}-{4:4}, at: device_lock include/linux/device.h:1104 [inline] #2: ffff0000f41ada58 (&dev->mutex){....}-{4:4}, at: __device_attach+0x88/0x390 drivers/base/dd.c:1073 #3: ffff0000cfe8f970 (&data->lock){....}-{3:3}, at: picolcd_set_contrast+0x104/0x290 drivers/hid/hid-picolcd_lcd.c:36 irq event stamp: 87828 hardirqs last enabled at (87827): [] kasan_quarantine_put+0xb4/0x1c4 mm/kasan/quarantine.c:234 hardirqs last disabled at (87828): [] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:130 [inline] hardirqs last disabled at (87828): [] _raw_spin_lock_irqsave+0x2c/0x7c kernel/locking/spinlock.c:166 softirqs last enabled at (87772): [] __alloc_skb+0x1c0/0x610 net/core/skbuff.c:698 softirqs last disabled at (87770): [] local_bh_disable include/linux/bottom_half.h:20 [inline] softirqs last disabled at (87770): [] __alloc_skb+0x1a8/0x610 net/core/skbuff.c:697 Preemption disabled at: [] picolcd_set_contrast+0x104/0x290 drivers/hid/hid-picolcd_lcd.c:36 CPU: 1 UID: 0 PID: 1009 Comm: kworker/1:2 Not tainted syzkaller #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/07/2026 Workqueue: events uhid_device_add_worker 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 __might_resched+0x354/0x4c0 kernel/sched/core.c:9197 __might_sleep+0x84/0xdc kernel/sched/core.c:9126 might_alloc include/linux/sched/mm.h:323 [inline] slab_pre_alloc_hook mm/slub.c:4537 [inline] slab_alloc_node mm/slub.c:4897 [inline] __do_kmalloc_node mm/slub.c:5333 [inline] __kmalloc_noprof+0xfc/0x6b8 mm/slub.c:5359 _kmalloc_noprof include/linux/slab.h:992 [inline] _kzalloc_noprof include/linux/slab.h:1309 [inline] hid_alloc_report_buf drivers/hid/hid-core.c:1917 [inline] __hid_request+0xac/0x3cc drivers/hid/hid-core.c:2007 hid_hw_request+0x9c/0xb4 drivers/hid/hid-core.c:2523 picolcd_set_contrast+0x1b8/0x290 drivers/hid/hid-picolcd_lcd.c:39 picolcd_init_lcd+0x1b4/0x2a0 drivers/hid/hid-picolcd_lcd.c:70 picolcd_probe_lcd drivers/hid/hid-picolcd_core.c:477 [inline] picolcd_probe+0x8a8/0x1110 drivers/hid/hid-picolcd_core.c:580 __hid_device_probe drivers/hid/hid-core.c:2829 [inline] hid_device_probe+0x36c/0x5d4 drivers/hid/hid-core.c:2866 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:3772 hid_add_device+0x254/0x3b8 drivers/hid/hid-core.c:3010 uhid_device_add_worker+0x4c/0xf8 drivers/hid/uhid.c:73 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0x788/0x10b8 kernel/workqueue.c:3405 worker_thread+0x798/0xbd0 kernel/workqueue.c:3486 kthread+0x304/0x3d4 kernel/kthread.c:436 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838 ============================= [ BUG: Invalid wait context ] syzkaller #0 Tainted: G W ----------------------------- kworker/1:2/1009 is trying to lock: ffff0000d141d3c0 (&uhid->report_lock){....}-{4:4}, at: uhid_hid_set_report drivers/hid/uhid.c:295 [inline] ffff0000d141d3c0 (&uhid->report_lock){....}-{4:4}, at: uhid_hid_raw_request+0x174/0x574 drivers/hid/uhid.c:340 other info that might help us debug this: context-{5:5} 4 locks held by kworker/1:2/1009: #0: ffff0000c002b540 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3297 [inline] #0: ffff0000c002b540 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x734/0x10b8 kernel/workqueue.c:3405 #1: ffff800094657c40 ((work_completion)(&uhid->worker)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3297 [inline] #1: ffff800094657c40 ((work_completion)(&uhid->worker)){+.+.}-{0:0}, at: process_scheduled_works+0x73c/0x10b8 kernel/workqueue.c:3405 #2: ffff0000f41ada58 (&dev->mutex){....}-{4:4}, at: device_lock include/linux/device.h:1104 [inline] #2: ffff0000f41ada58 (&dev->mutex){....}-{4:4}, at: __device_attach+0x88/0x390 drivers/base/dd.c:1073 #3: ffff0000cfe8f970 (&data->lock){....}-{3:3}, at: picolcd_set_contrast+0x104/0x290 drivers/hid/hid-picolcd_lcd.c:36 stack backtrace: CPU: 1 UID: 0 PID: 1009 Comm: kworker/1:2 Tainted: G W syzkaller #0 PREEMPT Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/07/2026 Workqueue: events uhid_device_add_worker 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 print_lock_invalid_wait_context kernel/locking/lockdep.c:4830 [inline] check_wait_context kernel/locking/lockdep.c:4902 [inline] __lock_acquire+0xb04/0x2ebc kernel/locking/lockdep.c:5187 lock_acquire+0x140/0x364 kernel/locking/lockdep.c:5868 __mutex_lock_common kernel/locking/mutex.c:646 [inline] __mutex_lock+0x164/0xf14 kernel/locking/mutex.c:821 mutex_lock_interruptible_nested+0x24/0x30 kernel/locking/mutex.c:899 uhid_hid_set_report drivers/hid/uhid.c:295 [inline] uhid_hid_raw_request+0x174/0x574 drivers/hid/uhid.c:340 __hid_hw_raw_request drivers/hid/hid-core.c:2547 [inline] hid_hw_raw_request drivers/hid/hid-core.c:2569 [inline] __hid_request+0x1f4/0x3cc drivers/hid/hid-core.c:2023 hid_hw_request+0x9c/0xb4 drivers/hid/hid-core.c:2523 picolcd_set_contrast+0x1b8/0x290 drivers/hid/hid-picolcd_lcd.c:39 picolcd_init_lcd+0x1b4/0x2a0 drivers/hid/hid-picolcd_lcd.c:70 picolcd_probe_lcd drivers/hid/hid-picolcd_core.c:477 [inline] picolcd_probe+0x8a8/0x1110 drivers/hid/hid-picolcd_core.c:580 __hid_device_probe drivers/hid/hid-core.c:2829 [inline] hid_device_probe+0x36c/0x5d4 drivers/hid/hid-core.c:2866 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:3772 hid_add_device+0x254/0x3b8 drivers/hid/hid-core.c:3010 uhid_device_add_worker+0x4c/0xf8 drivers/hid/uhid.c:73 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0x788/0x10b8 kernel/workqueue.c:3405 worker_thread+0x798/0xbd0 kernel/workqueue.c:3486 kthread+0x304/0x3d4 kernel/kthread.c:436 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:838 hid-picolcd 0003:04D8:C002.0002: No report with id 0x91 found