diff options
author | Mathew McBride <matt@traverse.com.au> | 2023-04-12 07:38:13 +0000 |
---|---|---|
committer | Peng Fan <peng.fan@nxp.com> | 2023-05-05 09:46:03 +0800 |
commit | 8586a938682dbb0da669073c851e1f5ac62c37fe (patch) | |
tree | fe4da30604d20e0e053ba7410cca5de10c771003 | |
parent | 7f30eec1779b8f641b9563a1dab6a6865916ec01 (diff) | |
download | u-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.c | 4 |
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); |