[PATCH v2] efi_loader: fix missing EFI_EXIT in efi_disconnect_controller
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Jun 19 10:22:22 CEST 2026
Thanks Vincent,
On Thu, 18 Jun 2026 at 19:09, Vincent Stehlé <vincent.stehle at arm.com> wrote:
> We are missing a call to EFI_EXIT() when returning from
> efi_disconnect_controller(), which we need after having called EFI_ENTRY().
>
> Fix this by jumping to the common error path, which does call EFI_EXIT().
>
> Even though the common error path may try to free child_handle_buffer, this
> cannot harm in our case as it always NULL.
>
> This is inspired by a barebox fix. [1]
>
There's more in that link and some of them are still valid. Do you plan to
send more?
> Link:
> https://git.pengutronix.de/cgit/barebox/commit/?id=080db65e39a877b000baaf843c997a69821dfe69
> [1]
> Fixes: 314bed6c854e ("efi_loader: fix DisconnectController() for sole
> child")
> Signed-off-by: Vincent Stehlé <vincent.stehle at arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> ---
>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
>
>
> Changes for v2:
> - Drop the return and jump to the common error path with a goto instead
>
>
> lib/efi_loader/efi_boottime.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
> index de57823bd44..bcb01c92cf4 100644
> --- a/lib/efi_loader/efi_boottime.c
> +++ b/lib/efi_loader/efi_boottime.c
> @@ -3895,7 +3895,7 @@ efi_status_t EFIAPI efi_disconnect_controller(
> &number_of_children,
> &child_handle_buffer);
> if (r != EFI_SUCCESS)
> - return r;
> + goto out;
> sole_child = (number_of_children == 1);
>
> if (child_handle) {
> --
> 2.53.0
>
>
More information about the U-Boot
mailing list