mirror-linux/drivers/of
Rob Herring e553ad8d79 of/kexec: Fix reading 32-bit "linux,initrd-{start,end}" values
"linux,initrd-start" and "linux,initrd-end" can be 32-bit values even on
a 64-bit platform. Ideally, the size should be based on
'#address-cells', but that has never been enforced in the kernel's FDT
boot parsing code (early_init_dt_check_for_initrd()). Bootloader
behavior is known to vary. For example, kexec always writes these as
64-bit. The result of incorrectly reading 32-bit values is most likely
the reserved memory for the original initrd will still be reserved
for the new kernel. The original arm64 equivalent of this code failed to
release the initrd reserved memory in *all* cases.

Use of_read_number() to mirror the early_init_dt_check_for_initrd()
code.

Fixes: b30be4dc73 ("of: Add a common kexec FDT setup function")
Cc: stable@vger.kernel.org
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Link: https://lore.kernel.org/r/20221128202440.1411895-1-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
2022-12-06 14:50:36 -06:00
..
unittest-data of: overlay: rename overlay source files from .dts to .dtso 2022-10-26 09:02:28 -05:00
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
Makefile of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
address.c of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
base.c Devicetree updates for v6.1: 2022-10-10 13:13:51 -07:00
device.c of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
dynamic.c of: Add missing 'Return' section in kerneldoc comments 2021-03-27 12:59:03 -06:00
fdt.c Devicetree updates for v6.1: 2022-10-10 13:13:51 -07:00
fdt_address.c
irq.c of: irq: Report individual failures in of_irq_init() 2022-09-07 10:54:55 -05:00
kexec.c of/kexec: Fix reading 32-bit "linux,initrd-{start,end}" values 2022-12-06 14:50:36 -06:00
kobj.c of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
of_numa.c of, numa: Fetch empty NUMA node ID from distance map 2021-10-04 13:13:44 -05:00
of_private.h of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
of_reserved_mem.c of: reserved-memory: Print allocation/reservation failures as error 2022-06-28 14:15:36 -06:00
overlay.c of: overlay: Simplify of_overlay_fdt_apply() tail 2022-07-19 15:56:48 -06:00
pdt.c
platform.c of/platform: use of_address_count() helper 2022-10-16 17:58:54 -05:00
property.c Devicetree updates for v5.19: 2022-05-25 14:56:06 -07:00
resolver.c
unittest.c of: unittest: Convert to i2c's .probe_new() 2022-12-06 14:50:35 -06:00