# 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],
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])
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)
])
#
+# 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
LN_CONFIG_MX
# 2.6.32
LN_5ARGS_SYSCTL_PROC_HANDLER
+# 2.6.36
+LN_CONFIG_TCP_SENDPAGE
])
#