Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Nov 2007 16:13:53 GMT
From:      Steve Wise <swise@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 128979 for review
Message-ID:  <200711121613.lACGDrTi015566@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=128979

Change 128979 by swise@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 
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711121613.lACGDrTi015566>