PERFORCE change 128979 for review
Steve Wise
swise at FreeBSD.org
Mon Nov 12 08:13:54 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=128979
Change 128979 by swise at swise:vic10:iwarp on 2007/11/12 16:13:00
Get rdma modules to load!
rdma_addr, rdma_cma, rdma_iwcm, and rdma_core now load. The IB stuff
is all ifdefed out, but iwarp should work!
Affected files ...
.. //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#5 edit
.. //depot/projects/iwarp/sys/contrib/rdma/rdma_device.c#3 edit
.. //depot/projects/iwarp/sys/contrib/rdma/rdma_iwcm.c#3 edit
.. //depot/projects/iwarp/sys/modules/rdma/iwcm/Makefile#2 edit
Differences ...
==== //depot/projects/iwarp/sys/contrib/rdma/rdma_cma.c#5 (text+ko) ====
@@ -71,7 +71,9 @@
.remove = cma_remove_one
};
+#ifdef IB_SUPPORTED
static struct ib_sa_client sa_client;
+#endif
static struct rdma_addr_client addr_client;
static TAILQ_HEAD(, cma_device) dev_list;
static LIST_HEAD(, rdma_id_private) listen_any_list;
@@ -553,6 +555,7 @@
return ib_modify_qp(id->qp, &qp_attr, IB_QP_STATE);
}
+#ifdef IB_SUPPORTED
static int cma_ib_init_qp_attr(struct rdma_id_private *id_priv,
struct ib_qp_attr *qp_attr, int *qp_attr_mask)
{
@@ -577,6 +580,7 @@
}
return 0;
}
+#endif
int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr,
int *qp_attr_mask)
@@ -585,6 +589,7 @@
int ret = 0;
id_priv = container_of(id, struct rdma_id_private, id);
+#ifdef IB_SUPPORTED
switch (rdma_node_get_transport(id_priv->id.device->node_type)) {
case RDMA_TRANSPORT_IB:
if (!id_priv->cm_id.ib || cma_is_ud_ps(id_priv->id.ps))
@@ -596,17 +601,20 @@
qp_attr->rq_psn = id_priv->seq_num;
break;
case RDMA_TRANSPORT_IWARP:
+#endif
if (!id_priv->cm_id.iw) {
qp_attr->qp_access_flags = IB_ACCESS_LOCAL_WRITE;
*qp_attr_mask = IB_QP_STATE | IB_QP_ACCESS_FLAGS;
} else
ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr,
qp_attr_mask);
+#ifdef IB_SUPPORTED
break;
default:
ret = ENOSYS;
break;
}
+#endif
return ret;
}
@@ -731,6 +739,7 @@
static void cma_cancel_route(struct rdma_id_private *id_priv)
{
+#ifdef IB_SUPPORTED
switch (rdma_node_get_transport(id_priv->id.device->node_type)) {
case RDMA_TRANSPORT_IB:
if (id_priv->query)
@@ -739,6 +748,7 @@
default:
break;
}
+#endif
}
static inline int cma_internal_listen(struct rdma_id_private *id_priv)
@@ -752,18 +762,22 @@
cma_exch(id_priv, CMA_DESTROYING);
if (id_priv->cma_dev) {
+#ifdef IB_SUPPORTED
switch (rdma_node_get_transport(id_priv->id.device->node_type)) {
case RDMA_TRANSPORT_IB:
if (id_priv->cm_id.ib && !IS_ERR(id_priv->cm_id.ib))
ib_destroy_cm_id(id_priv->cm_id.ib);
break;
case RDMA_TRANSPORT_IWARP:
+#endif
if (id_priv->cm_id.iw && !IS_ERR(id_priv->cm_id.iw))
iw_destroy_cm_id(id_priv->cm_id.iw);
+#ifdef IB_SUPPORTED
break;
default:
break;
}
+#endif
cma_detach_from_dev(id_priv);
}
LIST_REMOVE(id_priv, listen_entry);
@@ -2870,7 +2884,9 @@
return (ENOMEM);
taskqueue_start_threads(&cma_wq, 1, PI_NET, "cma_wq thread");
+#ifdef IB_SUPPORTED
ib_sa_register_client(&sa_client);
+#endif
rdma_addr_register_client(&addr_client);
ret = ib_register_client(&cma_client);
@@ -2880,7 +2896,9 @@
err:
rdma_addr_unregister_client(&addr_client);
+#ifdef IB_SUPPORTED
ib_sa_unregister_client(&sa_client);
+#endif
taskqueue_free(cma_wq);
return ret;
}
@@ -2889,7 +2907,9 @@
{
ib_unregister_client(&cma_client);
rdma_addr_unregister_client(&addr_client);
+#ifdef IB_SUPPORTED
ib_sa_unregister_client(&sa_client);
+#endif
taskqueue_free(cma_wq);
idr_destroy(&sdp_ps);
idr_destroy(&tcp_ps);
@@ -2933,4 +2953,5 @@
MODULE_VERSION(rdma_cma, 1);
MODULE_DEPEND(rdma_cma, rdma_core, 1, 1, 1);
MODULE_DEPEND(rdma_cma, rdma_addr, 1, 1, 1);
+MODULE_DEPEND(rdma_cma, rdma_iwcm, 1, 1, 1);
DECLARE_MODULE(rdma_cma, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
==== //depot/projects/iwarp/sys/contrib/rdma/rdma_device.c#3 (text+ko) ====
@@ -732,6 +732,8 @@
#endif
mtx_init(&device_mutex, "rdma_device mutex", NULL, MTX_DUPOK|MTX_DEF);
+ TAILQ_INIT(&client_list);
+ TAILQ_INIT(&device_list);
ret = ib_cache_setup();
if (ret) {
log(LOG_WARNING, "Couldn't set up InfiniBand P_Key/GID cache\n");
@@ -760,14 +762,13 @@
switch (cmd) {
case MOD_LOAD:
- printf("Loading iwcm.\n");
-
+ printf("Loading rdma_core.\n");
rdma_core_init();
break;
case MOD_QUIESCE:
break;
case MOD_UNLOAD:
- printf("Unloading iwcm.\n");
+ printf("Unloading rdma_core.\n");
rdma_core_cleanup();
break;
case MOD_SHUTDOWN:
==== //depot/projects/iwarp/sys/contrib/rdma/rdma_iwcm.c#3 (text+ko) ====
@@ -1058,14 +1058,14 @@
switch (cmd) {
case MOD_LOAD:
- printf("Loading iwcm.\n");
+ printf("Loading rdma_iwcm.\n");
iw_cm_init();
break;
case MOD_QUIESCE:
break;
case MOD_UNLOAD:
- printf("Unloading iwcm.\n");
+ printf("Unloading rdma_iwcm.\n");
iw_cm_cleanup();
break;
case MOD_SHUTDOWN:
==== //depot/projects/iwarp/sys/modules/rdma/iwcm/Makefile#2 (text+ko) ====
@@ -3,7 +3,7 @@
RDMA= ${.CURDIR}/../../../contrib/rdma
.PATH: ${RDMA}
-KMOD= iw_cm
+KMOD= rdma_iwcm
SRCS= device_if.h bus_if.h pci_if.h pcib_if.h
SRCS+= rdma_iwcm.c
More information about the p4-projects
mailing list