File 0012-loader-efi-linux-Use-shim-loader-image-handle-where-.patch of Package grub2
From 399577ce550c6d2a58b7cd7bf3af9967ea7012c9 Mon Sep 17 00:00:00 2001
From: Mate Kukri <mate.kukri@canonical.com>
Date: Tue, 1 Apr 2025 11:26:45 +0100
Subject: [PATCH 12/13] loader/efi/linux: Use shim loader image handle where
available
Signed-off-by: Mate Kukri <mate.kukri@canonical.com>
Link: https://lore.kernel.org/r/20250401102645.126390-6-mate.kukri@canonical.com
---
grub-core/loader/efi/linux.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
index 993d18546d..69cab4e09b 100644
--- a/grub-core/loader/efi/linux.c
+++ b/grub-core/loader/efi/linux.c
@@ -206,11 +206,15 @@ grub_arch_efi_linux_boot_image (grub_addr_t addr, grub_size_t size, char *args)
mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
mempath[1].header.length = sizeof (grub_efi_device_path_t);
- status = grub_efi_load_image (0, grub_efi_image_handle,
- (grub_efi_device_path_t *)mempath,
- (void *)addr, size, &image_handle);
- if (status != GRUB_EFI_SUCCESS)
- return grub_error (GRUB_ERR_BAD_OS, "cannot load image");
+ image_handle = grub_efi_get_last_verified_image_handle ();
+ if (image_handle == NULL)
+ {
+ status = grub_efi_load_image (0, grub_efi_image_handle,
+ (grub_efi_device_path_t *)mempath,
+ (void *)addr, size, &image_handle);
+ if (status != GRUB_EFI_SUCCESS)
+ return grub_error (GRUB_ERR_BAD_OS, "cannot load image");
+ }
grub_dprintf ("linux", "linux command line: '%s'\n", args);
--
2.49.0