summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathew McBride <[email protected]>2023-04-12 07:38:13 +0000
committerPeng Fan <[email protected]>2023-05-05 09:46:03 +0800
commit8586a938682dbb0da669073c851e1f5ac62c37fe (patch)
treefe4da30604d20e0e053ba7410cca5de10c771003
parent7f30eec1779b8f641b9563a1dab6a6865916ec01 (diff)
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 <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Ioana Ciornei <[email protected]> Tested-by: Ioana Ciornei <[email protected]> # 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 4f91db49eeb..22ce6992165 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);