diff options
author | Paul Mackerras <paulus@samba.org> | 2005-09-13 06:56:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-13 11:26:15 -0400 |
commit | 0160f53e427e9f1f6d19b898867c105406037b6f (patch) | |
tree | f6aa908acf391bb95622d194b77920d8d2e159bd /arch | |
parent | 42ac8ff2ce58138ba1339296406bde6636792bd8 (diff) |
[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 <paulus@samba.org>
Signed-of-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc64/kernel/pSeries_setup.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ppc64/kernel/pSeries_setup.c b/arch/ppc64/kernel/pSeries_setup.c index bfadccc7b8be..3009701eb90d 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) | |||
238 | 238 | ||
239 | /* Find and initialize PCI host bridges */ | 239 | /* Find and initialize PCI host bridges */ |
240 | init_pci_config_tokens(); | 240 | init_pci_config_tokens(); |
241 | eeh_init(); | ||
242 | find_and_init_phbs(); | 241 | find_and_init_phbs(); |
242 | eeh_init(); | ||
243 | 243 | ||
244 | #ifdef CONFIG_DUMMY_CONSOLE | 244 | #ifdef CONFIG_DUMMY_CONSOLE |
245 | conswitchp = &dummy_con; | 245 | conswitchp = &dummy_con; |