[ofa-general] IPoIB CM (NOSRQ) [Patch V9] revised
Pradeep Satyanarayana
pradeeps at linux.vnet.ibm.com
Wed Oct 10 10:46:51 PDT 2007
Sean Hefty wrote:
>> @@ -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.
>
Yes, you are correct. The no srq case is correct. This impacts the srq
case. I will fix that.
Pradeep
More information about the general
mailing list