[PATCH v2 47/50] image: Remove some #ifdefs from image-fit and image-fit-sig
Alex G.
mr.nuke.me at gmail.com
Fri May 14 23:50:50 CEST 2021
On 5/6/21 9:24 AM, Simon Glass wrote:
> Drop the #ifdefs which are easy to remove without refactoring.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
> common/Kconfig.boot | 10 ++++++++++
> common/image-fit-sig.c | 8 ++------
> common/image-fit.c | 7 ++++---
> 3 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/common/Kconfig.boot b/common/Kconfig.boot
> index 03a6e6f214f..a31d9847124 100644
> --- a/common/Kconfig.boot
> +++ b/common/Kconfig.boot
> @@ -191,6 +191,16 @@ config SPL_FIT_SIGNATURE
> select SPL_IMAGE_SIGN_INFO
> select SPL_FIT_FULL_CHECK
>
> +config SPL_FIT_SIGNATURE_MAX_SIZE
> + hex "Max size of signed FIT structures in SPL"
> + depends on SPL_FIT_SIGNATURE
> + default 0x10000000
> + help
> + This option sets a max size in bytes for verified FIT uImages.
> + A sane value of 256MB protects corrupted DTB structures from overlapping
> + device memory. Assure this size does not extend past expected storage
> + space.
> +
I can't find an argument of why we'd want a separate
FIT_SIGNATURE_MAX_SIZE for SPL. This also seems unrelated to the commit
message of reducing ifdefs.
> config SPL_LOAD_FIT
> bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
> select SPL_FIT
> diff --git a/common/image-fit-sig.c b/common/image-fit-sig.c
> index 12a6745c642..22f89861048 100644
> --- a/common/image-fit-sig.c
> +++ b/common/image-fit-sig.c
> @@ -49,10 +49,8 @@ struct image_region *fit_region_make_list(const void *fit,
> * Use malloc() except in SPL (to save code size). In SPL the caller
> * must allocate the array.
> */
> -#ifndef CONFIG_SPL_BUILD
> - if (!region)
> + if (!IS_ENABLED(CONFIG_SPL_BUILD) && !region)
> region = calloc(sizeof(*region), count);
> -#endif
> if (!region)
> return NULL;
> for (i = 0; i < count; i++) {
> @@ -72,12 +70,10 @@ static int fit_image_setup_verify(struct image_sign_info *info,
> char *algo_name;
> const char *padding_name;
>
> -#ifndef USE_HOSTCC
> - if (fdt_totalsize(fit) > CONFIG_FIT_SIGNATURE_MAX_SIZE) {
> + if (fdt_totalsize(fit) > CONFIG_VAL(FIT_SIGNATURE_MAX_SIZE)) {
> *err_msgp = "Total size too large";
> return 1;
> }
> -#endif
> if (fit_image_hash_get_algo(fit, noffset, &algo_name)) {
> *err_msgp = "Can't get hash algo property";
> return -1;
> diff --git a/common/image-fit.c b/common/image-fit.c
> index f8aa61fc99d..882e872144f 100644
> --- a/common/image-fit.c
> +++ b/common/image-fit.c
> @@ -1993,9 +1993,6 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
> int type_ok, os_ok;
> ulong load, load_end, data, len;
> uint8_t os, comp;
> -#ifndef USE_HOSTCC
> - uint8_t os_arch;
> -#endif
> const char *prop_name;
> int ret;
>
> @@ -2087,8 +2084,12 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
> }
>
> #ifndef USE_HOSTCC
> + {
> + uint8_t os_arch;
> +
> fit_image_get_arch(fit, noffset, &os_arch);
> images->os.arch = os_arch;
> + }
> #endif
>
> bootstage_mark(bootstage_id + BOOTSTAGE_SUB_CHECK_ALL);
>
More information about the U-Boot
mailing list