r8169: use pci_status_get_and_clear_errors
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 29 Feb 2020 22:25:05 +0000 (23:25 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Mar 2020 22:21:00 +0000 (14:21 -0800)
Use new helper pci_status_get_and_clear_errors() to simplify the code.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169_main.c

index 7c9892a..4495a3c 100644 (file)
@@ -4357,13 +4357,15 @@ static void rtl8169_pcierr_interrupt(struct net_device *dev)
 {
        struct rtl8169_private *tp = netdev_priv(dev);
        struct pci_dev *pdev = tp->pci_dev;
-       u16 pci_status, pci_cmd;
+       int pci_status_errs;
+       u16 pci_cmd;
 
        pci_read_config_word(pdev, PCI_COMMAND, &pci_cmd);
-       pci_read_config_word(pdev, PCI_STATUS, &pci_status);
 
-       netif_err(tp, intr, dev, "PCI error (cmd = 0x%04x, status = 0x%04x)\n",
-                 pci_cmd, pci_status);
+       pci_status_errs = pci_status_get_and_clear_errors(pdev);
+
+       netif_err(tp, intr, dev, "PCI error (cmd = 0x%04x, status_errs = 0x%04x)\n",
+                 pci_cmd, pci_status_errs);
 
        /*
         * The recovery sequence below admits a very elaborated explanation:
@@ -4380,11 +4382,6 @@ static void rtl8169_pcierr_interrupt(struct net_device *dev)
 
        pci_write_config_word(pdev, PCI_COMMAND, pci_cmd);
 
-       pci_write_config_word(pdev, PCI_STATUS,
-               pci_status & (PCI_STATUS_DETECTED_PARITY | PCI_STATUS_PARITY |
-               PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_REC_MASTER_ABORT |
-               PCI_STATUS_REC_TARGET_ABORT | PCI_STATUS_SIG_TARGET_ABORT));
-
        rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
 }