[PATCH] ppc64: Make eeh_init function again

Paul Mackerras paulus at samba.org
Tue Sep 13 20:56:20 EST 2005


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, since
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 at samba.org>
---

diff -urN linux-2.6/arch/ppc64/kernel/pSeries_setup.c test/arch/ppc64/kernel/pSeries_setup.c
--- linux-2.6/arch/ppc64/kernel/pSeries_setup.c	2005-09-13 07:43:47.000000000 +1000
+++ test/arch/ppc64/kernel/pSeries_setup.c	2005-09-13 19:19:28.000000000 +1000
@@ -238,8 +238,8 @@
 
 	/* 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;



More information about the Linuxppc64-dev mailing list