On Mon, May 19, 2025 at 09:48:00PM +0200, Benjamin ROBIN wrote:

> When building with only bootz command, without bootm, images pointer
> inside bootm_info structure is not initialized. And since this structure
> is stored in stack the generated error is kind of random, but most of
> the time this will generate: "ramdisk - allocation error"
> 
> Signed-off-by: Benjamin ROBIN <d...@benjarobin.fr>
> ---
>  boot/bootm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/boot/bootm.c b/boot/bootm.c
> index f6aa32746b7e..f6fddc151809 100644
> --- a/boot/bootm.c
> +++ b/boot/bootm.c
> @@ -1169,7 +1169,7 @@ void bootm_init(struct bootm_info *bmi)
>  {
>       memset(bmi, '\0', sizeof(struct bootm_info));
>       bmi->boot_progress = true;
> -     if (IS_ENABLED(CONFIG_CMD_BOOTM))
> +     if (IS_ENABLED(CONFIG_CMD_BOOTM) || IS_ENABLED(CONFIG_CMD_BOOTZ))
>               bmi->images = &images;
>  }

Good catch. This should also get a:
Fixes: c2211ff65136 ("bootm: Add more fields to bootm_info")

And after reading the code and grepping around more, I think we should
be doing the assignment unconditionally in the function. It's what we
practically do today as only colibri_vf disables CMD_BOOTM but then also
enables any other OS boot command.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to