powerpc/eeh: Fix address catch for PowerNV
authorGavin Shan <shangw@linux.vnet.ibm.com>
Thu, 27 Jun 2013 05:46:45 +0000 (13:46 +0800)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 1 Jul 2013 01:10:32 +0000 (11:10 +1000)
On the PowerNV platform, the EEH address cache isn't built correctly
because we skipped the EEH devices without binding PE. The patch
fixes that.

Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/eeh_cache.c
arch/powerpc/platforms/powernv/pci-ioda.c

index 1d5d9a6ba740b293945e65af8a77c15b9988a9e4..858ebeaa2bacc5f8524a8f06e47288ed047c4883 100644 (file)
@@ -194,7 +194,7 @@ static void __eeh_addr_cache_insert_dev(struct pci_dev *dev)
        }
 
        /* Skip any devices for which EEH is not enabled. */
-       if (!edev->pe) {
+       if (!eeh_probe_mode_dev() && !edev->pe) {
 #ifdef DEBUG
                pr_info("PCI: skip building address cache for=%s - %s\n",
                        pci_name(dev), dn->full_name);
index dc4ec795696714f07d043c7ed55ca6a4301bf6be..c393bf59f1138d2b629ff86dde2f5348ed6af170 100644 (file)
@@ -999,6 +999,7 @@ static void pnv_pci_ioda_fixup(void)
        pnv_pci_ioda_create_dbgfs();
 
 #ifdef CONFIG_EEH
+       eeh_probe_mode_set(EEH_PROBE_MODE_DEV);
        eeh_addr_cache_build();
        eeh_init();
 #endif