]> Pileus Git - ~andy/linux/commitdiff
IPoIB: Include return code in trace message for ib_post_send() failures
authorOr Gerlitz <ogerlitz@voltaire.com>
Thu, 4 Mar 2010 13:17:37 +0000 (13:17 +0000)
committerRoland Dreier <rolandd@cisco.com>
Thu, 11 Mar 2010 21:43:11 +0000 (13:43 -0800)
Print the return code of ib_post_send() if it fails to make these
debugging messages more useful.

Signed-off-by: Or Gerlitz <ogerlitz@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_ib.c

index 6e3cc865e369103fbe95c612fe0831ae9fc1ef92..bc658373ad557a05d428df81697b9938e85b6d5e 100644 (file)
@@ -708,6 +708,7 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
        struct ipoib_dev_priv *priv = netdev_priv(dev);
        struct ipoib_cm_tx_buf *tx_req;
        u64 addr;
+       int rc;
 
        if (unlikely(skb->len > tx->mtu)) {
                ipoib_warn(priv, "packet len %d (> %d) too long to send, dropping\n",
@@ -739,9 +740,10 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
 
        tx_req->mapping = addr;
 
-       if (unlikely(post_send(priv, tx, tx->tx_head & (ipoib_sendq_size - 1),
-                              addr, skb->len))) {
-               ipoib_warn(priv, "post_send failed\n");
+       rc = post_send(priv, tx, tx->tx_head & (ipoib_sendq_size - 1),
+                      addr, skb->len);
+       if (unlikely(rc)) {
+               ipoib_warn(priv, "post_send failed, error %d\n", rc);
                ++dev->stats.tx_errors;
                ib_dma_unmap_single(priv->ca, addr, skb->len, DMA_TO_DEVICE);
                dev_kfree_skb_any(skb);
index 8c91d9f37ada63687ff2423812a1a3b2e7185699..5df40b128f81b1b13f8cd9d30133a4ea43148875 100644 (file)
@@ -529,7 +529,7 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
 {
        struct ipoib_dev_priv *priv = netdev_priv(dev);
        struct ipoib_tx_buf *tx_req;
-       int hlen;
+       int hlen, rc;
        void *phead;
 
        if (skb_is_gso(skb)) {
@@ -585,9 +585,10 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
                netif_stop_queue(dev);
        }
 
-       if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),
-                              address->ah, qpn, tx_req, phead, hlen))) {
-               ipoib_warn(priv, "post_send failed\n");
+       rc = post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),
+                      address->ah, qpn, tx_req, phead, hlen);
+       if (unlikely(rc)) {
+               ipoib_warn(priv, "post_send failed, error %d\n", rc);
                ++dev->stats.tx_errors;
                --priv->tx_outstanding;
                ipoib_dma_unmap_tx(priv->ca, tx_req);