Przeglądaj źródła

[PATCH] powerpc: Make early xmon logic immune to location of early parsing

Currently early_xmon() calls directly into debugger() if xmon=early is passed.
This ties the invocation of early xmon to the location of parse_early_param(),
which might change.

Tested on P5 LPAR and F50.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Michael Ellerman 19 lat temu
rodzic
commit
480f6f35a1

+ 2 - 1
arch/powerpc/kernel/setup-common.c

@@ -443,6 +443,7 @@ void __init smp_setup_cpu_maps(void)
 }
 #endif /* CONFIG_SMP */
 
+int __initdata do_early_xmon;
 #ifdef CONFIG_XMON
 static int __init early_xmon(char *p)
 {
@@ -456,7 +457,7 @@ static int __init early_xmon(char *p)
 			return 0;
 	}
 	xmon_init(1);
-	debugger(NULL);
+	do_early_xmon = 1;
 
 	return 0;
 }

+ 1 - 0
arch/powerpc/kernel/setup.h

@@ -4,5 +4,6 @@
 void check_for_initrd(void);
 void do_init_bootmem(void);
 void setup_panic(void);
+extern int do_early_xmon;
 
 #endif /* _POWERPC_KERNEL_SETUP_H */

+ 3 - 0
arch/powerpc/kernel/setup_32.c

@@ -297,6 +297,9 @@ void __init setup_arch(char **cmdline_p)
 
 	parse_early_param();
 
+	if (do_early_xmon)
+		debugger(NULL);
+
 	/* set up the bootmem stuff with available memory */
 	do_init_bootmem();
 	if ( ppc_md.progress ) ppc_md.progress("setup_arch: bootmem", 0x3eab);

+ 3 - 0
arch/powerpc/kernel/setup_64.c

@@ -419,6 +419,9 @@ void __init setup_system(void)
 
 	parse_early_param();
 
+	if (do_early_xmon)
+		debugger(NULL);
+
 	check_smt_enabled();
 	smp_setup_cpu_maps();