mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
arm64: mm: Ensure we ignore the initrd if it is placed out of range
If the initrd payload isn't completely accessible via the linear map, then we print a warning during boot and nobble the virtual address of the payload so that we ignore it later on. Unfortunately, since commitc756c592e4
("arm64: Utilize phys_initrd_start/phys_initrd_size"), the virtual address isn't initialised until later anyway, so we need to nobble the size of the payload to ensure that we don't try to use it later on. Fixes:c756c592e4
("arm64: Utilize phys_initrd_start/phys_initrd_size") Reported-by: Pierre Kuo <vichy.kuo@gmail.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
92606ec928
commit
70b3d237bd
@ -377,7 +377,7 @@ void __init arm64_memblock_init(void)
|
|||||||
base + size > memblock_start_of_DRAM() +
|
base + size > memblock_start_of_DRAM() +
|
||||||
linear_region_size,
|
linear_region_size,
|
||||||
"initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) {
|
"initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) {
|
||||||
initrd_start = 0;
|
phys_initrd_size = 0;
|
||||||
} else {
|
} else {
|
||||||
memblock_remove(base, size); /* clear MEMBLOCK_ flags */
|
memblock_remove(base, size); /* clear MEMBLOCK_ flags */
|
||||||
memblock_add(base, size);
|
memblock_add(base, size);
|
||||||
|
Loading…
Reference in New Issue
Block a user