[PATCH] ppc64: Make eeh_init function again
authorPaul Mackerras <paulus@samba.org>
Tue, 13 Sep 2005 10:56:20 +0000 (20:56 +1000)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 13 Sep 2005 15:26:15 +0000 (08:26 -0700)
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>
arch/ppc64/kernel/pSeries_setup.c

index bfadccc..3009701 100644 (file)
@@ -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;