linux/arch/loongarch/mm
Tianyang Zhang 985f086f28 LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset()
commit ee084fa961 upstream.

ERROR INFO:

CPU 25 Unable to handle kernel paging request at virtual address 0x0
         ...
 Call Trace:
 [<900000000023c30c>] huge_pte_offset+0x3c/0x58
 [<900000000057fd4c>] hugetlb_follow_page_mask+0x74/0x438
 [<900000000051fee8>] __get_user_pages+0xe0/0x4c8
 [<9000000000522414>] faultin_page_range+0x84/0x380
 [<9000000000564e8c>] madvise_vma_behavior+0x534/0xa48
 [<900000000056689c>] do_madvise+0x1bc/0x3e8
 [<9000000000566df4>] sys_madvise+0x24/0x38
 [<90000000015b9e88>] do_syscall+0x78/0x98
 [<9000000000221f18>] handle_syscall+0xb8/0x158

In some cases, pmd may be NULL and rely on NULL as the return value for
processing, so it is necessary to determine this situation here.

Cc: stable@vger.kernel.org
Fixes: bd51834d1c ("LoongArch: Return NULL from huge_pte_offset() for invalid PMD")
Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-27 11:11:37 +01:00
..
cache.c LoongArch: Remove shm_align_mask and use SHMLBA instead 2023-09-06 22:53:09 +08:00
extable.c LoongArch: BPF: Add BPF exception tables 2022-12-14 08:36:11 +08:00
fault.c LoongArch: Improve hardware page table walker 2024-09-24 15:32:20 +08:00
hugetlbpage.c LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset() 2025-06-27 11:11:37 +01:00
init.c LoongArch: Remove a bogus reference to ZONE_DMA 2025-05-02 07:59:07 +02:00
ioremap.c LoongArch: Fix some build warnings with W=1 2023-09-20 14:26:28 +08:00
kasan_init.c LoongArch: Add WriteCombine shadow mapping in KASAN 2024-11-12 16:35:39 +08:00
maccess.c LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
Makefile LoongArch: Add ARCH_HAS_SET_MEMORY support 2024-09-24 15:32:20 +08:00
mmap.c mm: make arch_get_unmapped_area() take vm_flags by default 2024-09-09 16:39:13 -07:00
page.S LoongArch: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-25 23:40:26 +08:00
pageattr.c LoongArch: Fix kernel_page_present() for KPRANGE/XKPRANGE 2025-03-22 12:54:17 -07:00
pgtable.c LoongArch: Set initial pte entry with PAGE_GLOBAL for kernel space 2024-10-21 22:11:19 +08:00
tlb.c LoongArch: Fix sleeping in atomic context for PREEMPT_RT 2024-12-14 20:04:06 +01:00
tlbex.S LoongArch: Give a chance to build with !CONFIG_SMP 2024-05-14 12:24:18 +08:00