diff options
author | Andy Gospodarek <andy@greyhouse.net> | 2010-06-29 14:28:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-30 02:12:39 -0400 |
commit | fa37813401ff52d78591c262d6542e4d5d935584 (patch) | |
tree | ad9f85a1a60289f270d04d4982588bd439e1508f | |
parent | bf988435bd5b53529f4408a8efb1f433f6ddfda9 (diff) |
ixgbe: fix panic when shutting down system with WoL enabled
This patch added to 2.6.34:
commit 5f6c01819979afbfec7e0b15fe52371b8eed87e8
Author: Jesse Brandeburg <jesse.brandeburg@intel.com>
Date: Wed Apr 14 16:04:23 2010 -0700
ixgbe: fix bug with vlan strip in promsic mode
among other things added a function called ixgbe_vlan_filter_enable.
This new function wants to access and set some rx_ring parameters, but
adapter->rx_ring has already been freed. This simply moves the free
until after the access and makes __ixgbe_shutdown look more like
ixgbe_remove.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Emil Tantilov <emil.s.tantilov@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/ixgbe/ixgbe_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index ce30c62a97f7..e237748995c1 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -5195,7 +5195,6 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake) | |||
5195 | ixgbe_free_all_tx_resources(adapter); | 5195 | ixgbe_free_all_tx_resources(adapter); |
5196 | ixgbe_free_all_rx_resources(adapter); | 5196 | ixgbe_free_all_rx_resources(adapter); |
5197 | } | 5197 | } |
5198 | ixgbe_clear_interrupt_scheme(adapter); | ||
5199 | 5198 | ||
5200 | #ifdef CONFIG_PM | 5199 | #ifdef CONFIG_PM |
5201 | retval = pci_save_state(pdev); | 5200 | retval = pci_save_state(pdev); |
@@ -5230,6 +5229,8 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake) | |||
5230 | 5229 | ||
5231 | *enable_wake = !!wufc; | 5230 | *enable_wake = !!wufc; |
5232 | 5231 | ||
5232 | ixgbe_clear_interrupt_scheme(adapter); | ||
5233 | |||
5233 | ixgbe_release_hw_control(adapter); | 5234 | ixgbe_release_hw_control(adapter); |
5234 | 5235 | ||
5235 | pci_disable_device(pdev); | 5236 | pci_disable_device(pdev); |