summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-03-03 16:59:44 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-03 16:59:44 -0800
commitef402c9b319dbff93edfc367746463c251f10c96 (patch)
tree88b838d424082c6cf5c52e16c5fa2a9fb69af10c
parent197307d3e6604efaf6f6a15561e29cc1a7f20c4c (diff)
downloadlongterm-queue-2.6.33-ef402c9b319dbff93edfc367746463c251f10c96.tar.gz
.33
-rw-r--r--queue-2.6.33/dccp-fix-oops-on-reset-after-close.patch73
-rw-r--r--queue-2.6.33/e1000e-disable-broken-phy-wakeup-for-ich10-loms-use-mac-wakeup-instead.patch38
-rw-r--r--queue-2.6.33/p54usb-add-senao-nub-350-usbid.patch28
-rw-r--r--queue-2.6.33/r8169-disable-aspm.patch50
-rw-r--r--queue-2.6.33/series4
5 files changed, 193 insertions, 0 deletions
diff --git a/queue-2.6.33/dccp-fix-oops-on-reset-after-close.patch b/queue-2.6.33/dccp-fix-oops-on-reset-after-close.patch
new file mode 100644
index 0000000..ac2c2fa
--- /dev/null
+++ b/queue-2.6.33/dccp-fix-oops-on-reset-after-close.patch
@@ -0,0 +1,73 @@
+From 720dc34bbbe9493c7bd48b2243058b4e447a929d Mon Sep 17 00:00:00 2001
+From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+Date: Tue, 1 Mar 2011 23:02:07 -0800
+Subject: dccp: fix oops on Reset after close
+
+From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+
+commit 720dc34bbbe9493c7bd48b2243058b4e447a929d upstream.
+
+This fixes a bug in the order of dccp_rcv_state_process() that still permitted
+reception even after closing the socket. A Reset after close thus causes a NULL
+pointer dereference by not preventing operations on an already torn-down socket.
+
+ dccp_v4_do_rcv()
+ |
+ | state other than OPEN
+ v
+ dccp_rcv_state_process()
+ |
+ | DCCP_PKT_RESET
+ v
+ dccp_rcv_reset()
+ |
+ v
+ dccp_time_wait()
+
+ WARNING: at net/ipv4/inet_timewait_sock.c:141 __inet_twsk_hashdance+0x48/0x128()
+ Modules linked in: arc4 ecb carl9170 rt2870sta(C) mac80211 r8712u(C) crc_ccitt ah
+ [<c0038850>] (unwind_backtrace+0x0/0xec) from [<c0055364>] (warn_slowpath_common)
+ [<c0055364>] (warn_slowpath_common+0x4c/0x64) from [<c0055398>] (warn_slowpath_n)
+ [<c0055398>] (warn_slowpath_null+0x1c/0x24) from [<c02b72d0>] (__inet_twsk_hashd)
+ [<c02b72d0>] (__inet_twsk_hashdance+0x48/0x128) from [<c031caa0>] (dccp_time_wai)
+ [<c031caa0>] (dccp_time_wait+0x40/0xc8) from [<c031c15c>] (dccp_rcv_state_proces)
+ [<c031c15c>] (dccp_rcv_state_process+0x120/0x538) from [<c032609c>] (dccp_v4_do_)
+ [<c032609c>] (dccp_v4_do_rcv+0x11c/0x14c) from [<c0286594>] (release_sock+0xac/0)
+ [<c0286594>] (release_sock+0xac/0x110) from [<c031fd34>] (dccp_close+0x28c/0x380)
+ [<c031fd34>] (dccp_close+0x28c/0x380) from [<c02d9a78>] (inet_release+0x64/0x70)
+
+The fix is by testing the socket state first. Receiving a packet in Closed state
+now also produces the required "No connection" Reset reply of RFC 4340, 8.3.1.
+
+Reported-and-tested-by: Johan Hovold <jhovold@gmail.com>
+Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/dccp/input.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+--- a/net/dccp/input.c
++++ b/net/dccp/input.c
+@@ -616,6 +616,9 @@ int dccp_rcv_state_process(struct sock *
+ /* Caller (dccp_v4_do_rcv) will send Reset */
+ dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
+ return 1;
++ } else if (sk->sk_state == DCCP_CLOSED) {
++ dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
++ return 1;
+ }
+
+ if (sk->sk_state != DCCP_REQUESTING && sk->sk_state != DCCP_RESPOND) {
+@@ -678,10 +681,6 @@ int dccp_rcv_state_process(struct sock *
+ }
+
+ switch (sk->sk_state) {
+- case DCCP_CLOSED:
+- dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION;
+- return 1;
+-
+ case DCCP_REQUESTING:
+ queued = dccp_rcv_request_sent_state_process(sk, skb, dh, len);
+ if (queued >= 0)
diff --git a/queue-2.6.33/e1000e-disable-broken-phy-wakeup-for-ich10-loms-use-mac-wakeup-instead.patch b/queue-2.6.33/e1000e-disable-broken-phy-wakeup-for-ich10-loms-use-mac-wakeup-instead.patch
new file mode 100644
index 0000000..e997c51
--- /dev/null
+++ b/queue-2.6.33/e1000e-disable-broken-phy-wakeup-for-ich10-loms-use-mac-wakeup-instead.patch
@@ -0,0 +1,38 @@
+From 4def99bbfd46e05c5e03b5b282cb4ee30e27ff19 Mon Sep 17 00:00:00 2001
+From: Bruce Allan <bruce.w.allan@intel.com>
+Date: Wed, 2 Feb 2011 09:30:36 +0000
+Subject: e1000e: disable broken PHY wakeup for ICH10 LOMs, use MAC wakeup instead
+
+From: Bruce Allan <bruce.w.allan@intel.com>
+
+commit 4def99bbfd46e05c5e03b5b282cb4ee30e27ff19 upstream.
+
+When support for 82577/82578 was added[1] in 2.6.31, PHY wakeup was in-
+advertently enabled (even though it does not function properly) on ICH10
+LOMs. This patch makes it so that the ICH10 LOMs use MAC wakeup instead
+as was done with the initial support for those devices (i.e. 82567LM-3,
+82567LF-3 and 82567V-4).
+
+[1] commit a4f58f5455ba0efda36fb33c37074922d1527a10
+
+Reported-by: Aurelien Jarno <aurelien@aurel32.net>
+Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/e1000e/netdev.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/e1000e/netdev.c
++++ b/drivers/net/e1000e/netdev.c
+@@ -5182,7 +5182,8 @@ static int __devinit e1000_probe(struct
+ /* APME bit in EEPROM is mapped to WUC.APME */
+ eeprom_data = er32(WUC);
+ eeprom_apme_mask = E1000_WUC_APME;
+- if (eeprom_data & E1000_WUC_PHY_WAKE)
++ if ((hw->mac.type > e1000_ich10lan) &&
++ (eeprom_data & E1000_WUC_PHY_WAKE))
+ adapter->flags2 |= FLAG2_HAS_PHY_WAKEUP;
+ } else if (adapter->flags & FLAG_APME_IN_CTRL3) {
+ if (adapter->flags & FLAG_APME_CHECK_PORT_B &&
diff --git a/queue-2.6.33/p54usb-add-senao-nub-350-usbid.patch b/queue-2.6.33/p54usb-add-senao-nub-350-usbid.patch
new file mode 100644
index 0000000..7be6aa1
--- /dev/null
+++ b/queue-2.6.33/p54usb-add-senao-nub-350-usbid.patch
@@ -0,0 +1,28 @@
+From 2b799a6b25bb9f9fbc478782cd9503e8066ab618 Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@googlemail.com>
+Date: Sat, 26 Feb 2011 12:58:06 +0100
+Subject: p54usb: add Senao NUB-350 usbid
+
+From: Christian Lamparter <chunkeey@googlemail.com>
+
+commit 2b799a6b25bb9f9fbc478782cd9503e8066ab618 upstream.
+
+Reported-by: Mark Davis
+Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/p54/p54usb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/p54/p54usb.c
++++ b/drivers/net/wireless/p54/p54usb.c
+@@ -95,6 +95,7 @@ static struct usb_device_id p54u_table[]
+ {USB_DEVICE(0x1413, 0x5400)}, /* Telsey 802.11g USB2.0 Adapter */
+ {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */
+ {USB_DEVICE(0x1668, 0x1050)}, /* Actiontec 802UIG-1 */
++ {USB_DEVICE(0x1740, 0x1000)}, /* Senao NUB-350 */
+ {USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */
+ {USB_DEVICE(0x2001, 0x3705)}, /* D-Link DWL-G120 rev C1 */
+ {USB_DEVICE(0x413c, 0x5513)}, /* Dell WLA3310 USB Wireless Adapter */
diff --git a/queue-2.6.33/r8169-disable-aspm.patch b/queue-2.6.33/r8169-disable-aspm.patch
new file mode 100644
index 0000000..e1f76a2
--- /dev/null
+++ b/queue-2.6.33/r8169-disable-aspm.patch
@@ -0,0 +1,50 @@
+From ba04c7c93bbcb48ce880cf75b6e9dffcd79d4c7b Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Tue, 22 Feb 2011 02:00:11 +0000
+Subject: r8169: disable ASPM
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit ba04c7c93bbcb48ce880cf75b6e9dffcd79d4c7b upstream.
+
+For some time is known that ASPM is causing troubles on r8169, i.e. make
+device randomly stop working without any errors in dmesg.
+
+Currently Tomi Leppikangas reports that system with r8169 device hangs
+with MCE errors when ASPM is enabled:
+https://bugzilla.redhat.com/show_bug.cgi?id=642861#c4
+
+Lets disable ASPM for r8169 devices at all, to avoid problems with
+r8169 PCIe devices at least for some users.
+
+Reported-by: Tomi Leppikangas <tomi.leppikangas@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/r8169.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -23,6 +23,7 @@
+ #include <linux/tcp.h>
+ #include <linux/init.h>
+ #include <linux/dma-mapping.h>
++#include <linux/pci-aspm.h>
+
+ #include <asm/system.h>
+ #include <asm/io.h>
+@@ -3030,6 +3031,11 @@ rtl8169_init_one(struct pci_dev *pdev, c
+ mii->reg_num_mask = 0x1f;
+ mii->supports_gmii = !!(cfg->features & RTL_FEATURE_GMII);
+
++ /* disable ASPM completely as that cause random device stop working
++ * problems as well as full system hangs for some PCIe devices users */
++ pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 |
++ PCIE_LINK_STATE_CLKPM);
++
+ /* enable device (incl. PCI PM wakeup and hotplug setup) */
+ rc = pci_enable_device(pdev);
+ if (rc < 0) {
diff --git a/queue-2.6.33/series b/queue-2.6.33/series
index d3dfc15..4de21cd 100644
--- a/queue-2.6.33/series
+++ b/queue-2.6.33/series
@@ -401,3 +401,7 @@ ext2-fix-link-count-corruption-under-heavy-link-rename-load.patch
virtio-set-pci-bus-master-enable-bit.patch
e1000e-82579-phy-incorrectly-identified-during-init.patch
x25-do-not-reference-freed-memory.patch
+p54usb-add-senao-nub-350-usbid.patch
+dccp-fix-oops-on-reset-after-close.patch
+e1000e-disable-broken-phy-wakeup-for-ich10-loms-use-mac-wakeup-instead.patch
+r8169-disable-aspm.patch