]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
powerpc/book3s64/hugetlb: Fix disabling hugetlb when fadump is active
authorSourabh Jain <sourabhjain@linux.ibm.com>
Tue, 17 Dec 2024 07:46:40 +0000 (13:16 +0530)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Wed, 18 Dec 2024 08:21:03 +0000 (13:51 +0530)
Commit 8597538712eb ("powerpc/fadump: Do not use hugepages when fadump
is active") disabled hugetlb support when fadump is active by returning
early from hugetlbpage_init():arch/powerpc/mm/hugetlbpage.c and not
populating hpage_shift/HPAGE_SHIFT.

Later, commit 2354ad252b66 ("powerpc/mm: Update default hugetlb size
early") moved the allocation of hpage_shift/HPAGE_SHIFT to early boot,
which inadvertently re-enabled hugetlb support when fadump is active.

Fix this by implementing hugepages_supported() on powerpc. This ensures
that disabling hugetlb for the fadump kernel is independent of
hpage_shift/HPAGE_SHIFT.

Fixes: 2354ad252b66 ("powerpc/mm: Update default hugetlb size early")
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20241217074640.1064510-1-sourabhjain@linux.ibm.com
arch/powerpc/include/asm/hugetlb.h

index 18a3028ac3b6de98a577efc6d5f33667ddd6a539..dad2e7980f245bfe7240a968409acdf2315e48e2 100644 (file)
 
 extern bool hugetlb_disabled;
 
+static inline bool hugepages_supported(void)
+{
+       if (hugetlb_disabled)
+               return false;
+
+       return HPAGE_SHIFT != 0;
+}
+#define hugepages_supported hugepages_supported
+
 void __init hugetlbpage_init_defaultsize(void);
 
 int slice_is_hugepage_only_range(struct mm_struct *mm, unsigned long addr,