PCI/AER: Configure ECRC for every device
authorStefan Roese <sr@denx.de>
Tue, 25 Jan 2022 07:18:18 +0000 (08:18 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 11 Jul 2022 19:51:42 +0000 (14:51 -0500)
Move pcie_set_ecrc_checking() to pci_aer_init() to make sure that
pcie_set_ecrc_checking() is called for each PCIe device, including
hot-added devices.

Link: https://lore.kernel.org/r/20220125071820.2247260-2-sr@denx.de
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Pali Rohár <pali@kernel.org>
Cc: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Yao Hongbo <yaohongbo@linux.alibaba.com>
Cc: Naveen Naidu <naveennaidu479@gmail.com>
drivers/pci/pcie/aer.c

index 7952e5e..eb665ac 100644 (file)
@@ -392,6 +392,8 @@ void pci_aer_init(struct pci_dev *dev)
        pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_ERR, sizeof(u32) * n);
 
        pci_aer_clear_status(dev);
+
+       pcie_set_ecrc_checking(dev);
 }
 
 void pci_aer_exit(struct pci_dev *dev)
@@ -1228,9 +1230,6 @@ static int set_device_error_reporting(struct pci_dev *dev, void *data)
                        pci_disable_pcie_error_reporting(dev);
        }
 
-       if (enable)
-               pcie_set_ecrc_checking(dev);
-
        return 0;
 }