aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGavin Shan <shangw@linux.vnet.ibm.com>2013-06-27 01:46:45 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-06-30 21:10:32 -0400
commit88b6d14b2bb48ea4f66fedfe671f98544395b305 (patch)
tree9a535b752d29d95e06699da8fe6002472cda4f70
parent0b9e267d71d2e74d1108785928fd8c8c9dbf441e (diff)
powerpc/eeh: Fix address catch for PowerNV
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>
-rw-r--r--arch/powerpc/kernel/eeh_cache.c2
-rw-r--r--arch/powerpc/platforms/powernv/pci-ioda.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/eeh_cache.c b/arch/powerpc/kernel/eeh_cache.c
index 1d5d9a6ba740..858ebeaa2bac 100644
--- a/arch/powerpc/kernel/eeh_cache.c
+++ b/arch/powerpc/kernel/eeh_cache.c
@@ -194,7 +194,7 @@ static void __eeh_addr_cache_insert_dev(struct pci_dev *dev)
194 } 194 }
195 195
196 /* Skip any devices for which EEH is not enabled. */ 196 /* Skip any devices for which EEH is not enabled. */
197 if (!edev->pe) { 197 if (!eeh_probe_mode_dev() && !edev->pe) {
198#ifdef DEBUG 198#ifdef DEBUG
199 pr_info("PCI: skip building address cache for=%s - %s\n", 199 pr_info("PCI: skip building address cache for=%s - %s\n",
200 pci_name(dev), dn->full_name); 200 pci_name(dev), dn->full_name);
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index dc4ec7956967..c393bf59f113 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -999,6 +999,7 @@ static void pnv_pci_ioda_fixup(void)
999 pnv_pci_ioda_create_dbgfs(); 999 pnv_pci_ioda_create_dbgfs();
1000 1000
1001#ifdef CONFIG_EEH 1001#ifdef CONFIG_EEH
1002 eeh_probe_mode_set(EEH_PROBE_MODE_DEV);
1002 eeh_addr_cache_build(); 1003 eeh_addr_cache_build();
1003 eeh_init(); 1004 eeh_init();
1004#endif 1005#endif