From 3ac34b8dbb302c79f80b848dd689052c22569ab7 Mon Sep 17 00:00:00 2001 From: Gavin Shan Date: Tue, 20 Mar 2012 21:30:29 +0000 Subject: [PATCH] --- yaml --- r: 297178 b: refs/heads/master c: 1a5c2e63f497bdb5912138888053a02870ed1153 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/pseries/eeh.c | 19 +++++-------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index 5c451e755d91..333deef5d103 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 39baadbf36cee3ede5fdb8a34006d9109e5e2570 +refs/heads/master: 1a5c2e63f497bdb5912138888053a02870ed1153 diff --git a/trunk/arch/powerpc/platforms/pseries/eeh.c b/trunk/arch/powerpc/platforms/pseries/eeh.c index 8011088392d3..309d38ef7322 100644 --- a/trunk/arch/powerpc/platforms/pseries/eeh.c +++ b/trunk/arch/powerpc/platforms/pseries/eeh.c @@ -984,7 +984,8 @@ int __exit eeh_ops_unregister(const char *name) */ void __init eeh_init(void) { - struct device_node *phb, *np; + struct pci_controller *hose, *tmp; + struct device_node *phb; int ret; /* call platform initialization function */ @@ -1000,19 +1001,9 @@ void __init eeh_init(void) raw_spin_lock_init(&confirm_error_lock); - np = of_find_node_by_path("/rtas"); - if (np == NULL) - return; - - /* Enable EEH for all adapters. Note that eeh requires buid's */ - for (phb = of_find_node_by_name(NULL, "pci"); phb; - phb = of_find_node_by_name(phb, "pci")) { - unsigned long buid; - - buid = get_phb_buid(phb); - if (buid == 0 || !of_node_to_eeh_dev(phb)) - continue; - + /* Enable EEH for all adapters */ + list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { + phb = hose->dn; traverse_pci_devices(phb, eeh_early_enable, NULL); }