summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathew McBride <matt@traverse.com.au>2023-04-12 07:38:13 +0000
committerPeng Fan <peng.fan@nxp.com>2023-05-05 09:46:03 +0800
commit8586a938682dbb0da669073c851e1f5ac62c37fe (patch)
treefe4da30604d20e0e053ba7410cca5de10c771003
parent7f30eec1779b8f641b9563a1dab6a6865916ec01 (diff)
downloadu-boot-8586a938682dbb0da669073c851e1f5ac62c37fe.tar.gz
armv8: fsl-layerscape: check for crypto node first in fdt_fixup_remove_jr
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
-rw-r--r--arch/arm/cpu/armv8/fsl-layerscape/fdt.c4
1 files changed, 4 insertions, 0 deletions
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);