On 15.02.25 16:54, Yao Zi wrote:
Structure jmp_buf_data provides the underlying format of jmp_buf, which
we actually don't care about. Clean up existing code to use the standard
jmp_buf type. This introduces no functional change.

Signed-off-by: Yao Zi <[email protected]>
---
  include/efi_loader.h          | 4 ++--
  lib/efi_loader/efi_boottime.c | 8 ++++----
  2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index dcae6a731a0..4afe8b9c859 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -15,13 +15,13 @@
  #include <efi_api.h>
  #include <image.h>
  #include <pe.h>
+#include <asm/setjmp.h>

Thanks for this suggestion.

lib/efi_loader/efi_boottime.c already has this include.
We don't need to include it globally.

The rest looks fine.

Best regards

Heinrich

  #include <linux/list.h>
  #include <linux/sizes.h>
  #include <linux/oid_registry.h>

  struct blk_desc;
  struct bootflow;
-struct jmp_buf_data;

  #if CONFIG_IS_ENABLED(EFI_LOADER)

@@ -485,7 +485,7 @@ struct efi_loaded_image_obj {
        efi_status_t *exit_status;
        efi_uintn_t *exit_data_size;
        u16 **exit_data;
-       struct jmp_buf_data *exit_jmp;
+       jmp_buf *exit_jmp;
        EFIAPI efi_status_t (*entry)(efi_handle_t image_handle,
                                     struct efi_system_table *st);
        u16 image_type;
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 5164cb15986..80c56b1ee46 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -3199,7 +3199,7 @@ efi_status_t EFIAPI efi_start_image(efi_handle_t 
image_handle,
        void *info;
        efi_handle_t parent_image = current_image;
        efi_status_t exit_status;
-       struct jmp_buf_data exit_jmp;
+       jmp_buf exit_jmp;

        EFI_ENTRY("%p, %p, %p", image_handle, exit_data_size, exit_data);

@@ -3238,7 +3238,7 @@ efi_status_t EFIAPI efi_start_image(efi_handle_t 
image_handle,
        }

        /* call the image! */
-       if (setjmp(&exit_jmp)) {
+       if (setjmp(exit_jmp)) {
                /*
                 * We called the entry point of the child image with EFI_CALL
                 * in the lines below. The child image called the Exit() boot
@@ -3444,7 +3444,7 @@ static efi_status_t EFIAPI efi_exit(efi_handle_t 
image_handle,
        struct efi_loaded_image *loaded_image_protocol;
        struct efi_loaded_image_obj *image_obj =
                (struct efi_loaded_image_obj *)image_handle;
-       struct jmp_buf_data *exit_jmp;
+       jmp_buf *exit_jmp;

        EFI_ENTRY("%p, %ld, %zu, %p", image_handle, exit_status,
                  exit_data_size, exit_data);
@@ -3511,7 +3511,7 @@ static efi_status_t EFIAPI efi_exit(efi_handle_t 
image_handle,
         */
        efi_restore_gd();

-       longjmp(exit_jmp, 1);
+       longjmp(*exit_jmp, 1);

        panic("EFI application exited");
  out:

Reply via email to