[openib-general] [PATCH] [IWARP BRANCH] - hang on reset from client

Steve Wise swise at opengridcomputing.com
Fri Dec 16 09:00:06 PST 2005


The c2 provider was not caching the iw cm_id in the qp for the passive
side connection.  This causes an OOPS in the interrupt path when a RST
is received on the passive side.


Signed-off-by: Steve Wise <swise at opengridcomputing.com>


Index: c2_provider.c
===================================================================
--- c2_provider.c	(revision 4497)
+++ c2_provider.c	(working copy)
@@ -583,9 +583,13 @@
 static int c2_accept(struct iw_cm_id* cm_id, const void *pdata, u8 pdata_len)
 {
 	int err;
+	struct c2_qp* qp = container_of(cm_id->qp, struct c2_qp, ibqp);
 
 	dprintk("%s:%s:%u\n", __FILE__, __FUNCTION__, __LINE__);
 
+	/* Cache the cm_id in the qp */
+	qp->cm_id = cm_id;
+
 	err = c2_llp_accept(cm_id, pdata, pdata_len);
 
 	return err;




More information about the general mailing list