diff options
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_ib.c')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index 8c91d9f37ada..5df40b128f81 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c | |||
@@ -529,7 +529,7 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb, | |||
529 | { | 529 | { |
530 | struct ipoib_dev_priv *priv = netdev_priv(dev); | 530 | struct ipoib_dev_priv *priv = netdev_priv(dev); |
531 | struct ipoib_tx_buf *tx_req; | 531 | struct ipoib_tx_buf *tx_req; |
532 | int hlen; | 532 | int hlen, rc; |
533 | void *phead; | 533 | void *phead; |
534 | 534 | ||
535 | if (skb_is_gso(skb)) { | 535 | if (skb_is_gso(skb)) { |
@@ -585,9 +585,10 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb, | |||
585 | netif_stop_queue(dev); | 585 | netif_stop_queue(dev); |
586 | } | 586 | } |
587 | 587 | ||
588 | if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1), | 588 | rc = post_send(priv, priv->tx_head & (ipoib_sendq_size - 1), |
589 | address->ah, qpn, tx_req, phead, hlen))) { | 589 | address->ah, qpn, tx_req, phead, hlen); |
590 | ipoib_warn(priv, "post_send failed\n"); | 590 | if (unlikely(rc)) { |
591 | ipoib_warn(priv, "post_send failed, error %d\n", rc); | ||
591 | ++dev->stats.tx_errors; | 592 | ++dev->stats.tx_errors; |
592 | --priv->tx_outstanding; | 593 | --priv->tx_outstanding; |
593 | ipoib_dma_unmap_tx(priv->ca, tx_req); | 594 | ipoib_dma_unmap_tx(priv->ca, tx_req); |