ARM: Fix incorrect FDT initrd parameter override
PATCH 1/1 ARM: Fix incorrect FDT initrd parameter override
Commit 65939301acdb (arm: set initrd_start/initrd_end for fdt scan) caused the FDT initrd_start and initrd_end to override the phys_initrd_start and phys_initrd_size set by the initrd= kernel parameter. With this patch initrd_start and initrd_end will be overridden if phys_initrd_start and phys_initrd_size are set by the kernel initrd= parameter.
--- 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: Fix incorrect FDT initrd parameter override
Quoted 8 lines · On Sat, Jan 11, 2014 at 6:20 PM, <[email protected]> wrote:
Commit
65939301acdb(arm: set initrd_start/initrd_end for fdt scan) caused the FDTinitrd_startandinitrd_endto override thephys_initrd_startandphys_initrd_sizeset by the initrd= kernel parameter. With this patchinitrd_startandinitrd_endwill be overridden ifphys_initrd_startandphys_initrd_sizeare set by the kernel initrd= parameter.Signed-off-by Ben Peddell <[email protected]>
I'd really like to see phys_initrd_* removed, but that would be more invasive, so:
Please submit to Russell's patch system and mark for stable. I don't think there is time before 3.13 is released.
Rob
Quoted 28 lines
--- arch/arm/mm/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)arch/arm/mm/init.c +2
-2@@ -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", --1.8.3.2
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 1/1 ARM: Fix incorrect FDT initrd parameter override
Quoted 9 lines · Rob Herring
Quoted 1 line
Signed-off-by Ben Peddell <[email protected]>I'd really like to see phys_initrd_* removed, but that would be more invasive, so:
Acked-by Rob Herring <[email protected]>Please submit to Russell's patch system and mark for stable. I don't think there is time before 3.13 is released.
This patch (7941/2) was submitted on 14 Jan after being acked by Jason Cooper.
<http://lists.infradead.org/pipermail/linux-arm-kernel/2014-January/225272.html>
I apologise for the duplicate patch post.