From d4d674470e733919c84267f8378255a262d7cd2b Mon Sep 17 00:00:00 2001 From: Erez Shitrit Date: Thu, 29 Nov 2012 13:06:37 +0200 Subject: [PATCH] ib/ipoib: add detailed error message on dev_queue_xmit whenever calling to requeue packet via __skb_dequeue, add the return code from the dev_queue_xmit function. Signed-off-by: Erez Shitrit (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 7 ++++--- drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 +++++--- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 +++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 5163111abac7..9168db77404a 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -1006,9 +1006,10 @@ static int ipoib_cm_rep_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even while ((skb = __skb_dequeue(&skqueue))) { skb->dev = p->dev; - if (dev_queue_xmit(skb)) - ipoib_warn(priv, "dev_queue_xmit failed " - "to requeue packet\n"); + ret = dev_queue_xmit(skb); + if (ret) + ipoib_warn(priv, "%s:dev_queue_xmit failed to requeue" + " packet, ret:%d\n", __func__, ret); } ret = ib_send_cm_rtu(cm_id, NULL, 0); diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index b63a30c7c536..920bf1cab54e 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -443,6 +443,7 @@ static void path_rec_completion(int status, struct sk_buff_head skqueue; struct sk_buff *skb; unsigned long flags; + int ret; if (!status) ipoib_dbg(priv, "PathRec LID 0x%04x for GID %pI6\n", @@ -519,9 +520,10 @@ static void path_rec_completion(int status, while ((skb = __skb_dequeue(&skqueue))) { skb->dev = dev; - if (dev_queue_xmit(skb)) - ipoib_warn(priv, "dev_queue_xmit failed " - "to requeue packet\n"); + ret = dev_queue_xmit(skb); + if (ret) + ipoib_warn(priv, "%s: dev_queue_xmit failed " + "to requeue packet, ret:%d\n", __func__, ret); } } diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 0d23e0568deb..a5974bc99050 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -213,6 +213,7 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, struct ipoib_ah *ah; int ret; int set_qkey = 0; + int skb_ret; mcast->mcmember = *mcmember; @@ -311,8 +312,10 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, netif_tx_unlock_bh(dev); skb->dev = dev; - if (dev_queue_xmit(skb)) - ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n"); + skb_ret = dev_queue_xmit(skb); + if (skb_ret) + ipoib_warn(priv, "%s:dev_queue_xmit failed to requeue " + "packet, ret:%d\n", __func__, skb_ret); netif_tx_lock_bh(dev); } -- 2.50.1