This a problem I found while updating the U-Boot fsl-ls1088a.dtsi
to match the Linux version.

fdt_fixup_remove_jr did not check whether there was a "crypto"
alias in the device tree before calling more fdt_* functions,
which resulted in a crash.

Fixes: a797f274
("ARMv8/sec_firmware : Update chosen/kaslr-seed with random number")

Signed-off-by: Mathew McBride <m...@traverse.com.au>
---
 arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c 
b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
index 4f91db49ee..22ce699216 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
@@ -387,6 +387,10 @@ void fdt_fixup_remove_jr(void *blob)
        u64 jr_offset, used_jr;
        fdt32_t *reg;
 
+       /* Return if crypto node not found */
+       if (crypto_node < 0)
+               return;
+
        used_jr = sec_firmware_used_jobring_offset();
        fdt_support_default_count_cells(blob, crypto_node, &addr_cells, NULL);
 
-- 
2.30.1

Reply via email to