41 lines
1.4 KiB
Diff
41 lines
1.4 KiB
Diff
From: Dmitry Kravkov <dmitry@broadcom.com>
|
|
Date: Tue, 6 Dec 2011 02:05:12 +0000
|
|
Subject: bnx2x: fix crash while ethtool -t
|
|
|
|
commit 73dbb5e1627a35c8ab81f3813c096e9e7aaabaaa upstream.
|
|
|
|
commit 2df1a70aaf70e8dff11b89b938a5f317556ee640 "bnx2x: Support
|
|
for byte queue limits" has introduced an asymmetry in usage of
|
|
netdev_tx_completed_queue and netdev_tx_sent_queue. Missing
|
|
call to netdev_tx_sent_queue causes the crash during ethtool -t.
|
|
|
|
The patch adds the missing call.
|
|
|
|
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
|
|
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
[bwh: Backported to 3.2: adjust context]
|
|
---
|
|
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
|
|
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
|
|
@@ -1740,6 +1740,7 @@
|
|
struct sw_rx_bd *rx_buf;
|
|
u16 len;
|
|
int rc = -ENODEV;
|
|
+ struct netdev_queue *txq = netdev_get_tx_queue(bp->dev, txdata->txq_index);
|
|
|
|
/* check the loopback mode */
|
|
switch (loopback_mode) {
|
|
@@ -1784,6 +1785,8 @@
|
|
tx_start_idx = le16_to_cpu(*txdata->tx_cons_sb);
|
|
rx_start_idx = le16_to_cpu(*fp_rx->rx_cons_sb);
|
|
|
|
+ netdev_tx_sent_queue(txq, skb->len);
|
|
+
|
|
pkt_prod = txdata->tx_pkt_prod++;
|
|
tx_buf = &txdata->tx_buf_ring[TX_BD(pkt_prod)];
|
|
tx_buf->first_bd = txdata->tx_bd_prod;
|