diff options
author | Manish Ahuja <ahuja@austin.ibm.com> | 2008-03-21 20:38:59 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-03-25 17:44:07 -0400 |
commit | 654f596da4a83a8d2734fba26c2a1257533e6d75 (patch) | |
tree | a937646dfd6e225e6b3f25d6adbde921200f21d9 | |
parent | 242f271c056f49b64b94c06b38fe9e8d3bf703bc (diff) |
[POWERPC] pseries: phyp dump: Disable phyp-dump through boot-var
This adds a kernel command line option "phyp_dump", which takes a 0/1
value for disabling/ enabling phyp_dump at boot time. Kdump can use
this on cmdline (phyp_dump=0) to disable phyp-dump during boot when
enabling itself. This will ensure only one dumping mechanism is active
at any given time.
Signed-off-by: Manish Ahuja <mahuja@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/kernel/prom.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/phyp_dump.c | 18 | ||||
-rw-r--r-- | include/asm-powerpc/phyp_dump.h | 1 |
3 files changed, 24 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index e6c022ef12ee..9330920265f3 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -1060,6 +1060,11 @@ static void __init phyp_dump_reserve_mem(void) | |||
1060 | return; | 1060 | return; |
1061 | } | 1061 | } |
1062 | 1062 | ||
1063 | if (!phyp_dump_info->phyp_dump_at_boot) { | ||
1064 | printk(KERN_INFO "Phyp-dump disabled at boot time\n"); | ||
1065 | return; | ||
1066 | } | ||
1067 | |||
1063 | if (phyp_dump_info->phyp_dump_is_active) { | 1068 | if (phyp_dump_info->phyp_dump_is_active) { |
1064 | /* Reserve *everything* above RMR.Area freed by userland tools*/ | 1069 | /* Reserve *everything* above RMR.Area freed by userland tools*/ |
1065 | base = PHYP_DUMP_RMR_END; | 1070 | base = PHYP_DUMP_RMR_END; |
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c index 034fe1b54dd9..f80f8606c6b8 100644 --- a/arch/powerpc/platforms/pseries/phyp_dump.c +++ b/arch/powerpc/platforms/pseries/phyp_dump.c | |||
@@ -460,3 +460,21 @@ int __init early_init_dt_scan_phyp_dump(unsigned long node, | |||
460 | *((unsigned long *)&sizes[4]); | 460 | *((unsigned long *)&sizes[4]); |
461 | return 1; | 461 | return 1; |
462 | } | 462 | } |
463 | |||
464 | /* Look for phyp_dump= cmdline option */ | ||
465 | static int __init early_phyp_dump_enabled(char *p) | ||
466 | { | ||
467 | phyp_dump_info->phyp_dump_at_boot = 1; | ||
468 | |||
469 | if (!p) | ||
470 | return 0; | ||
471 | |||
472 | if (strncmp(p, "1", 1) == 0) | ||
473 | phyp_dump_info->phyp_dump_at_boot = 1; | ||
474 | else if (strncmp(p, "0", 1) == 0) | ||
475 | phyp_dump_info->phyp_dump_at_boot = 0; | ||
476 | |||
477 | return 0; | ||
478 | } | ||
479 | early_param("phyp_dump", early_phyp_dump_enabled); | ||
480 | |||
diff --git a/include/asm-powerpc/phyp_dump.h b/include/asm-powerpc/phyp_dump.h index b454de45b2ca..209a98913d9d 100644 --- a/include/asm-powerpc/phyp_dump.h +++ b/include/asm-powerpc/phyp_dump.h | |||
@@ -25,6 +25,7 @@ struct phyp_dump { | |||
25 | unsigned long init_reserve_start; | 25 | unsigned long init_reserve_start; |
26 | unsigned long init_reserve_size; | 26 | unsigned long init_reserve_size; |
27 | /* Check status during boot if dump supported, active & present*/ | 27 | /* Check status during boot if dump supported, active & present*/ |
28 | unsigned long phyp_dump_at_boot; | ||
28 | unsigned long phyp_dump_configured; | 29 | unsigned long phyp_dump_configured; |
29 | unsigned long phyp_dump_is_active; | 30 | unsigned long phyp_dump_is_active; |
30 | /* store cpu & hpte size */ | 31 | /* store cpu & hpte size */ |