ARM: parameter initrd must override FDT initrd
PATCH 1/1 ARM: parameter initrd must override FDT initrd
The initrd_start and initrd_end as set by FDT was overriding the phys_initrd_start and phys_initrd_size set by the initrd= kernel parameter. This patch will ignore the initrd_start and initrd_end set earlier if phys_initrd_start and phys_initrd_size (as set by the initrd= parameter) are set.
--- arch/arm/mm/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/mm/init.c +2 -1
@@ -345,10 +345,11 @@ void __init arm_memblock_init(struct meminfo *mi,#endif #ifdef CONFIG_BLK_DEV_INITRD /* FDT scan will populate initrd_start */ -if (initrd_start) { +if (initrd_start && !phys_initrd_size) { phys_initrd_start =__virt_to_phys (initrd_start); phys_initrd_size = initrd_end - initrd_start; } + initrd_start = initrd_end =0 ;if (phys_initrd_size && !memblock_is_region_memory (phys_initrd_start, phys_initrd_size)) { pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",
Signature · 1 line
1.8.3.2
PATCH 1/1 ARM: parameter initrd must override FDT initrd
Quoted 7 lines · klightspeed at killerwolves.net
The
initrd_startandinitrd_endas set by FDT was overriding thephys_initrd_startandphys_initrd_sizeset by the initrd= kernel parameter. This patch will ignore theinitrd_startandinitrd_endset earlier ifphys_initrd_startandphys_initrd_size(as set by the initrd= parameter) are set.Signed-off-by Ben Peddell <[email protected]>
Hi Ben
Since this is a fix, it is a good idea to put Fix somewhere in the subject. You should also try to say which patch broke it. Looking at the git logs, i think it was 65939301acdb1e593fdb424bd356f0b9bc7ba5be "arm: set initrd_start/initrd_end for fdt scan" which came from Rob Herring <[email protected]>. I added Rob to CC.
Andrew
Quoted 29 lines
--- arch/arm/mm/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)arch/arm/mm/init.c +2
-1@@ -345,10 +345,11 @@ void __init arm_memblock_init(struct meminfo *mi,#endif #ifdef CONFIG_BLK_DEV_INITRD /* FDT scan will populate initrd_start */ -if (initrd_start) { +if (initrd_start && !phys_initrd_size) { phys_initrd_start =__virt_to_phys (initrd_start); phys_initrd_size = initrd_end - initrd_start; } + initrd_start = initrd_end =0 ;if (phys_initrd_size && !memblock_is_region_memory (phys_initrd_start, phys_initrd_size)) { pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",Signature · 7 lines
1.8.3.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel