@@ -153,7 +153,7 @@ void __init fadump_append_bootargs(void)
153
153
if (!fw_dump .dump_active || !fw_dump .param_area_supported || !fw_dump .param_area )
154
154
return ;
155
155
156
- if (fw_dump .param_area >= fw_dump .boot_mem_top ) {
156
+ if (fw_dump .param_area < fw_dump .boot_mem_top ) {
157
157
if (memblock_reserve (fw_dump .param_area , COMMAND_LINE_SIZE )) {
158
158
pr_warn ("WARNING: Can't use additional parameters area!\n" );
159
159
fw_dump .param_area = 0 ;
@@ -1587,6 +1587,12 @@ static void __init fadump_init_files(void)
1587
1587
return ;
1588
1588
}
1589
1589
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
+
1590
1596
debugfs_create_file ("fadump_region" , 0444 , arch_debugfs_dir , NULL ,
1591
1597
& fadump_region_fops );
1592
1598
@@ -1741,15 +1747,15 @@ static void __init fadump_process(void)
1741
1747
* Reserve memory to store additional parameters to be passed
1742
1748
* for fadump/capture kernel.
1743
1749
*/
1744
- static void __init fadump_setup_param_area (void )
1750
+ void __init fadump_setup_param_area (void )
1745
1751
{
1746
1752
phys_addr_t range_start , range_end ;
1747
1753
1748
1754
if (!fw_dump .param_area_supported || fw_dump .dump_active )
1749
1755
return ;
1750
1756
1751
1757
/* 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 ()) {
1753
1759
/*
1754
1760
* Anywhere in the upper half should be good enough as all memory
1755
1761
* is accessible in real mode.
@@ -1777,12 +1783,12 @@ static void __init fadump_setup_param_area(void)
1777
1783
COMMAND_LINE_SIZE ,
1778
1784
range_start ,
1779
1785
range_end );
1780
- if (!fw_dump .param_area || sysfs_create_file ( fadump_kobj , & bootargs_append_attr . attr ) ) {
1786
+ if (!fw_dump .param_area ) {
1781
1787
pr_warn ("WARNING: Could not setup area to pass additional parameters!\n" );
1782
1788
return ;
1783
1789
}
1784
1790
1785
- memset (phys_to_virt ( fw_dump .param_area ) , 0 , COMMAND_LINE_SIZE );
1791
+ memset (( void * ) fw_dump .param_area , 0 , COMMAND_LINE_SIZE );
1786
1792
}
1787
1793
1788
1794
/*
@@ -1808,7 +1814,6 @@ int __init setup_fadump(void)
1808
1814
}
1809
1815
/* Initialize the kernel dump memory structure and register with f/w */
1810
1816
else if (fw_dump .reserve_dump_area_size ) {
1811
- fadump_setup_param_area ();
1812
1817
fw_dump .ops -> fadump_init_mem_struct (& fw_dump );
1813
1818
register_fadump ();
1814
1819
}
0 commit comments