Whamcloud - gitweb
b=6336
[fs/lustre-release.git] / lnet / autoconf / lustre-lnet.m4
index 0768673..ba0fffc 100644 (file)
@@ -107,6 +107,14 @@ if test -d $QSNET/drivers/net/qsnet ; then
                        QSWCPPFLAGS="-I$QSNET/include/linux"
                fi
        fi
+
+       LB_LINUX_CONFIG([QSNET],[],[
+               LB_LINUX_CONFIG([QSNET_MODULE],[],[
+                       AC_MSG_WARN([QSNET is not enabled in this kernel; not building qswnal.])
+                       QSWNAL=""
+                       QSWCPPFLAGS=""
+               ])
+       ])
 else
        AC_MSG_RESULT([no])
        QSWNAL=""
@@ -367,6 +375,57 @@ else
        ])
        EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
 fi
+if test -n "$VIBNAL"; then
+       EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
+       EXTRA_KCFLAGS="$EXTRA_KCFLAGS $VIBCPPFLAGS"
+       AC_MSG_CHECKING([if Voltaire still uses void * sg addresses])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/list.h>
+               #include <asm/byteorder.h>
+               #ifdef __BIG_ENDIAN
+               # define CPU_BE 1
+                # define CPU_LE 0
+               #endif
+               #ifdef __LITTLE_ENDIAN
+               # define CPU_BE 0
+               # define CPU_LE 1
+               #endif
+               #include <vverbs.h>
+               #include <ib-cm.h>
+               #include <ibat.h>
+       ],[
+               vv_scatgat_t  sg;
+
+               return &sg.v_address[3] == NULL;
+       ],[
+               AC_MSG_RESULT([yes])
+               VIBCPPFLAGS="$VIBCPPFLAGS -DIBNAL_VOIDSTAR_SGADDR=1"
+       ],[
+               AC_MSG_RESULT([no])
+       ])
+       AC_MSG_CHECKING([if page_to_phys() must avoid sign extension])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/kernel.h>
+               #include <linux/mm.h>
+               #include <linux/unistd.h>
+               #include <asm/system.h>
+               #include <asm/io.h>
+       ],[
+               struct page p;
+
+               switch (42) {
+               case 0:
+               case (sizeof(typeof(page_to_phys(&p))) < 8):
+                       break;
+               }
+       ],[
+               AC_MSG_RESULT([yes])
+               VIBCPPFLAGS="$VIBCPPFLAGS -DIBNAL_32BIT_PAGE2PHYS=1"
+       ],[
+               AC_MSG_RESULT([no])
+       ])
+       EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+fi
 AC_SUBST(VIBCPPFLAGS)
 AC_SUBST(VIBNAL)
 ])
@@ -513,9 +572,7 @@ fi
 # Portals linux kernel checks
 #
 AC_DEFUN([LP_PROG_LINUX],
-[LP_CHECK_GCC_VERSION
-
-LP_CONFIG_ZEROCOPY
+[LP_CONFIG_ZEROCOPY
 LP_CONFIG_AFFINITY
 LP_CONFIG_QUADRICS
 LP_CONFIG_GM
@@ -556,7 +613,7 @@ AC_DEFUN([LP_PATH_DEFAULTS],
 #
 AC_DEFUN([LP_CONFIGURE],
 [# portals/utils/portals.c
-AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h endian.h])
+AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h endian.h sys/ioctl.h])
 AC_CHECK_FUNCS([gethostbyname socket connect])
 
 # portals/utils/debug.c