@@ -153,7 +153,7 @@ void __init fadump_append_bootargs(void)
153153 if (!fw_dump .dump_active || !fw_dump .param_area_supported || !fw_dump .param_area )
154154 return ;
155155
156- if (fw_dump .param_area >= fw_dump .boot_mem_top ) {
156+ if (fw_dump .param_area < fw_dump .boot_mem_top ) {
157157 if (memblock_reserve (fw_dump .param_area , COMMAND_LINE_SIZE )) {
158158 pr_warn ("WARNING: Can't use additional parameters area!\n" );
159159 fw_dump .param_area = 0 ;
@@ -1587,6 +1587,12 @@ static void __init fadump_init_files(void)
15871587 return ;
15881588 }
15891589
1590+ if (fw_dump .param_area ) {
1591+ rc = sysfs_create_file (fadump_kobj , & bootargs_append_attr .attr );
1592+ if (rc )
1593+ pr_err ("unable to create bootargs_append sysfs file (%d)\n" , rc );
1594+ }
1595+
15901596 debugfs_create_file ("fadump_region" , 0444 , arch_debugfs_dir , NULL ,
15911597 & fadump_region_fops );
15921598
@@ -1741,15 +1747,15 @@ static void __init fadump_process(void)
17411747 * Reserve memory to store additional parameters to be passed
17421748 * for fadump/capture kernel.
17431749 */
1744- static void __init fadump_setup_param_area (void )
1750+ void __init fadump_setup_param_area (void )
17451751{
17461752 phys_addr_t range_start , range_end ;
17471753
17481754 if (!fw_dump .param_area_supported || fw_dump .dump_active )
17491755 return ;
17501756
17511757 /* This memory can't be used by PFW or bootloader as it is shared across kernels */
1752- if (radix_enabled ()) {
1758+ if (early_radix_enabled ()) {
17531759 /*
17541760 * Anywhere in the upper half should be good enough as all memory
17551761 * is accessible in real mode.
@@ -1777,12 +1783,12 @@ static void __init fadump_setup_param_area(void)
17771783 COMMAND_LINE_SIZE ,
17781784 range_start ,
17791785 range_end );
1780- if (!fw_dump .param_area || sysfs_create_file ( fadump_kobj , & bootargs_append_attr . attr ) ) {
1786+ if (!fw_dump .param_area ) {
17811787 pr_warn ("WARNING: Could not setup area to pass additional parameters!\n" );
17821788 return ;
17831789 }
17841790
1785- memset (phys_to_virt ( fw_dump .param_area ) , 0 , COMMAND_LINE_SIZE );
1791+ memset (( void * ) fw_dump .param_area , 0 , COMMAND_LINE_SIZE );
17861792}
17871793
17881794/*
@@ -1808,7 +1814,6 @@ int __init setup_fadump(void)
18081814 }
18091815 /* Initialize the kernel dump memory structure and register with f/w */
18101816 else if (fw_dump .reserve_dump_area_size ) {
1811- fadump_setup_param_area ();
18121817 fw_dump .ops -> fadump_init_mem_struct (& fw_dump );
18131818 register_fadump ();
18141819 }
0 commit comments