diff --git a/meta/recipes-bsp/grub/files/0007-efi-chainloader-take-care-of-unload-undershim.patch b/meta/recipes-bsp/grub/files/0007-efi-chainloader-take-care-of-unload-undershim.patch new file mode 100644 index 00000000000..165a5ec0c3f --- /dev/null +++ b/meta/recipes-bsp/grub/files/0007-efi-chainloader-take-care-of-unload-undershim.patch @@ -0,0 +1,41 @@ +From 70a30826d1cfb7a90c34760896dfd92b9c396f52 Mon Sep 17 00:00:00 2001 +From: Ricardo Neri +Date: Fri, 27 Mar 2015 08:31:27 -0700 +Subject: [PATCH 7/7] efi: chainloader: take care of unload undershim + +Under shim, we use a custom buffer to put the relocated image, make +sure we free that memory when unloading. + +Signed-off-by: Ricardo Neri +--- + grub-core/loader/efi/chainloader.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c +index 1c9795c..d0ceb6e 100644 +--- a/grub-core/loader/efi/chainloader.c ++++ b/grub-core/loader/efi/chainloader.c +@@ -586,8 +586,18 @@ grub_chainloader_unload (void) + grub_efi_boot_services_t *b; + + b = grub_efi_system_table->boot_services; +- efi_call_1 (b->unload_image, image_handle); +- efi_call_2 (b->free_pages, address, pages); ++ if (!shim_used) ++ { ++ efi_call_1 (b->unload_image, image_handle); ++ efi_call_2 (b->free_pages, address, pages); ++ } ++ else ++ { ++ if (shim_buffer) ++ { ++ efi_call_2 (b->free_pages, shim_buffer, shim_pages); ++ } ++ } + + grub_free (file_path); + grub_free (cmdline); +-- +1.9.1 + diff --git a/meta/recipes-bsp/grub/grub-efi_2.00.bb b/meta/recipes-bsp/grub/grub-efi_2.00.bb index 5362cb7e23e..c05979a0f28 100644 --- a/meta/recipes-bsp/grub/grub-efi_2.00.bb +++ b/meta/recipes-bsp/grub/grub-efi_2.00.bb @@ -36,6 +36,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://0004-efi-chainloader-port-shim-to-grub.patch \ file://0005-efi-chainloader-use-shim-to-load-and-verify-an-image.patch \ file://0006-efi-chainloader-boot-the-image-using-shim.patch \ + file://0007-efi-chainloader-take-care-of-unload-undershim.patch \ " SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c" SRC_URI[sha256sum] = "65b39a0558f8c802209c574f4d02ca263a804e8a564bc6caf1cd0fd3b3cc11e3"