aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/spl-build.m420
-rw-r--r--include/sys/vmsystm.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 8a8e3ba28..34d5c4f0b 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -33,6 +33,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
SPL_AC_TASK_CURR
SPL_AC_CTL_UNNUMBERED
SPL_AC_CTL_NAME
+ SPL_AC_VMALLOC_INFO
SPL_AC_FLS64
SPL_AC_DEVICE_CREATE
SPL_AC_5ARGS_DEVICE_CREATE
@@ -1358,6 +1359,25 @@ AC_DEFUN([SPL_AC_GET_VMALLOC_INFO],
])
dnl #
+dnl # 3.10 API change,
+dnl # struct vmalloc_info is now declared in linux/vmalloc.h
+dnl #
+AC_DEFUN([SPL_AC_VMALLOC_INFO], [
+ AC_MSG_CHECKING([whether struct vmalloc_info is declared])
+ SPL_LINUX_TRY_COMPILE([
+ #include <linux/vmalloc.h>
+ struct vmalloc_info { void *a; };
+ ],[
+ return 0;
+ ],[
+ AC_MSG_RESULT(no)
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_VMALLOC_INFO, 1, [yes])
+ ])
+])
+
+dnl #
dnl # 2.6.17 API change
dnl # The helper functions first_online_pgdat(), next_online_pgdat(), and
dnl # next_zone() are introduced to simplify for_each_zone(). These symbols
diff --git a/include/sys/vmsystm.h b/include/sys/vmsystm.h
index 9c52d2824..34aea2b98 100644
--- a/include/sys/vmsystm.h
+++ b/include/sys/vmsystm.h
@@ -74,10 +74,12 @@ extern size_t vmem_size(vmem_t *vmp, int typemask);
#ifndef HAVE_GET_VMALLOC_INFO
#ifdef CONFIG_MMU
+#ifndef HAVE_VMALLOC_INFO
struct vmalloc_info {
unsigned long used;
unsigned long largest_chunk;
};
+#endif
typedef void (*get_vmalloc_info_t)(struct vmalloc_info *);
extern get_vmalloc_info_t get_vmalloc_info_fn;