Hello,

On 6/18/26 5:18 PM, Simon Glass wrote:
> Hi Vincent,
> 
> On Thu, 18 Jun 2026 at 16:09, Vincent Stehlé <[email protected]> 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.

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.

@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/[email protected]/

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é <[email protected]>
>> Cc: Heinrich Schuchardt <[email protected]>
>> Cc: Ilias Apalodimas <[email protected]>
>> Cc: Tom Rini <[email protected]>
>> ---
>>  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 |

Reply via email to