]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm: remove unnecessary __GFP_HIGHMEM in __p*d_alloc_one_*()
authorHuacai Chen <chenhuacai@loongson.cn>
Fri, 7 Nov 2025 09:55:36 +0000 (17:55 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 20 Nov 2025 21:43:59 +0000 (13:43 -0800)
__{pgd,p4d,pud,pmd,pte}_alloc_one_*() always allocate pages with GFP flag
GFP_PGTABLE_KERNEL/GFP_PGTABLE_USER.  These two macros are defined as
follows:

 #define GFP_PGTABLE_KERNEL (GFP_KERNEL | __GFP_ZERO)
 #define GFP_PGTABLE_USER (GFP_PGTABLE_KERNEL | __GFP_ACCOUNT)

There is no __GFP_HIGHMEM in them, so we needn't to clear __GFP_HIGHMEM
explicitly.

Link: https://lkml.kernel.org/r/20251109021817.346181-1-chenhuacai@loongson.cn
Link: https://lkml.kernel.org/r/20251107095536.3101371-1-chenhuacai@loongson.cn
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reviewed-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/asm-generic/pgalloc.h

index b9d2a7c79b93a13223ed0a9c5a91f28b82d7f58f..57137d3ac159259e8c5d8f94b8c6c46144d08d9e 100644 (file)
@@ -18,8 +18,7 @@
  */
 static inline pte_t *__pte_alloc_one_kernel_noprof(struct mm_struct *mm)
 {
-       struct ptdesc *ptdesc = pagetable_alloc_noprof(GFP_PGTABLE_KERNEL &
-                       ~__GFP_HIGHMEM, 0);
+       struct ptdesc *ptdesc = pagetable_alloc_noprof(GFP_PGTABLE_KERNEL, 0);
 
        if (!ptdesc)
                return NULL;
@@ -178,7 +177,6 @@ static inline pud_t *__pud_alloc_one_noprof(struct mm_struct *mm, unsigned long
 
        if (mm == &init_mm)
                gfp = GFP_PGTABLE_KERNEL;
-       gfp &= ~__GFP_HIGHMEM;
 
        ptdesc = pagetable_alloc_noprof(gfp, 0);
        if (!ptdesc)
@@ -236,7 +234,6 @@ static inline p4d_t *__p4d_alloc_one_noprof(struct mm_struct *mm, unsigned long
 
        if (mm == &init_mm)
                gfp = GFP_PGTABLE_KERNEL;
-       gfp &= ~__GFP_HIGHMEM;
 
        ptdesc = pagetable_alloc_noprof(gfp, 0);
        if (!ptdesc)
@@ -284,7 +281,6 @@ static inline pgd_t *__pgd_alloc_noprof(struct mm_struct *mm, unsigned int order
 
        if (mm == &init_mm)
                gfp = GFP_PGTABLE_KERNEL;
-       gfp &= ~__GFP_HIGHMEM;
 
        ptdesc = pagetable_alloc_noprof(gfp, order);
        if (!ptdesc)