]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
armv8: fsl-layerscape: check for crypto node first in fdt_fixup_remove_jr
authorMathew McBride <matt@traverse.com.au>
Wed, 12 Apr 2023 07:38:13 +0000 (07:38 +0000)
committerPeng Fan <peng.fan@nxp.com>
Fri, 5 May 2023 01:46:03 +0000 (09:46 +0800)
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 <matt@traverse.com.au>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # on LS1088A-RDB
arch/arm/cpu/armv8/fsl-layerscape/fdt.c

index 4f91db49eebf654e67bcc6ce3d61f728691e4f93..22ce6992165bdf9b432aaf02b047304f3d6b9682 100644 (file)
@@ -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);