From 88f14359fff9e118c7205f0d8ef339d752d76d83 Mon Sep 17 00:00:00 2001 From: Tal Alon Date: Wed, 26 Jun 2013 11:12:51 +0300 Subject: [PATCH] ib/ipoib: ipoib_cm_rep_handler lock skb queue while dequeue before xmit Signed-off-by: Tal Alon (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index cf7d15323fee..316c58fb4a5a 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -1008,7 +1008,6 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even if (p->neigh) while ((skb = __skb_dequeue(&p->neigh->queue))) __skb_queue_tail(&skqueue, skb); - spin_unlock_irq(&priv->lock); while ((skb = __skb_dequeue(&skqueue))) { skb->dev = p->dev; @@ -1018,6 +1017,8 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even " packet, ret:%d\n", __func__, ret); } + spin_unlock_irq(&priv->lock); + ret = ib_send_cm_rtu(cm_id, NULL, 0); if (ret) { ipoib_warn(priv, "failed to send RTU: %d\n", ret); -- 2.50.1