summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2009-04-01 00:38:19 +0400
committerDavid S. Miller <davem@davemloft.net>2009-04-02 11:59:06 +0400
commitd1a8c9e1c8a49afccc85dfeccd731ccbec52e724 (patch)
treea587e56be10cf9f5df8399d9eff926c133fd4f96
parent59c3de8944e04799643e6980c3ea6a30860ad39b (diff)
downloadlinux-d1a8c9e1c8a49afccc85dfeccd731ccbec52e724.tar.xz
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>
-rw-r--r--drivers/net/igb/igb_main.c3
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)
for (i = 0; i < adapter->num_rx_queues; i++)
netif_napi_del(&adapter->rx_ring[i].napi);
+ adapter->num_rx_queues = 0;
+ adapter->num_tx_queues = 0;
+
kfree(adapter->tx_ring);
kfree(adapter->rx_ring);
}