>@@ -313,19 +483,18 @@ static int ipoib_cm_req_handler(struct i
>       }
>
>       psn = random32() & 0xffffff;
>-      ret = ipoib_cm_modify_rx_qp(dev, cm_id, p->qp, psn);
>-      if (ret)
>-              goto err_modify;
>-
>-      spin_lock_irq(&priv->lock);
>-      queue_delayed_work(ipoib_workqueue,
>-                         &priv->cm.stale_task, IPOIB_CM_RX_DELAY);
>-      /* Add this entry to passive ids list head, but do not re-add it
>-       * if IB_EVENT_QP_LAST_WQE_REACHED has moved it to flush list. */
>-      p->jiffies = jiffies;
>-      if (p->state == IPOIB_CM_RX_LIVE)
>-              list_move(&p->list, &priv->cm.passive_ids);
>-      spin_unlock_irq(&priv->lock);
>+      if (!priv->cm.srq) {
>+              ret = allocate_and_post_rbuf_nosrq(cm_id, p, psn);
>+              if (ret)
>+                      goto err_modify;
>+      } else {
>+              p->rx_ring = NULL;
>+              ret = ipoib_cm_modify_rx_qp(dev, cm_id, p->qp, psn);
>+              if (ret)
>+                      goto err_modify;
>+              p->state = IPOIB_CM_RX_LIVE;
>+              init_context_and_add_list(cm_id, p, priv);

I missed this impact in my previous review.  Removing the locking from
init_context_and_add_list() means that we need a lock here.

- Sean
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to