[PATCH] efi_loader: add missing EFI_EXIT in efi_disconnect_controller
Simon Glass
sjg at chromium.org
Thu Jun 25 17:12:56 CEST 2026
Hi Ahmad,
On Thu, 18 Jun 2026 at 16:28, Ahmad Fatoum <a.fatoum at pengutronix.de> wrote:
>
> Hello,
>
> On 6/18/26 5:18 PM, Simon Glass wrote:
> > Hi Vincent,
> >
> > On Thu, 18 Jun 2026 at 16:09, Vincent Stehlé <vincent.stehle at arm.com> wrote:
> >>
> >> Make sure to call EFI_EXIT() in efi_disconnect_controller(), when returning
> >> after having called EFI_ENTRY().
> >>
> >> This is inspired by a barebox fix. [1]
> >
> > Hmm, does Barebox support EFI_LOADER now? I wish we could bring these
> > projects back together :-)
>
> It's not as extensive as U-Boot's yet, but it's usable for the common
> boot me a distro GRUB use case. The code originated from U-Boot with
> some parts heavily rewritten to fit barebox, e.g. the EFI filesystem
> protocol is implemented on top of dirfds, so it reuses VFS path handling
> and other such things.
OK good. I did create a VFS in Concept but I have not tried to get it
into mainline yet.
>
> The imported files have Origin-URL comments pointing back at U-Boot
> including the revision they originated from, but we are still in need of
> better tooling to make use of these tags.
On another topic - where did we get to with the whole-FITsigning
thing? Should we set up a call to talk it through?
Regards,
Simon
>
> @Vincent, I suspect a number of fixes in [1] are also applicable to
> U-Boot, but I haven't checked.
>
> [1]:
> https://lore.kernel.org/barebox/20260216084758.3548990-1-a.fatoum@pengutronix.de/
>
> Cheers,
> Ahmad
>
>
>
> >
> >>
> >> 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>
> >> ---
> >> 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..b6966652d97 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;
> >> + return EFI_EXIT(r);
> >> sole_child = (number_of_children == 1);
> >>
> >> if (child_handle) {
> >> --
> >> 2.53.0
> >>
> >
> > Regards,
> > Simon
> >
>
> --
> Pengutronix e.K. | |
> Steuerwalder Str. 21 | http://www.pengutronix.de/ |
> 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
>
More information about the U-Boot
mailing list