Whamcloud - gitweb
2.6.22 has only one visble change for patchless cleint, SLAB_CTOR_* constants is
[fs/lustre-release.git] / lnet / autoconf / lustre-lnet.m4
index b1950ec..3ed69b4 100644 (file)
@@ -533,6 +533,7 @@ else
        O2IBCPPFLAGS="-I$O2IBPATH/include"
        EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
        EXTRA_KCFLAGS="$EXTRA_KCFLAGS $O2IBCPPFLAGS"
+       EXTRA_LNET_INCLUDE="$O2IBCPPFLAGS $EXTRA_LNET_INCLUDE"
        LB_LINUX_TRY_COMPILE([
                #include <linux/version.h>
                #if !HAVE_GFP_T
@@ -566,8 +567,21 @@ else
                O2IBLND=""
                O2IBCPPFLAGS=""
        ])
+
+       IB_DMA_MAP="`grep -c ib_dma_map_single ${O2IBPATH}/include/rdma/ib_verbs.h`"
+       if test "$IB_DMA_MAP" != 0 ; then
+               IBLND_OFED_VERSION="102"
+       else
+               IBLND_OFED_VERSION="101"
+       fi
+
+        AC_DEFINE_UNQUOTED(IBLND_OFED_VERSION, $IBLND_OFED_VERSION,
+                          [OFED version])
+
        EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
 fi
+
+AC_SUBST(EXTRA_LNET_INCLUDE)
 AC_SUBST(O2IBCPPFLAGS)
 AC_SUBST(O2IBLND)
 ])
@@ -1066,7 +1080,7 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
-#2.6.19 API change
+# 2.6.19 API change
 #panic_notifier_list use atomic_notifier operations
 #
 AC_DEFUN([LN_ATOMIC_PANIC_NOTIFIER],
@@ -1085,6 +1099,65 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
+# 2.6.20 API change INIT_WORK use 2 args and not 
+# store data inside
+AC_DEFUN([LN_3ARGS_INIT_WORK],
+[AC_MSG_CHECKING([check INIT_WORK want 3 args])
+LB_LINUX_TRY_COMPILE([
+       #include <linux/workqueue.h>
+],[
+       struct work_struct work;
+
+       INIT_WORK(&work, NULL, NULL);
+],[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(HAVE_3ARGS_INIT_WORK, 1,
+                  [INIT_WORK use 3 args and store data inside])
+],[
+        AC_MSG_RESULT(NO)
+])
+])
+
+# 2.6.21 api change. 'register_sysctl_table' use only one argument,
+# instead of more old which need two.
+AC_DEFUN([LN_2ARGS_REGISTER_SYSCTL],
+[AC_MSG_CHECKING([check register_sysctl_table want 2 args])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/sysctl.h>
+],[
+       return register_sysctl_table(NULL,0);
+],[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(HAVE_2ARGS_REGISTER_SYSCTL, 1,
+                  [register_sysctl_table want 2 args])
+],[
+        AC_MSG_RESULT(NO)
+])
+])
+
+# 2.6.21 uses struct kmem_cache instead of kmem_cache_s for
+# kmem_cache_t
+AC_DEFUN([LN_KMEM_CACHE_S],
+[AC_MSG_CHECKING([check kernel has struct kmem_cache_s])
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_LINUX_TRY_COMPILE([
+        #include <linux/slab.h>
+],[
+       struct kmem_cache_s *cachep = NULL;
+       
+       kmem_cache_free(cachep, NULL);
+
+],[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(HAVE_KMEM_CACHE_n, 1,
+                  [kernel has struct kmem_cache_s])
+],[
+        AC_MSG_RESULT(NO)
+])
+EXTRA_KCFLAGS="$tmp_flags"
+])
+
 #
 # LN_PROG_LINUX
 #
@@ -1092,7 +1165,6 @@ LB_LINUX_TRY_COMPILE([
 #
 AC_DEFUN([LN_PROG_LINUX],
 [
-LN_CONFIG_CDEBUG
 LN_FUNC_CPU_ONLINE
 LN_TYPE_GFP_T
 LN_TYPE_CPUMASK_T
@@ -1118,6 +1190,11 @@ LN_TASKLIST_LOCK
 # 2.6.19
 LN_KMEM_CACHE_DESTROY_INT
 LN_ATOMIC_PANIC_NOTIFIER
+# 2.6.20
+LN_3ARGS_INIT_WORK
+# 2.6.21
+LN_2ARGS_REGISTER_SYSCTL
+LN_KMEM_CACHE_S
 ])
 
 #
@@ -1354,8 +1431,6 @@ lnet/libcfs/autoMakefile
 lnet/libcfs/linux/Makefile
 lnet/lnet/Makefile
 lnet/lnet/autoMakefile
-lnet/tests/Makefile
-lnet/tests/autoMakefile
 lnet/ulnds/Makefile
 lnet/ulnds/autoMakefile
 lnet/ulnds/socklnd/Makefile