In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: fix DEBUG_LOCKS_WARN_ON(1) when dissolve_free_hugetlb_folio()
When I did memory failure tests recently, below warning occurs:
DEBUG_LOCKS_WARN_ON(1) WARNING: CPU: 8 PID: 1011 at kernel/locking/lockdep.c:232 __lock_acquire+0xccb/0x1ca0 Modules linked in: mce_inject hwpoison_inject CPU: 8 PID: 1011 Comm: bash Kdump: loaded Not tainted 6.9.0-rc3-next-20240410-00012-gdb69f219f4be #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 RIP: 0010:__lock_acquire+0xccb/0x1ca0 RSP: 0018:ffffa7a1c7fe3bd0 EFLAGS: 00000082 RAX: 0000000000000000 RBX: eb851eb853975fcf RCX: ffffa1ce5fc1c9c8 RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffffa1ce5fc1c9c0 RBP: ffffa1c6865d3280 R08: ffffffffb0f570a8 R09: 0000000000009ffb R10: 0000000000000286 R11: ffffffffb0f2ad50 R12: ffffa1c6865d3d10 R13: ffffa1c6865d3c70 R14: 0000000000000000 R15: 0000000000000004 FS: 00007ff9f32aa740(0000) GS:ffffa1ce5fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ff9f3134ba0 CR3: 00000008484e4000 CR4: 00000000000006f0 Call Trace: <TASK> lock_acquire+0xbe/0x2d0 _raw_spin_lock_irqsave+0x3a/0x60 hugepage_subpool_put_pages.part.0+0xe/0xc0 free_huge_folio+0x253/0x3f0 dissolve_free_huge_page+0x147/0x210 __page_handle_poison+0x9/0x70 memory_failure+0x4e6/0x8c0 hard_offline_page_store+0x55/0xa0 kernfs_fop_write_iter+0x12c/0x1d0 vfs_write+0x380/0x540 ksys_write+0x64/0xe0 do_syscall_64+0xbc/0x1d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ff9f3114887 RSP: 002b:00007ffecbacb458 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 000000000000000c RCX: 00007ff9f3114887 RDX: 000000000000000c RSI: 0000564494164e10 RDI: 0000000000000001 RBP: 0000564494164e10 R08: 00007ff9f31d1460 R09: 000000007fffffff R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000c R13: 00007ff9f321b780 R14: 00007ff9f3217600 R15: 00007ff9f3216a00 </TASK> Kernel panic - not syncing: kernel: panic_on_warn set ... CPU: 8 PID: 1011 Comm: bash Kdump: loaded Not tainted 6.9.0-rc3-next-20240410-00012-gdb69f219f4be #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> panic+0x326/0x350 check_panic_on_warn+0x4f/0x50 __warn+0x98/0x190 report_bug+0x18e/0x1a0 handle_bug+0x3d/0x70 exc_invalid_op+0x18/0x70 asm_exc_invalid_op+0x1a/0x20 RIP: 0010:__lock_acquire+0xccb/0x1ca0 RSP: 0018:ffffa7a1c7fe3bd0 EFLAGS: 00000082 RAX: 0000000000000000 RBX: eb851eb853975fcf RCX: ffffa1ce5fc1c9c8 RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffffa1ce5fc1c9c0 RBP: ffffa1c6865d3280 R08: ffffffffb0f570a8 R09: 0000000000009ffb R10: 0000000000000286 R11: ffffffffb0f2ad50 R12: ffffa1c6865d3d10 R13: ffffa1c6865d3c70 R14: 0000000000000000 R15: 0000000000000004 lock_acquire+0xbe/0x2d0 _raw_spin_lock_irqsave+0x3a/0x60 hugepage_subpool_put_pages.part.0+0xe/0xc0 free_huge_folio+0x253/0x3f0 dissolve_free_huge_page+0x147/0x210 __page_handle_poison+0x9/0x70 memory_failure+0x4e6/0x8c0 hard_offline_page_store+0x55/0xa0 kernfs_fop_write_iter+0x12c/0x1d0 vfs_write+0x380/0x540 ksys_write+0x64/0xe0 do_syscall_64+0xbc/0x1d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7ff9f3114887 RSP: 002b:00007ffecbacb458 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 000000000000000c RCX: 00007ff9f3114887 RDX: 000000000000000c RSI: 0000564494164e10 RDI: 0000000000000001 RBP: 0000564494164e10 R08: 00007ff9f31d1460 R09: 000000007fffffff R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000c R13: 00007ff9f321b780 R14: 00007ff9f3217600 R15: 00007ff9f3216a00 </TASK>
After git bisecting and digging into the code, I believe the root cause is that _deferred_list field of folio is unioned with _hugetlb_subpool field. In __update_and_free_hugetlb_folio(), folio->_deferred_ ---truncated---
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade python3-perf-debuginfoUpgrade kernel-tools-develUpgrade python3-perfUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade bpftool-debuginfoUpgrade kernel-modules-extraUpgrade kernel-libbpf-develUpgrade kernel-develUpgrade perfUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade kernel-headersUpgrade kernelUpgrade kernel-modules-extra-commonUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-staticUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.91-99.172 | Feb 17, 2025 | May 30, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | May 30, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 21, 2024 | May 30, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Dec 5, 2024 | May 30, 2024 |
| Suse | — | Upgrade cluster-md-kmp-64kbUpgrade dtb-alteraUpgrade kernel-azureUpgrade kernel-default-baseUpgrade kernel-debug-vdsoUpgrade kernel-defaultUpgrade kernel-source-rtUpgrade dtb-socionextUpgrade kernel-source-vanillaUpgrade dtb-qcomUpgrade reiserfs-kmp-rtUpgrade dlm-kmp-defaultUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docsUpgrade dtb-sprdUpgrade gfs2-kmp-defaultUpgrade kernel-azure-develUpgrade reiserfs-kmp-azureUpgrade kernel-rt-extraUpgrade gfs2-kmp-azureUpgrade kernel-rt-vdsoUpgrade dtb-rockchipUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-64kbUpgrade dtb-allwinnerUpgrade kernel-obs-buildUpgrade kernel-default-livepatch-develUpgrade kernel-rtUpgrade kselftests-kmp-rtUpgrade kernel-rt-optionalUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-default-base-rebuildUpgrade ocfs2-kmp-64kbUpgrade dtb-broadcomUpgrade kernel-rt_debug-develUpgrade dtb-caviumUpgrade dtb-nvidiaUpgrade kernel-64kb-extraUpgrade kernel-azure-optionalUpgrade kernel-syms-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-vdsoUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade dtb-xilinxUpgrade dtb-mediatekUpgrade cluster-md-kmp-azureUpgrade kernel-rt_debugUpgrade kernel-rt_debug-vdsoUpgrade kernel-kvmsmallUpgrade kernel-debugUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade dtb-amlogicUpgrade dtb-armUpgrade kernel-default-vdsoUpgrade kernel-default-develUpgrade dtb-amazonUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-source-azureUpgrade kernel-rt-develUpgrade gfs2-kmp-64kbUpgrade dtb-renesasUpgrade dtb-appleUpgrade kernel-symsUpgrade kernel-obs-qaUpgrade kernel-azure-extraUpgrade dtb-lgUpgrade kernel-default-extraUpgrade gfs2-kmp-rtUpgrade dtb-hisiliconUpgrade dtb-exynosUpgrade dtb-apmUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-sourceUpgrade kernel-kvmsmall-develUpgrade kernel-devel-rtUpgrade kernel-devel-azureUpgrade kernel-develUpgrade kernel-macrosUpgrade dtb-marvellUpgrade kernel-zfcpdumpUpgrade kernel-default-livepatchUpgrade kernel-syms-rtUpgrade dtb-freescaleUpgrade dtb-amdUpgrade kernel-default-optionalUpgrade kernel-64kb-optionalUpgrade dlm-kmp-64kbUpgrade kernel-debug-devel | Dec 5, 2025 | Aug 18, 2025 |
| Ubuntu | — | Upgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-nvidiaUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-oem-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-oracle-64kUpgrade linux-image-gkeUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-genericUpgrade linux-image-nvidia-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1013-awsUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-generic-64kUpgrade linux-image-azureUpgrade linux-image-lowlatency-64kUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibmUpgrade linux-image-kvmUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-oracleUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-awsUpgrade linux-image-nvidia-lowlatency | Aug 9, 2024 | May 30, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | May 30, 2024 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub