Whamcloud - gitweb
LU-506 kernel: FC15 - tcp_sendpage() uses struct sock.
[fs/lustre-release.git] / lnet / autoconf / lustre-lnet.m4
index ca7f785..6ed99bf 100644 (file)
@@ -356,6 +356,20 @@ AC_SUBST(MXLND)
 # LN_CONFIG_O2IB
 #
 AC_DEFUN([LN_CONFIG_O2IB],[
+
+# In RHEL 6.2, rdma_create_id() takes the queue-pair type as a fourth argument
+AC_MSG_CHECKING([if rdma_create_id wants four args])
+LB_LINUX_TRY_COMPILE([
+       #include <rdma/rdma_cm.h>
+],[
+       rdma_create_id(NULL, NULL, 0, 0);
+],[
+       AC_MSG_RESULT([yes])
+       AC_DEFINE(HAVE_RDMA_CREATE_ID_4ARG, 1, [rdma_create_id wants 4 args])
+],[
+       AC_MSG_RESULT([no])
+])
+
 AC_MSG_CHECKING([whether to enable OpenIB gen2 support])
 # set default
 AC_ARG_WITH([o2ib],
@@ -426,7 +440,11 @@ else
                        struct ib_pool_fmr          pool_fmr;
                        enum   ib_cm_rej_reason     rej_reason;
 
+                       #ifdef HAVE_RDMA_CREATE_ID_4ARG
+                       cm_id = rdma_create_id(NULL, NULL, RDMA_PS_TCP, 0);
+                       #else
                        cm_id = rdma_create_id(NULL, NULL, RDMA_PS_TCP);
+                       #endif
                        return PTR_ERR(cm_id);
                ],[
                        AC_MSG_RESULT([yes])
@@ -529,16 +547,16 @@ AC_DEFUN([LN_CONFIG_USERSPACE],
 AC_DEFUN([LN_5ARGS_SYSCTL_PROC_HANDLER],
 [AC_MSG_CHECKING([if sysctl proc_handler wants 5 args])
 LB_LINUX_TRY_COMPILE([
-       #include <linux/sysctl.h>
+        #include <linux/sysctl.h>
 ],[
         struct ctl_table *table = NULL;
-       int write = 1;
-       void __user *buffer = NULL;
-       size_t *lenp = NULL;
-       loff_t *ppos = NULL;
+        int write = 1;
+        void __user *buffer = NULL;
+        size_t *lenp = NULL;
+        loff_t *ppos = NULL;
 
-       proc_handler *proc_handler;
-       proc_handler(table, write, buffer, lenp, ppos);
+        proc_handler *proc_handler;
+        proc_handler(table, write, buffer, lenp, ppos);
 
 ],[
         AC_MSG_RESULT(yes)
@@ -550,6 +568,28 @@ LB_LINUX_TRY_COMPILE([
 ])
 
 #
+# 2.6.36 tcp_sendpage() first parameter is 'struct sock' instead of 'struct socket'.
+#
+AC_DEFUN([LN_CONFIG_TCP_SENDPAGE],
+[AC_MSG_CHECKING([if tcp_sendpage first parameter is socket])
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_LINUX_TRY_COMPILE([
+        #include <linux/net.h>
+        #include <net/tcp.h>
+],[
+        tcp_sendpage((struct socket*)0, NULL, 0, 0, 0);
+],[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(HAVE_TCP_SENDPAGE_USE_SOCKET, 1,
+                  [tcp_sendpage use socket as first parameter])
+],[
+        AC_MSG_RESULT(no)
+])
+EXTRA_KCFLAGS="$tmp_flags"
+])
+
+#
 # LN_PROG_LINUX
 #
 # LNet linux kernel checks
@@ -566,6 +606,8 @@ LN_CONFIG_PTLLND
 LN_CONFIG_MX
 # 2.6.32
 LN_5ARGS_SYSCTL_PROC_HANDLER
+# 2.6.36
+LN_CONFIG_TCP_SENDPAGE
 ])
 
 #