| 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) { |