From 5b04cb8ce9b2b4f4c341bc9fc6065000a6272177 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 12 Aug 2012 21:27:01 +0000 Subject: [PATCH] e1000: add dropped DMA receive enable back in for WoL (Closes: #684618) svn path=/dists/sid/linux/; revision=19319 --- debian/changelog | 1 + ...d-DMA-receive-enable-back-in-for-WoL.patch | 46 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 48 insertions(+) create mode 100644 debian/patches/bugfix/all/e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch diff --git a/debian/changelog b/debian/changelog index 9cb1d1797..7b0dbaeea 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Tue, 24 Jul 2012 02:20:37 +0100 diff --git a/debian/patches/bugfix/all/e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch b/debian/patches/bugfix/all/e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch new file mode 100644 index 000000000..8098612da --- /dev/null +++ b/debian/patches/bugfix/all/e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch @@ -0,0 +1,46 @@ +From: Dean Nelson +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 +Signed-off-by: Dean Nelson +Tested-by: Tobias Klausmann +Tested-by: Aaron Brown +Signed-off-by: Jeff Kirsher +--- + 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); diff --git a/debian/patches/series b/debian/patches/series index b595c3e25..1d6ef6bd1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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