From: Michael Niewöhner Date: Wed, 17 Jul 2019 16:09:22 +0000 (+0200) Subject: Add missing __GFP_HIGHMEM flag to vmalloc X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5784c7c36eca5a0c9ed662dfd9248de4c90862cf;p=zfs Add missing __GFP_HIGHMEM flag to vmalloc Make use of __GFP_HIGHMEM flag in vmem_alloc, which is required for some 32-bit systems to make use of full available memory. While kernel versions >=4.12-rc1 add this flag implicitly, older kernels do not. Reviewed-by: Brian Behlendorf Signed-off-by: Sebastian Gottschall Signed-off-by: Michael Niewöhner Closes #9031 --- diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c index 1fdb61e6f..824b5e89f 100644 --- a/module/spl/spl-kmem.c +++ b/module/spl/spl-kmem.c @@ -180,7 +180,8 @@ spl_kmem_alloc_impl(size_t size, int flags, int node) */ if ((size > spl_kmem_alloc_max) || use_vmem) { if (flags & KM_VMEM) { - ptr = __vmalloc(size, lflags, PAGE_KERNEL); + ptr = __vmalloc(size, lflags | __GFP_HIGHMEM, + PAGE_KERNEL); } else { return (NULL); }