Since v5.8-rc1~201^2~19 Commit
88dca4ca5a93 ("mm: remove the pgprot
argument to __vmalloc") __vmalloc only takes 2 arguments.
So introduce __ll_vmalloc which takes 2 args, and calls
__vmalloc with correct number of args.
Test-Parameters: trivial
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I2c89512a12e28b27544a891620e448a9b752b089
Reviewed-on: https://review.whamcloud.com/40328
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <degremoa@amazon.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
]) # LIBCFS_CACHE_DETAIL_WRITERS
#
+# LIBCFS_VMALLOC_2ARGS
+#
+# kernel v5.8-rc1~201^2~19
+# mm: remove the pgprot argument to __vmalloc
+AC_DEFUN([LIBCFS_VMALLOC_2ARGS], [
+LB_CHECK_COMPILE([if __vmalloc has 2 args],
+vmalloc_2args, [
+ #include <linux/vmalloc.h>
+],[
+ __vmalloc(0, 0);
+],[
+ AC_DEFINE(HAVE_VMALLOC_2ARGS, 1,
+ [__vmalloc only takes 2 args.])
+])
+]) # LIBCFS_VMALLOC_2ARGS
+
+#
# LIBCFS_HAVE_NR_UNSTABLE_NFS
#
# kernel v5.8-rc1~201^2~75
# 5.8
LIBCFS_HAVE_MMAP_LOCK
LIBCFS_KERNEL_SETSOCKOPT
+LIBCFS_VMALLOC_2ARGS
]) # LIBCFS_PROG_LINUX
#
}
#endif
+#ifdef HAVE_VMALLOC_2ARGS
+#define __ll_vmalloc(size, flags) __vmalloc(size, flags)
+#else
+#define __ll_vmalloc(size, flags) __vmalloc(size, flags, PAGE_KERNEL)
+#endif
+
#endif /* __LINUX_CFS_MEM_H__ */
{
void *ret;
if (*kgnilnd_tunables.kgn_vzalloc_noretry)
- ret = __vmalloc(size, __GFP_HIGHMEM | GFP_NOIO | __GFP_NORETRY |
- __GFP_ZERO,
- PAGE_KERNEL);
+ ret = __ll_vmalloc(size, __GFP_HIGHMEM | GFP_NOIO | __GFP_ZERO |
+ __GFP_NORETRY);
else
- ret = __vmalloc(size, __GFP_HIGHMEM | GFP_NOIO | __GFP_ZERO,
- PAGE_KERNEL);
+ ret = __ll_vmalloc(size, __GFP_HIGHMEM | GFP_NOIO | __GFP_ZERO);
LIBCFS_ALLOC_POST(ret, size);
return ret;
#define __OBD_VMALLOC_VERBOSE(ptr, cptab, cpt, size) \
do { \
(ptr) = cptab == NULL ? \
- __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM | __GFP_ZERO, \
- PAGE_KERNEL) : \
+ __ll_vmalloc(size, GFP_NOFS | __GFP_HIGHMEM | __GFP_ZERO) : \
cfs_cpt_vzalloc(cptab, cpt, size); \
if (unlikely((ptr) == NULL)) { \
CERROR("vmalloc of '" #ptr "' (%d bytes) failed\n", \