summaryrefslogtreecommitdiff
path: root/cmd/fdt.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2016-12-20 15:58:44 +0100
committerSimon Glass <sjg@chromium.org>2017-01-13 18:19:45 -0700
commit46743c412de57158bde73a904511519d1fdab609 (patch)
treee41d21a4e24304611a9870294dbd716ea0ee7928 /cmd/fdt.c
parent70c1e0474a9df2c4493b4e2330cc41d3132b4e90 (diff)
downloadu-boot-imx-46743c412de57158bde73a904511519d1fdab609.zip
u-boot-imx-46743c412de57158bde73a904511519d1fdab609.tar.gz
u-boot-imx-46743c412de57158bde73a904511519d1fdab609.tar.bz2
libfdt: Correct fdt handling of overlays without fixups and base trees without symbols
The fdt_overlay_apply() function purports to support the edge cases where an overlay has no fixups to be applied, or a base tree which has no symbols (the latter can only work if the former is also true). However it gets it wrong in a couple of small ways: * In the no fixups case, it doesn't fail immediately, but will attempt fdt_for_each_property_offset() giving -FDT_ERR_NOTFOUND as the node offset, which will fail. Instead it should succeed immediately, since there's nothing to do. * In the case of no symbols, it again doesn't fail immediately. However if there is an actual fixup it will fail with an unexpected error, because -FDT_ERR_NOTFOUND is passed to fdt_getprop() when attempting to look up the symbols. We should instead return -FDT_ERR_NOTFOUND directly. Both of these errors lead to the code returning misleading error codes in failing cases. [ DTC commit: 7d8ef6e1db9794f72805a0855f4f7f12fadd03d3 ] Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd/fdt.c')
0 files changed, 0 insertions, 0 deletions