|
@@ -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);
|