e1000: add dropped DMA receive enable back in for WoL (Closes: #684618)

svn path=/dists/sid/linux/; revision=19319
This commit is contained in:
Ben Hutchings 2012-08-12 21:27:01 +00:00
parent 04d3f0cd65
commit 5b04cb8ce9
3 changed files with 48 additions and 0 deletions

1
debian/changelog vendored
View File

@ -88,6 +88,7 @@ linux (3.2.27-1) UNRELEASED; urgency=low
* [rt] Update to 3.2.26-rt39:
- time/rt: Fix up leap-second backport for RT changes
* rds: set correct msg_namelen (CVE-2012-3430)
* e1000: add dropped DMA receive enable back in for WoL (Closes: #684618)
-- Ben Hutchings <ben@decadent.org.uk> Tue, 24 Jul 2012 02:20:37 +0100

View File

@ -0,0 +1,46 @@
From: Dean Nelson <dnelson@redhat.com>
Date: Thu, 19 Jan 2012 17:47:24 +0000
Subject: e1000: add dropped DMA receive enable back in for WoL
commit b868179c47e9e8eadcd04c1f3105998e528988a3 upstream.
Commit d5bc77a223b0e9b9dfb002048d2b34a79e7d0b48 broke Wake-on-LAN by
inadvertently dropping the enabling of DMA receives.
Restore the enabling of DMA receives for WoL.
This is applicable to 3.1+ stable trees.
CC: stable@vger.stable.org
Reported-by: Tobias Klausmann <klausman@schwarzvogel.de>
Signed-off-by: Dean Nelson <dnelson@redhat.com>
Tested-by: Tobias Klausmann <klausman@schwarzvogel.de>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 669ca38..d94d64b 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -4740,12 +4740,14 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
e1000_setup_rctl(adapter);
e1000_set_rx_mode(netdev);
+ rctl = er32(RCTL);
+
/* turn on all-multi mode if wake on multicast is enabled */
- if (wufc & E1000_WUFC_MC) {
- rctl = er32(RCTL);
+ if (wufc & E1000_WUFC_MC)
rctl |= E1000_RCTL_MPE;
- ew32(RCTL, rctl);
- }
+
+ /* enable receives in the hardware */
+ ew32(RCTL, rctl | E1000_RCTL_EN);
if (hw->mac_type >= e1000_82540) {
ctrl = er32(CTRL);

View File

@ -388,3 +388,4 @@ features/all/bql/igb-ixgbe-netdev_tx_reset_queue-incorrectly-called-from-tx-init
features/all/bql/skge-add-byte-queue-limit-support.patch
bugfix/all/rds-set-correct-msg_namelen.patch
bugfix/all/e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch