[U-Boot] [PATCH v2 1/2] libfdt: Correct fdt handling of overlays without fixups and base trees without symbols

Simon Glass sjg at chromium.org
Sat Jan 14 18:14:29 CET 2017


On 25 December 2016 at 22:24, Simon Glass <sjg at chromium.org> wrote:
> On 21 December 2016 at 03:58, Stefan Agner <stefan at agner.ch> wrote:
>> From: David Gibson <david at gibson.dropbear.id.au>
>>
>> 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 at gibson.dropbear.id.au>
>> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
>> ---
>>
>> Changes in v2:
>> - Backported patch from libfdt
>>
>>  lib/libfdt/fdt_overlay.c | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> Acked-by: Simon Glass <sjg at chromium.org>

Applied to u-boot-fdt, thanks!


More information about the U-Boot mailing list