aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c
index 8011088392d..309d38ef732 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -984,7 +984,8 @@ int __exit eeh_ops_unregister(const char *name)
984 */ 984 */
985void __init eeh_init(void) 985void __init eeh_init(void)
986{ 986{
987 struct device_node *phb, *np; 987 struct pci_controller *hose, *tmp;
988 struct device_node *phb;
988 int ret; 989 int ret;
989 990
990 /* call platform initialization function */ 991 /* call platform initialization function */
@@ -1000,19 +1001,9 @@ void __init eeh_init(void)
1000 1001
1001 raw_spin_lock_init(&confirm_error_lock); 1002 raw_spin_lock_init(&confirm_error_lock);
1002 1003
1003 np = of_find_node_by_path("/rtas"); 1004 /* Enable EEH for all adapters */
1004 if (np == NULL) 1005 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
1005 return; 1006 phb = hose->dn;
1006
1007 /* Enable EEH for all adapters. Note that eeh requires buid's */
1008 for (phb = of_find_node_by_name(NULL, "pci"); phb;
1009 phb = of_find_node_by_name(phb, "pci")) {
1010 unsigned long buid;
1011
1012 buid = get_phb_buid(phb);
1013 if (buid == 0 || !of_node_to_eeh_dev(phb))
1014 continue;
1015
1016 traverse_pci_devices(phb, eeh_early_enable, NULL); 1007 traverse_pci_devices(phb, eeh_early_enable, NULL);
1017 } 1008 }
1018 1009