[ofa-general] IPOIB CM (NOSRQ) extension [PATCH V2] patch resubmit

Pradeep Satyanarayana pradeeps at linux.vnet.ibm.com
Wed Jul 18 10:26:12 PDT 2007


Resubmitting the 2nd version of the patch. Changed the settings
in my mail client, so I expect there should be no line wraps. Also 
white space mangling rectified.

Signed-off-by: Pradeep Satyanarayana <pradeeps at linux.vnet.ibm.com>
---

--- c/linux-2.6.22/drivers/infiniband/ulp/ipoib/ipoib_cm.c	2007-07-17 21:08:38.000000000 -0400
+++ b/linux-2.6.22/drivers/infiniband/ulp/ipoib/ipoib_cm.c	2007-07-18 12:49:06.000000000 -0400
@@ -1372,8 +1372,18 @@ static int ipoib_cm_tx_handler(struct ib
 			ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED,
 				       NULL, 0, NULL, 0);
 		break;
-	case IB_CM_REQ_ERROR:
 	case IB_CM_REJ_RECEIVED:
+		ipoib_warn(priv, "REJ received\n");
+		spin_lock(&priv->lock);
+		neigh = tx->neigh;
+		spin_unlock(&priv->lock);
+
+		if ((neigh) && (event->param.rej_rcvd.reason ==
+		   IB_CM_REJ_NO_QP)) {
+			clear_bit(IPOIB_FLAG_OPER_UP, &neigh->cm->flags);
+			break;
+		}
+	case IB_CM_REQ_ERROR:
 	case IB_CM_TIMEWAIT_EXIT:
 		ipoib_dbg(priv, "CM error %d.\n", event->event);
 		spin_lock_irq(&priv->tx_lock);
--- c/linux-2.6.22/drivers/infiniband/ulp/ipoib/ipoib_main.c	2007-05-30 14:56:25.000000000 -0400
+++ b/linux-2.6.22/drivers/infiniband/ulp/ipoib/ipoib_main.c	2007-07-18 12:50:05.000000000 -0400
@@ -679,11 +679,10 @@ static int ipoib_start_xmit(struct sk_bu
 
 		neigh = *to_ipoib_neigh(skb->dst->neighbour);
 
-		if (ipoib_cm_get(neigh)) {
-			if (ipoib_cm_up(neigh)) {
+		if (ipoib_cm_get(neigh) &&  ipoib_cm_up(neigh) &&
+			test_bit(IPOIB_FLAG_OPER_UP, &neigh->cm->flags)) {
 				ipoib_cm_send(dev, skb, ipoib_cm_get(neigh));
 				goto out;
-			}
 		} else if (neigh->ah) {
 			if (unlikely(memcmp(&neigh->dgid.raw,
 					    skb->dst->neighbour->ha + 4,




More information about the general mailing list