pseries: phyp dump: Disable phyp-dump through boot-var.
Subsystems (3)
PATCH 1/2 pseries: phyp dump: Disable phyp-dump through boot-var.
The goal of these 2 patches is to ensure that there is only one dumping mechanism enabled at any given time. These patches depend upon phyp-dump patches posted earlier.
Patch 1:
Addition of boot-variable "phyp_dump", which takes values [0/1] 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 <[email protected]>
--- arch/powerpc/kernel/prom.c | 5 +++++ arch/powerpc/platforms/pseries/phyp_dump.c | 18 ++++++++++++++++++ include/asm-powerpc/phyp_dump.h | 1 + 3 files changed, 24 insertions(+)
arch/powerpc/platforms/pseries/phyp_dump.c +18 -0
@@ -460,3 +460,21 @@ int __init early_init_dt_scan_phyp_dump( *((unsigned long *)&sizes[4 ]);return 1 ; } + +/* Look for phyp_dump= cmdline option */ +static int __init early_phyp_dump_enabled (char *p) +{ + phyp_dump_info->phyp_dump_at_boot =1 ; + +if (!p) +return 0 ; + +if (strncmp (p,"1" ,1 ) ==0 ) + phyp_dump_info->phyp_dump_at_boot =1 ; +else if (strncmp (p,"0" ,1 ) ==0 ) + phyp_dump_info->phyp_dump_at_boot =0 ; + +return 0 ; +} +early_param ("phyp_dump" , early_phyp_dump_enabled); +
include/asm-powerpc/phyp_dump.h +1 -0
@@ -25,6 +25,7 @@ struct phyp_dump {unsigned long init_reserve_start;unsigned long init_reserve_size;/* Check status during boot if dump supported, active & present*/ +unsigned long phyp_dump_at_boot;unsigned long phyp_dump_configured;unsigned long phyp_dump_is_active;/* store cpu & hpte size */
arch/powerpc/kernel/prom.c +5 -0
@@ -1059,6 +1059,11 @@ static void __init phyp_dump_reserve_memreturn ; } +if (!phyp_dump_info->phyp_dump_at_boot) { +printk (KERN_INFO "Phyp-dump disabled at boot time\n" ); +return ; + } +if (phyp_dump_info->phyp_dump_is_active) {/* Reserve *everything* above RMR.Area freed by userland tools*/ base =PHYP_DUMP_RMR_END ;