OSDN Git Service

bnx2: Drop redundant pci_enable_pcie_error_reporting()
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 7 Mar 2023 18:19:14 +0000 (12:19 -0600)
committerJakub Kicinski <kuba@kernel.org>
Thu, 9 Mar 2023 07:34:38 +0000 (23:34 -0800)
pci_enable_pcie_error_reporting() enables the device to send ERR_*
Messages.  Since f26e58bf6f54 ("PCI/AER: Enable error reporting when AER is
native"), the PCI core does this for all devices during enumeration, so the
driver doesn't need to do it itself.

Remove the redundant pci_enable_pcie_error_reporting() call from the
driver.  Also remove the corresponding pci_disable_pcie_error_reporting()
from the driver .remove() path.

Note that this only controls ERR_* Messages from the device.  An ERR_*
Message may cause the Root Port to generate an interrupt, depending on the
AER Root Error Command register managed by the AER service driver.

cd709aa90648 ("bnx2: Add PCI Advanced Error Reporting support.") added
pci_enable_pcie_error_reporting() for all devices, and c239f279e571 ("bnx2:
Enable AER on PCIE devices only") restricted it to BNX2_CHIP_5709 devices
to avoid an error message when it failed on non-PCIe devices.  The PCI core
only enables PCIe error reporting on PCIe devices, which I assume means
BNX2_CHIP_5709.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Rasesh Mody <rmody@marvell.com>
Cc: GR-Linux-NIC-Dev@marvell.com
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnx2.c
drivers/net/ethernet/broadcom/bnx2.h

index 9f47385..a66137b 100644 (file)
@@ -48,7 +48,6 @@
 #include <linux/cache.h>
 #include <linux/firmware.h>
 #include <linux/log2.h>
-#include <linux/aer.h>
 #include <linux/crash_dump.h>
 
 #if IS_ENABLED(CONFIG_CNIC)
@@ -8093,7 +8092,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
        int rc, i, j;
        u32 reg;
        u64 dma_mask, persist_dma_mask;
-       int err;
 
        SET_NETDEV_DEV(dev, &pdev->dev);
        bp = netdev_priv(dev);
@@ -8176,12 +8174,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
                bp->flags |= BNX2_FLAG_PCIE;
                if (BNX2_CHIP_REV(bp) == BNX2_CHIP_REV_Ax)
                        bp->flags |= BNX2_FLAG_JUMBO_BROKEN;
-
-               /* AER (Advanced Error Reporting) hooks */
-               err = pci_enable_pcie_error_reporting(pdev);
-               if (!err)
-                       bp->flags |= BNX2_FLAG_AER_ENABLED;
-
        } else {
                bp->pcix_cap = pci_find_capability(pdev, PCI_CAP_ID_PCIX);
                if (bp->pcix_cap == 0) {
@@ -8460,11 +8452,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
        return 0;
 
 err_out_unmap:
-       if (bp->flags & BNX2_FLAG_AER_ENABLED) {
-               pci_disable_pcie_error_reporting(pdev);
-               bp->flags &= ~BNX2_FLAG_AER_ENABLED;
-       }
-
        pci_iounmap(pdev, bp->regview);
        bp->regview = NULL;
 
@@ -8638,11 +8625,6 @@ bnx2_remove_one(struct pci_dev *pdev)
        bnx2_free_stats_blk(dev);
        kfree(bp->temp_stats_blk);
 
-       if (bp->flags & BNX2_FLAG_AER_ENABLED) {
-               pci_disable_pcie_error_reporting(pdev);
-               bp->flags &= ~BNX2_FLAG_AER_ENABLED;
-       }
-
        bnx2_release_firmware(bp);
 
        free_netdev(dev);
@@ -8766,9 +8748,6 @@ static pci_ers_result_t bnx2_io_slot_reset(struct pci_dev *pdev)
        }
        rtnl_unlock();
 
-       if (!(bp->flags & BNX2_FLAG_AER_ENABLED))
-               return result;
-
        return result;
 }
 
index a09ec47..315b08c 100644 (file)
@@ -6808,7 +6808,6 @@ struct bnx2 {
 #define BNX2_FLAG_JUMBO_BROKEN         0x00000800
 #define BNX2_FLAG_CAN_KEEP_VLAN                0x00001000
 #define BNX2_FLAG_BROKEN_STATS         0x00002000
-#define BNX2_FLAG_AER_ENABLED          0x00004000
 
        struct bnx2_napi        bnx2_napi[BNX2_MAX_MSIX_VEC];