BUG: sleeping function called from invalid context at mm/page_alloc.c:5167 in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 2078, name: kworker/0:2 3 locks held by kworker/0:2/2078: #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:620 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:617 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x871/0x15b0 kernel/workqueue.c:2247 #1: ffffc90006847db0 ((work_completion)(&fw_work->work)){+.+.}-{0:0}, at: process_one_work+0x8a5/0x15b0 kernel/workqueue.c:2251 #2: ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: __alloc_pages_bulk+0x406/0x1600 mm/page_alloc.c:5279 irq event stamp: 552184 hardirqs last enabled at (552183): [] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline] hardirqs last enabled at (552183): [] _raw_spin_unlock_irqrestore+0x42/0x50 kernel/locking/spinlock.c:191 hardirqs last disabled at (552184): [] __alloc_pages_bulk+0xebb/0x1600 mm/page_alloc.c:5279 softirqs last enabled at (551710): [] invoke_softirq kernel/softirq.c:432 [inline] softirqs last enabled at (551710): [] __irq_exit_rcu+0x117/0x160 kernel/softirq.c:636 softirqs last disabled at (551577): [] invoke_softirq kernel/softirq.c:432 [inline] softirqs last disabled at (551577): [] __irq_exit_rcu+0x117/0x160 kernel/softirq.c:636 CPU: 0 PID: 2078 Comm: kworker/0:2 Not tainted 5.14.0-rc1-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events request_firmware_work_func Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105 ___might_sleep.cold+0x141/0x16f kernel/sched/core.c:9154 prepare_alloc_pages+0x32d/0x4f0 mm/page_alloc.c:5167 __alloc_pages+0x12f/0x4e0 mm/page_alloc.c:5363 alloc_pages+0x18c/0x2a0 mm/mempolicy.c:2244 stack_depot_save+0x39d/0x4e0 lib/stackdepot.c:303 save_stack+0x102/0x1d0 mm/page_owner.c:120 __set_page_owner+0x50/0x290 mm/page_owner.c:181 prep_new_page mm/page_alloc.c:2433 [inline] __alloc_pages_bulk+0x7ed/0x1600 mm/page_alloc.c:5301 alloc_pages_bulk_array_node include/linux/gfp.h:557 [inline] vm_area_alloc_pages mm/vmalloc.c:2793 [inline] __vmalloc_area_node mm/vmalloc.c:2863 [inline] __vmalloc_node_range+0x39d/0x960 mm/vmalloc.c:2966 __vmalloc_node mm/vmalloc.c:3015 [inline] vmalloc+0x67/0x80 mm/vmalloc.c:3048 kernel_read_file+0x6b4/0x790 fs/kernel_read_file.c:80 kernel_read_file_from_path_initns+0x1b6/0x240 fs/kernel_read_file.c:168 fw_get_filesystem_firmware drivers/base/firmware_loader/main.c:535 [inline] _request_firmware+0x8a7/0x1420 drivers/base/firmware_loader/main.c:813 request_firmware_work_func+0xdd/0x230 drivers/base/firmware_loader/main.c:1079 process_one_work+0x98d/0x15b0 kernel/workqueue.c:2276 worker_thread+0x658/0x11f0 kernel/workqueue.c:2422 kthread+0x3c0/0x4a0 kernel/kthread.c:319 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 ============================================ WARNING: possible recursive locking detected 5.14.0-rc1-syzkaller #0 Tainted: G W -------------------------------------------- kworker/0:2/2078 is trying to acquire lock: ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: rmqueue_pcplist mm/page_alloc.c:3663 [inline] ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: rmqueue mm/page_alloc.c:3701 [inline] ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: get_page_from_freelist+0xc70/0x28b0 mm/page_alloc.c:4163 but task is already holding lock: ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: __alloc_pages_bulk+0x406/0x1600 mm/page_alloc.c:5279 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(lock#2); lock(lock#2); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by kworker/0:2/2078: #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:620 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:617 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline] #0: ffff888100064d38 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x871/0x15b0 kernel/workqueue.c:2247 #1: ffffc90006847db0 ((work_completion)(&fw_work->work)){+.+.}-{0:0}, at: process_one_work+0x8a5/0x15b0 kernel/workqueue.c:2251 #2: ffff8881f684bee0 (lock#2){..-.}-{2:2}, at: __alloc_pages_bulk+0x406/0x1600 mm/page_alloc.c:5279 stack backtrace: CPU: 0 PID: 2078 Comm: kworker/0:2 Tainted: G W 5.14.0-rc1-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events request_firmware_work_func Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105 print_deadlock_bug kernel/locking/lockdep.c:2944 [inline] check_deadlock kernel/locking/lockdep.c:2987 [inline] validate_chain kernel/locking/lockdep.c:3776 [inline] __lock_acquire.cold+0x149/0x3ab kernel/locking/lockdep.c:5015 lock_acquire kernel/locking/lockdep.c:5625 [inline] lock_acquire+0x19d/0x4d0 kernel/locking/lockdep.c:5590 local_lock_acquire include/linux/local_lock_internal.h:42 [inline] rmqueue_pcplist mm/page_alloc.c:3663 [inline] rmqueue mm/page_alloc.c:3701 [inline] get_page_from_freelist+0xc9b/0x28b0 mm/page_alloc.c:4163 __alloc_pages+0x1b2/0x4e0 mm/page_alloc.c:5374 alloc_pages+0x18c/0x2a0 mm/mempolicy.c:2244 stack_depot_save+0x39d/0x4e0 lib/stackdepot.c:303 save_stack+0x102/0x1d0 mm/page_owner.c:120 __set_page_owner+0x50/0x290 mm/page_owner.c:181 prep_new_page mm/page_alloc.c:2433 [inline] __alloc_pages_bulk+0x7ed/0x1600 mm/page_alloc.c:5301 alloc_pages_bulk_array_node include/linux/gfp.h:557 [inline] vm_area_alloc_pages mm/vmalloc.c:2793 [inline] __vmalloc_area_node mm/vmalloc.c:2863 [inline] __vmalloc_node_range+0x39d/0x960 mm/vmalloc.c:2966 __vmalloc_node mm/vmalloc.c:3015 [inline] vmalloc+0x67/0x80 mm/vmalloc.c:3048 kernel_read_file+0x6b4/0x790 fs/kernel_read_file.c:80 kernel_read_file_from_path_initns+0x1b6/0x240 fs/kernel_read_file.c:168 fw_get_filesystem_firmware drivers/base/firmware_loader/main.c:535 [inline] _request_firmware+0x8a7/0x1420 drivers/base/firmware_loader/main.c:813 request_firmware_work_func+0xdd/0x230 drivers/base/firmware_loader/main.c:1079 process_one_work+0x98d/0x15b0 kernel/workqueue.c:2276 worker_thread+0x658/0x11f0 kernel/workqueue.c:2422 kthread+0x3c0/0x4a0 kernel/kthread.c:319 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 usb 6-1: ath9k_htc: Firmware - ath9k_htc/htc_9271-1.4.0.fw download failed