u-boot/common
Paul Burton bd86ef117d image-fit: Fix fit_get_node_from_config semantics
Commit bac17b78da ("image-fit: switch ENOLINK to ENOENT") changed
fit_get_node_from_config to return -ENOENT when a property doesn't
exist, but didn't change any of its callers which check return values.
Notably it didn't change boot_get_ramdisk, which leads to U-Boot failing
to boot FIT images which don't include ramdisks with the following
message:

  Ramdisk image is corrupt or invalid

It also didn't take into account that by returning -ENOENT to denote the
lack of a property we lost the ability to determine from the return
value of fit_get_node_from_config whether it was the property or the
configuration node that was missing, which may potentially lead callers
to accept invalid FIT images.

Fix this by having fit_get_node_from_config return -EINVAL when the
configuration node isn't found and -ENOENT when the property isn't
found, which seems to make semantic sense. Callers that previously
checked for -ENOLINK are adjusted to check for -ENOENT, which fixes the
breakage introduced by commit bac17b78da ("image-fit: switch ENOLINK
to ENOENT").

The only other user of the return fit_get_node_from_config return value,
indirectly, is bootm_find_os which already checked for -ENOENT. From a
read-through of the code I suspect it ought to have been checking for
-ENOLINK prior to bac17b78da ("image-fit: switch ENOLINK to ENOENT")
anyway, which would make it right after this patch, but this would be
good to get verified by someone who knows this x86 code or is able to
test it.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Jonathan Gray <jsg@jsg.id.au>
Cc: Marek Vasut <marex@denx.de>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
Acked-by: George McCollister <george.mccollister@gmail.com>
Tested-by: George McCollister <george.mccollister@gmail.com>
2016-09-22 11:34:58 -04:00
..
eeprom cmd: eeprom: add support for layout aware commands 2016-05-20 17:02:07 -04:00
init bootstage: call show_boot_progress also in SPL 2016-06-09 13:53:08 -04:00
spl Kconfig: tpl: Add some TPL support options to Kconfig 2016-09-16 17:03:40 -04:00
autoboot.c autoboot: move bootdelay >= 0 check to abortboot() 2016-07-01 17:42:56 -04:00
bedbug.c
board_f.c board_f: Add a mach_cpu_init callback 2016-09-21 15:04:04 +02:00
board_info.c generic-board: allow showing custom board info 2015-08-13 07:19:36 -04:00
board_r.c dm: scsi: Rename CONFIG_CMD_SCSI to CONFIG_SCSI 2016-05-17 09:54:43 -06:00
bootm.c cmd: Split 'bootz' and 'booti' out from 'bootm' 2016-08-20 11:35:07 -04:00
bootm_os.c sandbox: Don't exit when bootm completes 2016-07-14 18:22:32 -04:00
bootretry.c
bootstage.c
bouncebuf.c
cli.c hush: complete renaming CONFIG_SYS_HUSH_PARSER to CONFIG_HUSH_PARSER 2016-06-24 17:24:34 -04:00
cli_hush.c hush: Add rudimentary support for PS1 and PS2 2016-02-08 10:10:37 -05:00
cli_readline.c common: cli_readline: Improve command line editing 2016-08-20 14:03:24 -04:00
cli_simple.c common: cli_simple: use strlcpy instead of strcpy 2016-01-13 21:05:26 -05:00
command.c Drop command-processing code when CONFIG_CMDLINE is disabled 2016-04-01 17:17:40 -04:00
console.c debug_uart: Remove duplicated carriage return handling 2016-03-27 09:12:26 -04:00
cros_ec.c
ddr_spd.c Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
dlmalloc.c malloc: improve memalign fragmentation fix 2016-05-23 11:50:17 -04:00
dlmalloc.src
edid.c
env_attr.c
env_callback.c common: env: initialize scalar variable 2016-01-04 12:25:35 -05:00
env_common.c Various, unrelated tree-wide typo fixes. 2016-07-16 09:43:12 -04:00
env_dataflash.c
env_eeprom.c env_eeprom invalidates gd->env_addr by setting it to an offset value 2016-04-11 12:44:37 -04:00
env_embedded.c
env_ext4.c common: Fix support for environment file in EXT4 2016-06-24 17:24:35 -04:00
env_fat.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
env_flags.c tools: fix env_flags build 2016-02-15 20:58:25 +00:00
env_flash.c
env_mmc.c dm: env: mmc: Convert env_mmc to support CONFIG_BLK 2016-05-27 10:23:08 -06:00
env_nand.c common: env_nand: Ensure that we have nand_info[0] prior to use 2016-08-15 18:46:41 -04:00
env_nowhere.c
env_nvram.c
env_onenand.c
env_remote.c
env_sata.c common: env: support sata device 2016-04-18 12:29:14 -04:00
env_sf.c dm: spi: Read default speed and mode values from DT 2016-07-09 20:16:34 +05:30
env_ubi.c common: env_ubi: Clear environment buffer before reading 2016-06-13 06:41:20 +02:00
exports.c
fb_mmc.c common: block: fix compiler error with CONFIG_FASTBOOT_FLASH_MMC_DEV 2016-07-11 14:06:44 -06:00
fb_nand.c fastboot: sparse: implement reserve() 2016-06-27 16:37:39 -04:00
fdt_support.c fdt_support: fdt_translate_address() blob const correctness 2016-08-12 09:20:27 -06:00
flash.c
hash.c hash.c: Conditionally compile hash_command, static hash_show 2016-01-13 21:05:08 -05:00
hwconfig.c
ide.c dm: ide: Add support for driver-model block devices 2016-05-17 09:54:43 -06:00
image-android.c common: image: minimal android image iminfo support 2016-06-24 17:23:07 -04:00
image-fdt.c image-fit: Fix fit_get_node_from_config semantics 2016-09-22 11:34:58 -04:00
image-fit.c image-fit: Fix fit_get_node_from_config semantics 2016-09-22 11:34:58 -04:00
image-sig.c
image-sparse.c fastboot: sparse: improve CHUNK_TYPE_FILL write performance 2016-06-27 16:37:39 -04:00
image.c image-fit: Fix fit_get_node_from_config semantics 2016-09-22 11:34:58 -04:00
iomux.c Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
iotrace.c
kallsyms.c
Kconfig Kconfig: Move config IDENT_STRING to Kconfig 2016-09-20 09:30:23 -04:00
kgdb.c Fix spelling of "occurred". 2016-05-02 18:37:09 -04:00
kgdb_stubs.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
lcd.c lcd: Fix compile warning in 64bit mode 2016-03-27 09:12:17 -04:00
lcd_console.c
lcd_console_rotation.c
lcd_simplefb.c common/lcd_simplefb: Add support for 32bit organized framebuffers 2015-07-23 18:10:58 +02:00
lynxkdi.c
main.c Drop use of CONFIG_SYS_GENERIC_BOARD in U-Boot 2016-05-27 15:39:54 -04:00
Makefile Use separate options for TPL support 2016-09-16 17:03:39 -04:00
malloc_simple.c malloc_simple: Add a little more debugging 2016-03-17 10:27:23 +08:00
memsize.c Revert "common/memsize.c: Simplify RAM size detection" 2016-02-10 08:34:42 -05:00
menu.c Fix typo choosen in comments and printf logs 2016-03-27 09:12:23 -04:00
miiphyutil.c net: mii: check phy advertising register when geting link status 2016-08-22 14:21:23 -05:00
s_record.c
sata.c dm: sata: Add support for driver-model block devices 2016-05-17 09:54:43 -06:00
scsi.c dm: scsi: if_typename should be scsi 2016-06-06 13:39:12 -04:00
splash.c splash: Introduce default_splash_locations 2016-07-26 08:47:37 +02:00
splash_source.c splash: Accommodate DM_USB in splash_init_usb() 2016-07-25 22:42:10 +02:00
stdio.c stdio: Correct a build error with driver model 2016-01-21 20:42:36 -07:00
system_map.c
update.c update: tftp: dfu: Extend update_tftp() function to support DFU 2015-09-07 13:41:05 +02:00
usb.c usb: move CONFIG_USB_XHCI to Kconfig with renaming 2016-06-04 00:43:53 +02:00
usb_hub.c dm: Use dm_scan_fdt_dev() directly where possible 2016-07-27 14:15:54 -06:00
usb_kbd.c usb: kbd: Do not deregister usbkbd twice when using dm 2016-04-10 17:18:42 +02:00
usb_storage.c dm: blk: Add a easier way to create a named block device 2016-05-17 09:54:43 -06:00
xyzModem.c lib/crc16.c: Rename cyg_crc16() to crc16_ccitt() and add crc start value 2016-03-14 19:18:42 -04:00