diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2009-03-31 16:38:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-02 03:59:06 -0400 |
commit | d1a8c9e1c8a49afccc85dfeccd731ccbec52e724 (patch) | |
tree | a587e56be10cf9f5df8399d9eff926c133fd4f96 /drivers/net/igb/igb_main.c | |
parent | 59c3de8944e04799643e6980c3ea6a30860ad39b (diff) |
igb: set num_rx/tx_queues to 0 when queues are freed
An issue was seen on suspend in which the system reported a page fault. This
was due to the new reg_idx code being called after the queues were freed.
This update prevents any for loops from going through the queues by setting
the number of queues to 0 when they are freed.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index be02045a5078..10b095d69b43 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -420,6 +420,9 @@ static void igb_free_queues(struct igb_adapter *adapter) | |||
420 | for (i = 0; i < adapter->num_rx_queues; i++) | 420 | for (i = 0; i < adapter->num_rx_queues; i++) |
421 | netif_napi_del(&adapter->rx_ring[i].napi); | 421 | netif_napi_del(&adapter->rx_ring[i].napi); |
422 | 422 | ||
423 | adapter->num_rx_queues = 0; | ||
424 | adapter->num_tx_queues = 0; | ||
425 | |||
423 | kfree(adapter->tx_ring); | 426 | kfree(adapter->tx_ring); |
424 | kfree(adapter->rx_ring); | 427 | kfree(adapter->rx_ring); |
425 | } | 428 | } |