From f95e306266aee7a6b28e6218acbab5f6bd21d2a0 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Wed, 17 Dec 2025 21:21:40 +1100 Subject: [PATCH] kmem: don't pass __GFP_HIGHMEM to __vmalloc Since Linux 4.12 (torvalds/linux@19809c2da28ae) __GFP_HIGHMEM has been automatically added to calls to __vmalloc() internally, so we don't need it anymore. This is good, because since 6.19 the kernel warns if you use __GFP_HIGHMEM. Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by: Tony Hutter Reviewed-by: Brian Behlendorf Signed-off-by: Rob Norris Closes #18053 --- module/os/linux/spl/spl-kmem-cache.c | 2 +- module/os/linux/spl/spl-kmem.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/os/linux/spl/spl-kmem-cache.c b/module/os/linux/spl/spl-kmem-cache.c index 5594b2f80..211180e08 100644 --- a/module/os/linux/spl/spl-kmem-cache.c +++ b/module/os/linux/spl/spl-kmem-cache.c @@ -144,7 +144,7 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags) if (skc->skc_flags & KMC_RECLAIMABLE) lflags |= __GFP_RECLAIMABLE; - ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM); + ptr = spl_vmalloc(size, lflags); /* Resulting allocated memory will be page aligned */ ASSERT(IS_P2ALIGNED(ptr, PAGE_SIZE)); diff --git a/module/os/linux/spl/spl-kmem.c b/module/os/linux/spl/spl-kmem.c index 9fe008cef..9fe4042b5 100644 --- a/module/os/linux/spl/spl-kmem.c +++ b/module/os/linux/spl/spl-kmem.c @@ -188,7 +188,7 @@ spl_kvmalloc(size_t size, gfp_t lflags) return (ptr); } - return (spl_vmalloc(size, lflags | __GFP_HIGHMEM)); + return (spl_vmalloc(size, lflags)); } /* @@ -237,7 +237,7 @@ spl_kmem_alloc_impl(size_t size, int flags, int node) */ if (size > spl_kmem_alloc_max) { if (flags & KM_VMEM) { - ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM); + ptr = spl_vmalloc(size, lflags); } else { return (NULL); }