[openib-general] FW: [PATCH fixed] [RFC] IB/srp: enable multiple connections to the same target

Roland Dreier rdreier at cisco.com
Mon Oct 9 10:16:54 PDT 2006


 > I am also having new problems configuring SRP with OFED 1.1 rc7, I have
 > asked Roland to take a look on my test networks.

The problem is that Cisco SRP targets insist on the initiator ID being
8 bytes of 0 followed by the initiator node GUID.  The source says

	/*
	 * Topspin/Cisco SRP targets will reject our login unless we
	 * zero out the first 8 bytes of our initiator port ID.  The
	 * second 8 bytes must be our local node GUID, but we always
	 * use that anyway.
	 */

but with the change to allow userspace-specified initiator IDs, we
don't use the node GUID anyway.

I added the following on top of the "multiple connections" patch that
was queued for 2.6.19.  Can this be put into OFED as well?

 - R.

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 3bf0c5b..4b09147 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -359,15 +359,16 @@ static int srp_send_req(struct srp_targe
 
 	/*
 	 * Topspin/Cisco SRP targets will reject our login unless we
-	 * zero out the first 8 bytes of our initiator port ID.  The
-	 * second 8 bytes must be our local node GUID, but we always
-	 * use that anyway.
+	 * zero out the first 8 bytes of our initiator port ID and set
+	 * the second 8 bytes to the local node GUID.
 	 */
 	if (topspin_workarounds && !memcmp(&target->ioc_guid, topspin_oui, 3)) {
 		printk(KERN_DEBUG PFX "Topspin/Cisco initiator port ID workaround "
 		       "activated for target GUID %016llx\n",
 		       (unsigned long long) be64_to_cpu(target->ioc_guid));
 		memset(req->priv.initiator_port_id, 0, 8);
+		memcpy(req->priv.initiator_port_id + 8,
+		       &target->srp_host->dev->dev->node_guid, 8);
 	}
 
 	status = ib_send_cm_req(target->cm_id, &req->param);




More information about the general mailing list