[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