aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorScott Bardone <sbardone@chelsio.com>2006-03-16 19:20:40 -0500
committerJeff Garzik <jeff@garzik.org>2006-03-16 19:20:40 -0500
commit232a347a444e687b5f8cf0f6485704db1c6024d3 (patch)
tree7b538d45346c328cd143675c54d043eda25f618c /drivers
parentc3d7a3a4eb5e8f290d7b1d61430eed1ebedeb936 (diff)
[netdrvr] fix array overflows in Chelsio driver
Adrian Bunk wrote: > The Coverity checker spotted the following two array overflows in > drivers/net/chelsio/sge.c (in both cases, the arrays contain 3 > elements): [snip] This is a bug. The array should contain 2 elements. Here is the fix. Signed-off-by: Scott Bardone <sbardone@chelsio.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/chelsio/sge.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index 2c5b849b7ba4..30ff8ea1a402 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1021,7 +1021,7 @@ static void restart_tx_queues(struct sge *sge)
1021 if (test_and_clear_bit(nd->if_port, 1021 if (test_and_clear_bit(nd->if_port,
1022 &sge->stopped_tx_queues) && 1022 &sge->stopped_tx_queues) &&
1023 netif_running(nd)) { 1023 netif_running(nd)) {
1024 sge->stats.cmdQ_restarted[3]++; 1024 sge->stats.cmdQ_restarted[2]++;
1025 netif_wake_queue(nd); 1025 netif_wake_queue(nd);
1026 } 1026 }
1027 } 1027 }
@@ -1350,7 +1350,7 @@ static int t1_sge_tx(struct sk_buff *skb, struct adapter *adapter,
1350 if (unlikely(credits < count)) { 1350 if (unlikely(credits < count)) {
1351 netif_stop_queue(dev); 1351 netif_stop_queue(dev);
1352 set_bit(dev->if_port, &sge->stopped_tx_queues); 1352 set_bit(dev->if_port, &sge->stopped_tx_queues);
1353 sge->stats.cmdQ_full[3]++; 1353 sge->stats.cmdQ_full[2]++;
1354 spin_unlock(&q->lock); 1354 spin_unlock(&q->lock);
1355 if (!netif_queue_stopped(dev)) 1355 if (!netif_queue_stopped(dev))
1356 CH_ERR("%s: Tx ring full while queue awake!\n", 1356 CH_ERR("%s: Tx ring full while queue awake!\n",
@@ -1358,7 +1358,7 @@ static int t1_sge_tx(struct sk_buff *skb, struct adapter *adapter,
1358 return NETDEV_TX_BUSY; 1358 return NETDEV_TX_BUSY;
1359 } 1359 }
1360 if (unlikely(credits - count < q->stop_thres)) { 1360 if (unlikely(credits - count < q->stop_thres)) {
1361 sge->stats.cmdQ_full[3]++; 1361 sge->stats.cmdQ_full[2]++;
1362 netif_stop_queue(dev); 1362 netif_stop_queue(dev);
1363 set_bit(dev->if_port, &sge->stopped_tx_queues); 1363 set_bit(dev->if_port, &sge->stopped_tx_queues);
1364 } 1364 }