From 5d69ccb0298c1ef8d0f05d0c1e391c916f2dc60f Mon Sep 17 00:00:00 2001 From: Dmitry Kravkov Date: Tue, 16 Oct 2012 01:28:27 +0000 Subject: [PATCH] --- yaml --- r: 334433 b: refs/heads/master c: 2384d6aa079de7c16c7877220d3cd4c6f4f50767 h: refs/heads/master i: 334431: 4dcb8e04ea32c2933d4ee799ebd6b99859c8ea99 v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 10 +++++++--- trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index ea33c9a2e935..7c281dc30621 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2efaf5ff7fa2d45debc27cd9b3d235df61d641fb +refs/heads/master: 2384d6aa079de7c16c7877220d3cd4c6f4f50767 diff --git a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 24220992413f..4833b6a9031c 100644 --- a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -2957,9 +2957,13 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) skb_shinfo(skb)->nr_frags + BDS_PER_TX_PKT + NEXT_CNT_PER_TX_PKT(MAX_BDS_PER_TX_PKT))) { - bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; - netif_tx_stop_queue(txq); - BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); + /* Handle special storage cases separately */ + if (txdata->tx_ring_size != 0) { + BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); + bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++; + netif_tx_stop_queue(txq); + } + return NETDEV_TX_BUSY; } diff --git a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c index 71971a161bd1..614981c02264 100644 --- a/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +++ b/trunk/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c @@ -126,7 +126,7 @@ static inline int bnx2x_exe_queue_add(struct bnx2x *bp, /* Check if this request is ok */ rc = o->validate(bp, o->owner, elem); if (rc) { - BNX2X_ERR("Preamble failed: %d\n", rc); + DP(BNX2X_MSG_SP, "Preamble failed: %d\n", rc); goto free_and_exit; } }