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]

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

Reply via email to