Re: [syzbot] general protection fault in try_grab_compound_head
From: Thomas Gleixner
Date: Thu Jul 08 2021 - 09:03:49 EST
On Sat, Jul 03 2021 at 13:24, syzbot wrote:
> syzbot has bisected this issue to:
>
> commit 997acaf6b4b59c6a9c259740312a69ea549cc684
> Author: Mark Rutland <mark.rutland@xxxxxxx>
> Date: Mon Jan 11 15:37:07 2021 +0000
>
> lockdep: report broken irq restoration
That's the commit which makes the underlying problem visible:
raw_local_irq_restore() called with IRQs enabled
and is triggered by this call chain:
kvm_wait arch/x86/kernel/kvm.c:860 [inline]
kvm_wait+0xc3/0xe0 arch/x86/kernel/kvm.c:837
pv_wait arch/x86/include/asm/paravirt.h:564 [inline]
pv_wait_head_or_lock kernel/locking/qspinlock_paravirt.h:470 [inline]
__pv_queued_spin_lock_slowpath+0x8b8/0xb40 kernel/locking/qspinlock.c:508
pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:554 [inline]
queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline]
queued_spin_lock include/asm-generic/qspinlock.h:85 [inline]
do_raw_spin_lock+0x200/0x2b0 kernel/locking/spinlock_debug.c:113
spin_lock include/linux/spinlock.h:354 [inline]
alloc_huge_page+0x2b0/0xda0 mm/hugetlb.c:2318
hugetlb_no_page mm/hugetlb.c:4323 [inline]
hugetlb_fault+0xc35/0x1cd0 mm/hugetlb.c:4523
follow_hugetlb_page+0x317/0xda0 mm/hugetlb.c:4836
__get_user_pages+0x3fa/0xe30 mm/gup.c:1041
__get_user_pages_locked mm/gup.c:1256 [inline]
__gup_longterm_locked+0x15f/0xc80 mm/gup.c:1667
io_sqe_buffer_register fs/io_uring.c:8462 [inline]
__io_uring_register fs/io_uring.c:9901 [inline]
__do_sys_io_uring_register+0xeb1/0x3350 fs/io_uring.c:10000
do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
entry_SYSCALL_64_after_hwframe+0x44/0xa9
Thanks,
tglx