Hi Bjorn,
        Thanks for your help to finalize the patchset.
        There's another suspicious issue in r8169.c, which directly writes 
PCI_EXP_DEVCTL_NOSNOOP_EN
to PCI_EXP_DEVCTL. I feel it should preserve other bits when setting the 
NOSNOOP flag.
        Regards!
        Gerry

diff --git a/drivers/net/ethernet/realtek/r8169.c 
b/drivers/net/ethernet/realtek/r8169.c
index b47d5b3..4104968 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5405,14 +5384,9 @@ static void rtl_hw_start_8101(struct net_device *dev)
                tp->event_slow &= ~RxFIFOOver;

        if (tp->mac_version == RTL_GIGA_MAC_VER_13 ||
-           tp->mac_version == RTL_GIGA_MAC_VER_16) {
-               int cap = pci_pcie_cap(pdev);
-
-               if (cap) {
-                       pci_write_config_word(pdev, cap + PCI_EXP_DEVCTL,
-                                             PCI_EXP_DEVCTL_NOSNOOP_EN);
-               }
-       }
+           tp->mac_version == RTL_GIGA_MAC_VER_16)
+               pcie_capability_write_word(pdev, PCI_EXP_DEVCTL,
+                                          PCI_EXP_DEVCTL_NOSNOOP_EN);

        RTL_W8(Cfg9346, Cfg9346_Unlock);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to