diff mbox

[net] r8169: enforce RX_MULTI_EN on rtl8168ep/8111ep chips

Message ID 1438719103-22067-1-git-send-email-ivecera@redhat.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Ivan Vecera Aug. 4, 2015, 8:11 p.m. UTC
Enforcing this flag in RxConfig for the mentioned chips fixes netdev
watchdog issues prepended with AMD IOMMU message(s) like:
AMD-Vi: Event logged [IO_PAGE_FAULT device=01:00.0 domain=0x001d address=0x0000000000003000 flags=0x0050]

Note that this flag is also set in Realtek's own driver for these chips.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Tested-by: Alexander Lindqvist <alexander@bitspace.se>
---
 drivers/net/ethernet/realtek/r8169.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Francois Romieu Aug. 4, 2015, 8:59 p.m. UTC | #1
Ivan Vecera <ivecera@redhat.com> :
> Enforcing this flag in RxConfig for the mentioned chips fixes netdev
> watchdog issues prepended with AMD IOMMU message(s) like:
> AMD-Vi: Event logged [IO_PAGE_FAULT device=01:00.0 domain=0x001d address=0x0000000000003000 flags=0x0050]

FWIW:
Acked-by: Francois Romieu <romieu@fr.zoreil.com>

Adding a #bz reference would be pointless:

commit 7a9810e7bd99c922d9cedf64dbaa5ef6be412295
Author: Michel Dänzer <michel@daenzer.net>
Date:   Thu Jul 17 12:55:40 2014 +0900

    r8169: Enable RX_MULTI_EN for RTL_GIGA_MAC_VER_40
    
    The ethernet port on my ASUS A88X Pro mainboard stopped working
    several times a day, with messages like these in dmesg:
    
    AMD-Vi: Event logged [IO_PAGE_FAULT device=05:00.0 domain=0x001e address=0x0
000000000003000 flags=0x0050]
[...]
commit 3ced8c955e74d319f3e3997f7169c79d524dfd06
Author: françois romieu <romieu@fr.zoreil.com>
Date:   Sun Sep 8 01:15:35 2013 +0200

    r8169: enforce RX_MULTI_EN for the 8168f.
    
    Same narrative as eb2dc35d99028b698cdedba4f5522bc43e576bd2 ("r8169: RxConfig
    hack for the 8168evl.") regarding AMD IOMMU errors.
    
    RTL_GIGA_MAC_VER_36 - 8168f as well - has not been reported to behave the
    same.
[...]
commit eb2dc35d99028b698cdedba4f5522bc43e576bd2
Author: françois romieu <romieu@fr.zoreil.com>
Date:   Wed Jun 20 12:09:18 2012 +0000

    r8169: RxConfig hack for the 8168evl.
    
    The 8168evl (RTL_GIGA_MAC_VER_34) based Gigabyte GA-990FXA motherboards
    are very prone to NETDEV watchdog problems without this change. See
    https://bugzilla.kernel.org/show_bug.cgi?id=42899 for instance.
David Miller Aug. 7, 2015, 7:01 a.m. UTC | #2
From: Ivan Vecera <ivecera@redhat.com>
Date: Tue,  4 Aug 2015 22:11:43 +0200

> Enforcing this flag in RxConfig for the mentioned chips fixes netdev
> watchdog issues prepended with AMD IOMMU message(s) like:
> AMD-Vi: Event logged [IO_PAGE_FAULT device=01:00.0 domain=0x001d address=0x0000000000003000 flags=0x0050]
> 
> Note that this flag is also set in Realtek's own driver for these chips.
> 
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
> Tested-by: Alexander Lindqvist <alexander@bitspace.se>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 3df51fa..f790f61 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -4875,10 +4875,12 @@  static void rtl_init_rxcfg(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_46:
 	case RTL_GIGA_MAC_VER_47:
 	case RTL_GIGA_MAC_VER_48:
+		RTL_W32(RxConfig, RX128_INT_EN | RX_DMA_BURST | RX_EARLY_OFF);
+		break;
 	case RTL_GIGA_MAC_VER_49:
 	case RTL_GIGA_MAC_VER_50:
 	case RTL_GIGA_MAC_VER_51:
-		RTL_W32(RxConfig, RX128_INT_EN | RX_DMA_BURST | RX_EARLY_OFF);
+		RTL_W32(RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST | RX_EARLY_OFF);
 		break;
 	default:
 		RTL_W32(RxConfig, RX128_INT_EN | RX_DMA_BURST);