]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Add missing __GFP_HIGHMEM flag to vmalloc
authorMichael Niewöhner <c0d3z3r0@users.noreply.github.com>
Wed, 17 Jul 2019 16:09:22 +0000 (18:09 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 17 Jul 2019 16:09:22 +0000 (09:09 -0700)
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 <behlendorf1@llnl.gov>
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Closes #9031

module/spl/spl-kmem.c

index 1fdb61e6fce1f4d5c9691f0ff1721988a5981b09..824b5e89f5072b2cdec359ebcee1e0f1c2462906 100644 (file)
@@ -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);
                        }