Re: [PATCH] powerpc: Fix machine detection in prom_init.c

From: Michael Neuling <hidden>
Date: 2006-04-07 03:56:21

From: Michael Ellerman <redacted>

In e8222502ee6157e2713da9e0792c21f4ad458d50 the detection of machine types
in prom_init broke for some machines. We should be checking /device_type
instead of /model. This should make Power3 and Power4 boot again. Haven't
been able to test this.  We also need to relocate before comparing. 

Signed-off-by: Michael Ellerman <redacted>
Signed-off-by: Michael Neuling <redacted>
---
quoted
In e8222502ee6157e2713da9e0792c21f4ad458d50 the detection of machine
types in prom_init broke for some machines. We should be checking
/device_type instead of /model. This should make Power3 and Power4
boot again. Haven't been able to test this.
We also need to relocate the string before comparing.

Combined patch below.  Tested on POWER3.  
Oops, let's be a little more careful walking off into nowhere.

Again, combined patch below.  Tested on POWER3.  

 arch/powerpc/kernel/prom_init.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

Index: linux-2.6-powerpc/arch/powerpc/kernel/prom_init.c
===================================================================
--- linux-2.6-powerpc.orig/arch/powerpc/kernel/prom_init.c
+++ linux-2.6-powerpc/arch/powerpc/kernel/prom_init.c
@@ -1528,12 +1528,11 @@ static int __init prom_find_machine_type
 	 *    non-IBM designs !
 	 *  - it has /rtas
 	 */
-	len = prom_getprop(_prom->root, "model",
+	len = prom_getprop(_prom->root, "device_type",
 			   compat, sizeof(compat)-1);
 	if (len <= 0)
 		return PLATFORM_GENERIC;
-	compat[len] = 0;
-	if (strcmp(compat, "chrp"))
+	if (strncmp(compat, RELOC("chrp"), 4))
 		return PLATFORM_GENERIC;
 
 	/* Default to pSeries. We need to know if we are running LPAR */
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help