AS_IF([test $ENABLEO2IB = "no"], [
AC_MSG_RESULT([no])
+ AC_DEFUN([LN_CONFIG_O2IB_SRC], [])
+ AC_DEFUN([LN_CONFIG_O2IB_RESULTS], [])
], [
o2ib_found=false
for O2IBPATH in $O2IBPATHS; do
LN_IB_SG_DMA_ADDRESS_EXISTS
EXTRA_CHECK_INCLUDE=""
+ AC_DEFUN([LN_CONFIG_O2IB_SRC], [])
+ AC_DEFUN([LN_CONFIG_O2IB_RESULTS], [])
]) # ENABLEO2IB != "no"
]) # LN_CONFIG_O2IB
]) # LN_EXPORT_KMAP_TO_PAG
#
-# LN_CONFIG_SOCK_ACCEPT
+# LN_HAVE_HYPERVISOR_IS_TYPE
#
-# 4.11 commit cdfbabfb2f0ce983fdaa42f20e5f7842178fc01e added a flag
-# to handle a possible lockdep condition kernel socket accept.
+# 4.14 commit 79cc74155218316b9a5d28577c7077b2adba8e58
+# x86/paravirt: Provide a way to check for hypervisors
#
-AC_DEFUN([LN_CONFIG_SOCK_ACCEPT], [
+AC_DEFUN([LN_HAVE_HYPERVISOR_IS_TYPE], [
tmp_flags="$EXTRA_KCFLAGS"
EXTRA_KCFLAGS="-Werror"
-LB_CHECK_COMPILE([if 'struct sock' accept function requires a bool argument],
-kern_sock_flag, [
- #include <linux/net.h>
+LB_CHECK_COMPILE([if hypervisor_is_type function is available],
+hypervisor_is_type_exists, [
+ #include <asm/hypervisor.h>
],[
- ((struct socket *)0)->ops->accept(NULL, NULL, O_NONBLOCK, false);
+ (void)hypervisor_is_type(X86_HYPER_NATIVE);
],[
- AC_DEFINE(HAVE_KERN_SOCK_ACCEPT_FLAG_ARG, 1,
- ['struct sock' accept function requires bool argument])
+ AC_DEFINE(HAVE_HYPERVISOR_IS_TYPE, 1,
+ [hypervisor_is_type function exists])
])
EXTRA_KCFLAGS="$tmp_flags"
-]) # LN_CONFIG_SOCK_ACCEPT
+]) # LN_HAVE_HYPERVISOR_IS_TYPE
#
# LN_HAVE_ORACLE_OFED_EXTENSIONS
]) # LN_CONFIG_SOCK_GETNAME
#
+# LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
+#
+# kernel 5.3 commit ef11db3310e272d3d8dbe8739e0770820dd20e52
+# and kernel 4.18.0-193.el8:
+# added in_dev_for_each_ifa_rtnl and in_dev_for_each_ifa_rcu
+# and removed for_ifa and endfor_ifa.
+# Use the _rntl variant as the current locking is rtnl.
+#
+AC_DEFUN([LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'in_dev_for_each_ifa_rtnl' is defined],
+in_dev_for_each_ifa_rtnl_test, [
+ #include <linux/inetdevice.h>
+],[
+ const struct in_ifaddr *ifa = NULL;
+ struct in_device *in_dev = NULL;
+
+ in_dev_for_each_ifa_rtnl(ifa, in_dev) {}
+],[
+ AC_DEFINE(HAVE_IN_DEV_FOR_EACH_IFA_RTNL, 1,
+ ['in_dev_for_each_ifa_rtnl' is defined])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
+
+#
# LN_IB_DEVICE_OPS_EXISTS
#
# kernel 5.0 commit 521ed0d92ab0db3edd17a5f4716b7f698f4fce61
]) # LN_IB_SG_DMA_ADDRESS_EXISTS
#
+# LN_USR_RDMA
+#
+#
+AC_DEFUN([LN_USR_RDMA], [
+AC_MSG_CHECKING([if RDMA_PS_TCP exists])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <rdma/rdma_user_cm.h>
+
+ int main(void) {
+ int x = (int)RDMA_PS_TCP;
+ return x;
+ }
+])],[
+ AC_DEFINE(HAVE_USRSPC_RDMA_PS_TCP, 1,
+ [RDMA_PS_TCP exists])
+])
+]) # LN_USR_RDMA
+
+
+AC_DEFUN([LN_PROG_LINUX_SRC], [])
+AC_DEFUN([LN_PROG_LINUX_RESULTS], [])
+
+#
# LN_PROG_LINUX
#
# LNet linux kernel checks
LN_CONFIG_SK_DATA_READY
# 4.x
LN_CONFIG_SOCK_CREATE_KERN
-# 4.11
-LN_CONFIG_SOCK_ACCEPT
# 4.14
+LN_HAVE_HYPERVISOR_IS_TYPE
LN_HAVE_ORACLE_OFED_EXTENSIONS
# 4.17
LN_CONFIG_SOCK_GETNAME
+# 5.3 and 4.18.0-193.el8
+LN_HAVE_IN_DEV_FOR_EACH_IFA_RTNL
]) # LN_PROG_LINUX
#
AC_SUBST(LIBEFENCE)
LN_CONFIG_DLC
+LN_USR_RDMA
]) # LN_CONFIGURE
#