[function ib_inc_rkey exist])
])
+ # In MOFED 4.6, the second and third parameters for
+ # ib_post_send() and ib_post_recv() are declared with
+ # 'const'.
+ tmp_flags="$EXTRA_KCFLAGS"
+ EXTRA_KCFLAGS="-Werror"
+ LB_CHECK_COMPILE([if 'ib_post_send() and ib_post_recv()' have const parameters],
+ ib_post_send_recv_const, [
+ #ifdef HAVE_COMPAT_RDMA
+ #undef PACKAGE_NAME
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ #undef PACKAGE_STRING
+ #undef PACKAGE_BUGREPORT
+ #undef PACKAGE_URL
+ #include <linux/compat-2.6.h>
+ #endif
+ #include <rdma/ib_verbs.h>
+ ],[
+ ib_post_send(NULL, (const struct ib_send_wr *)NULL,
+ (const struct ib_send_wr **)NULL);
+ ],[
+ AC_DEFINE(HAVE_IB_POST_SEND_RECV_CONST, 1,
+ [ib_post_send and ib_post_recv have const parameters])
+ ])
+ EXTRA_KCFLAGS="$tmp_flags"
+
EXTRA_CHECK_INCLUDE=""
]) # ENABLEO2IB != "no"
]) # LN_CONFIG_O2IB
* own this rx (and rx::rx_conn) anymore, LU-5678.
*/
kiblnd_conn_addref(conn);
+#ifdef HAVE_IB_POST_SEND_RECV_CONST
+ rc = ib_post_recv(conn->ibc_cmid->qp, &rx->rx_wrq,
+ (const struct ib_recv_wr **)&bad_wrq);
+#else
rc = ib_post_recv(conn->ibc_cmid->qp, &rx->rx_wrq, &bad_wrq);
+#endif
if (unlikely(rc != 0)) {
CERROR("Can't post rx for %s: %d, bad_wrq: %p\n",
libcfs_nid2str(conn->ibc_peer->ibp_nid), rc, bad_wrq);
libcfs_nid2str(conn->ibc_peer->ibp_nid));
bad = NULL;
+#ifdef HAVE_IB_POST_SEND_RECV_CONST
+ rc = ib_post_send(conn->ibc_cmid->qp, wr,
+ (const struct ib_send_wr **)&bad);
+#else
rc = ib_post_send(conn->ibc_cmid->qp, wr, &bad);
+#endif
}
conn->ibc_last_send = jiffies;