============================= [ BUG: Invalid wait context ] 6.12.0-syzkaller-12113-gbcc8eda6d349 #0 Not tainted ----------------------------- syz.0.0/5315 is trying to lock: ffff88801fc3aab0 (batched_entropy_u8.lock){..-.}-{3:3}, at: local_lock_acquire include/linux/local_lock_internal.h:29 [inline] ffff88801fc3aab0 (batched_entropy_u8.lock){..-.}-{3:3}, at: get_random_u8+0x1a0/0xaa0 drivers/char/random.c:551 other info that might help us debug this: context-{2:2} 4 locks held by syz.0.0/5315: #0: ffff888035b15988 (&mdev->req_queue_mutex){+.+.}-{4:4}, at: v4l2_release+0x1b5/0x3b0 drivers/media/v4l2-core/v4l2-dev.c:457 #1: ffff888035b14760 (&dev_instance->mutex){+.+.}-{4:4}, at: vicodec_release+0x6f/0x110 drivers/media/test-drivers/vicodec/vicodec-core.c:1947 #2: ffff8880525e2138 (&q->mmap_lock){+.+.}-{4:4}, at: vb2_core_queue_release+0x40/0x150 drivers/media/common/videobuf2/videobuf2-core.c:2694 #3: ffff88801fc3e8d8 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:598 stack backtrace: CPU: 0 UID: 0 PID: 5315 Comm: syz.0.0 Not tainted 6.12.0-syzkaller-12113-gbcc8eda6d349 #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_lock_invalid_wait_context kernel/locking/lockdep.c:4826 [inline] check_wait_context kernel/locking/lockdep.c:4898 [inline] __lock_acquire+0x15a8/0x2100 kernel/locking/lockdep.c:5176 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849 local_lock_acquire include/linux/local_lock_internal.h:29 [inline] get_random_u8+0x1bd/0xaa0 drivers/char/random.c:551 get_random_u32_below include/linux/random.h:78 [inline] kfence_guarded_alloc+0x9c/0xcd0 mm/kfence/core.c:421 __kfence_alloc+0x344/0x370 mm/kfence/core.c:1136 kfence_alloc include/linux/kfence.h:129 [inline] slab_alloc_node mm/slub.c:4137 [inline] __kmalloc_cache_noprof+0x2dd/0x390 mm/slub.c:4309 kmalloc_noprof include/linux/slab.h:901 [inline] add_stack_record_to_list mm/page_owner.c:172 [inline] inc_stack_record_count mm/page_owner.c:214 [inline] __set_page_owner+0x55f/0x800 mm/page_owner.c:329 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0x1f3/0x230 mm/page_alloc.c:1556 prep_new_page mm/page_alloc.c:1564 [inline] get_page_from_freelist+0x365c/0x37a0 mm/page_alloc.c:3474 __alloc_pages_noprof+0x292/0x710 mm/page_alloc.c:4751 alloc_pages_mpol_noprof+0x3e8/0x680 mm/mempolicy.c:2265 stack_depot_save_flags+0x666/0x830 lib/stackdepot.c:627 kasan_save_stack+0x4f/0x60 mm/kasan/common.c:48 __kasan_record_aux_stack+0xac/0xc0 mm/kasan/generic.c:544 task_work_add+0xd9/0x490 kernel/task_work.c:77 task_tick_numa kernel/sched/fair.c:3607 [inline] task_tick_fair+0x58c/0x7b0 kernel/sched/fair.c:13054 sched_tick+0x21e/0x660 kernel/sched/core.c:5652 update_process_times+0x276/0x2f0 kernel/time/timer.c:2524 tick_sched_handle kernel/time/tick-sched.c:276 [inline] tick_nohz_handler+0x37c/0x500 kernel/time/tick-sched.c:297 __run_hrtimer kernel/time/hrtimer.c:1739 [inline] __hrtimer_run_queues+0x551/0xd30 kernel/time/hrtimer.c:1803 hrtimer_interrupt+0x403/0xa40 kernel/time/hrtimer.c:1865 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1038 [inline] __sysvec_apic_timer_interrupt+0x110/0x420 arch/x86/kernel/apic/apic.c:1055 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline] sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1049 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:memset_orig+0x4e/0xb0 arch/x86/lib/memset_64.S:74 Code: d1 48 c1 e9 06 74 35 0f 1f 44 00 00 48 ff c9 48 89 07 48 89 47 08 48 89 47 10 48 89 47 18 48 89 47 20 48 89 47 28 48 89 47 30 <48> 89 47 38 48 8d 7f 40 75 d8 0f 1f 84 00 00 00 00 00 89 d1 83 e1 RSP: 0018:ffffc9000d47fad8 EFLAGS: 00000202 RAX: f8f8f8f8f8f8f8f8 RBX: 1ffff11002303c32 RCX: 0000000000000fdc RDX: 0000000000054800 RSI: 00000000000000f8 RDI: fffff520048162c0 RBP: 0000000000000000 R08: ffffffff81f84d6b R09: 0000000000000000 R10: fffff52004801200 R11: fffffbfff2857123 R12: 1ffff11002303c33 R13: ffff88801181e190 R14: ffff88801181e180 R15: ffff88803e763d00 kasan_poison_vmalloc include/linux/kasan.h:607 [inline] remove_vm_area+0x25e/0x300 mm/vmalloc.c:3243 vfree+0x7c/0x2e0 mm/vmalloc.c:3364 vb2_vmalloc_put+0x68/0xb0 drivers/media/common/videobuf2/videobuf2-vmalloc.c:68 __vb2_buf_mem_free+0xfa/0x2a0 drivers/media/common/videobuf2/videobuf2-core.c:275 __vb2_free_mem drivers/media/common/videobuf2/videobuf2-core.c:571 [inline] __vb2_queue_free+0x452/0xb70 drivers/media/common/videobuf2/videobuf2-core.c:599 vb2_core_queue_release+0x6c/0x150 drivers/media/common/videobuf2/videobuf2-core.c:2695 v4l2_m2m_ctx_release+0x1e/0x40 drivers/media/v4l2-core/v4l2-mem2mem.c:1276 vicodec_release+0x94/0x110 drivers/media/test-drivers/vicodec/vicodec-core.c:1948 v4l2_release+0x1f5/0x3b0 drivers/media/v4l2-core/v4l2-dev.c:458 __fput+0x23c/0xa50 fs/file_table.c:450 task_work_run+0x24f/0x310 kernel/task_work.c:239 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] exit_to_user_mode_loop kernel/entry/common.c:114 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline] __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline] syscall_exit_to_user_mode+0x13f/0x340 kernel/entry/common.c:218 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fb39b580849 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffcda4ab928 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4 RAX: 0000000000000000 RBX: 00007fb39b747ba0 RCX: 00007fb39b580849 RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003 RBP: 00007fb39b747ba0 R08: 0000000000021f3c R09: 00007ffcda4abc0f R10: 00007fb39b747ac0 R11: 0000000000000246 R12: 000000000000e57b R13: 00007fb39b746240 R14: 0000000000000032 R15: ffffffffffffffff ---------------- Code disassembly (best guess), 1 bytes skipped: 0: 48 c1 e9 06 shr $0x6,%rcx 4: 74 35 je 0x3b 6: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) b: 48 ff c9 dec %rcx e: 48 89 07 mov %rax,(%rdi) 11: 48 89 47 08 mov %rax,0x8(%rdi) 15: 48 89 47 10 mov %rax,0x10(%rdi) 19: 48 89 47 18 mov %rax,0x18(%rdi) 1d: 48 89 47 20 mov %rax,0x20(%rdi) 21: 48 89 47 28 mov %rax,0x28(%rdi) 25: 48 89 47 30 mov %rax,0x30(%rdi) * 29: 48 89 47 38 mov %rax,0x38(%rdi) <-- trapping instruction 2d: 48 8d 7f 40 lea 0x40(%rdi),%rdi 31: 75 d8 jne 0xb 33: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) 3a: 00 3b: 89 d1 mov %edx,%ecx 3d: 83 .byte 0x83 3e: e1 .byte 0xe1