From: Paul Mackerras Date: Tue, 13 Sep 2005 10:56:20 +0000 (+1000) Subject: [PATCH] ppc64: Make eeh_init function again X-Git-Tag: v2.6.14-rc2~52 X-Git-Url: http://pilppa.org/gitweb/?a=commitdiff_plain;h=0160f53e427e9f1f6d19b898867c105406037b6f;hp=42ac8ff2ce58138ba1339296406bde6636792bd8;p=linux-2.6-omap-h63xx.git [PATCH] ppc64: Make eeh_init function again My patch "Separate pci bits out of struct device_node" (commit 1635317facea3094ddf34082cd86797efb1d9f7e) had the unfortunate side-effect that it stopped eeh_init() from working correctly. It needs the pointers set up by find_and_init_phbs(), but it was being called just before find_and_init_phbs(). That meant that we didn't enable EEH (pSeries PCI error recovery) on any devices, and that meant that on POWER5 systems, the hypervisor wouldn't let us enable memory or I/O space access to any devices, and their drivers got somewhat confused. This fixes it by moving the eeh_init call after find_and_init_phbs. Tested on a POWER5 partition. Signed-of-by: Paul Mackerras Signed-of-by: Linus Torvalds --- diff --git a/arch/ppc64/kernel/pSeries_setup.c b/arch/ppc64/kernel/pSeries_setup.c index bfadccc7b8b..3009701eb90 100644 --- a/arch/ppc64/kernel/pSeries_setup.c +++ b/arch/ppc64/kernel/pSeries_setup.c @@ -238,8 +238,8 @@ static void __init pSeries_setup_arch(void) /* Find and initialize PCI host bridges */ init_pci_config_tokens(); - eeh_init(); find_and_init_phbs(); + eeh_init(); #ifdef CONFIG_DUMMY_CONSOLE conswitchp = &dummy_con;