diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 5aeb034fa05c..e879e19eb0d6 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |||
@@ -221,7 +221,7 @@ int bnx2x_tx_int(struct bnx2x *bp, struct bnx2x_fp_txdata *txdata) | |||
221 | 221 | ||
222 | if ((netif_tx_queue_stopped(txq)) && | 222 | if ((netif_tx_queue_stopped(txq)) && |
223 | (bp->state == BNX2X_STATE_OPEN) && | 223 | (bp->state == BNX2X_STATE_OPEN) && |
224 | (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4)) | 224 | (bnx2x_tx_avail(bp, txdata) >= MAX_DESC_PER_TX_PKT)) |
225 | netif_tx_wake_queue(txq); | 225 | netif_tx_wake_queue(txq); |
226 | 226 | ||
227 | __netif_tx_unlock(txq); | 227 | __netif_tx_unlock(txq); |
@@ -2948,7 +2948,9 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2948 | txdata->cid, fp_index, txdata_index, txdata, fp); */ | 2948 | txdata->cid, fp_index, txdata_index, txdata, fp); */ |
2949 | 2949 | ||
2950 | if (unlikely(bnx2x_tx_avail(bp, txdata) < | 2950 | if (unlikely(bnx2x_tx_avail(bp, txdata) < |
2951 | (skb_shinfo(skb)->nr_frags + 3))) { | 2951 | skb_shinfo(skb)->nr_frags + |
2952 | BDS_PER_TX_PKT + | ||
2953 | NEXT_CNT_PER_TX_PKT(MAX_BDS_PER_TX_PKT))) { | ||
2952 | bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; | 2954 | bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; |
2953 | netif_tx_stop_queue(txq); | 2955 | netif_tx_stop_queue(txq); |
2954 | BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); | 2956 | BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); |
@@ -3223,7 +3225,7 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3223 | 3225 | ||
3224 | txdata->tx_bd_prod += nbd; | 3226 | txdata->tx_bd_prod += nbd; |
3225 | 3227 | ||
3226 | if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_SKB_FRAGS + 4)) { | 3228 | if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_DESC_PER_TX_PKT)) { |
3227 | netif_tx_stop_queue(txq); | 3229 | netif_tx_stop_queue(txq); |
3228 | 3230 | ||
3229 | /* paired memory barrier is in bnx2x_tx_int(), we have to keep | 3231 | /* paired memory barrier is in bnx2x_tx_int(), we have to keep |
@@ -3232,7 +3234,7 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3232 | smp_mb(); | 3234 | smp_mb(); |
3233 | 3235 | ||
3234 | bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; | 3236 | bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; |
3235 | if (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4) | 3237 | if (bnx2x_tx_avail(bp, txdata) >= MAX_DESC_PER_TX_PKT) |
3236 | netif_tx_wake_queue(txq); | 3238 | netif_tx_wake_queue(txq); |
3237 | } | 3239 | } |
3238 | txdata->tx_pkt++; | 3240 | txdata->tx_pkt++; |