efi_loader: correct logging StartImage()
When logging running an image, e.g. `bootefi hello` the indent is not
correctly reset.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 0d858c1..5bf271a 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -245,6 +245,18 @@
_r; \
})
+/**
+ * define EFI_RETURN() - return from EFI_CALL in efi_start_image()
+ *
+ * @ret: status code
+ */
+#define EFI_RETURN(ret) ({ \
+ typeof(ret) _r = ret; \
+ assert(__efi_entry_check()); \
+ debug("%sEFI: %lu returned by started image", __efi_nesting_dec(), \
+ (unsigned long)((uintptr_t)_r & ~EFI_ERROR_MASK)); \
+})
+
/*
* Call void UEFI function from u-boot:
*/
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 723a9b5..db54438 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -3256,11 +3256,10 @@
* To get ready to call EFI_EXIT below we have to execute the
* missed out steps of EFI_CALL.
*/
- assert(__efi_entry_check());
- EFI_PRINT("%lu returned by started image\n",
- (unsigned long)((uintptr_t)exit_status &
- ~EFI_ERROR_MASK));
+ EFI_RETURN(exit_status);
+
current_image = parent_image;
+
return EFI_EXIT(exit_status);
}