When exiting grub, we currently leave the heap allocated. This means that if we exit and rerun grub, after a few iterations we can run into memory shortage.
This patch set frees the heap on exit. That way we can rerun grub many times without much problem. v3 -> v4: - Move grub_reboot to kern/efi/efi.c - use dynamic list instead of static array at runtime - use allocate_pool for list, so we are not bound by heap or random numbers - remember all allocations, not just the heap v4 -> v5: - free dynamic list entries on allocation removal v5 -> v6: - move next ptr to last field - s/start_addr/address/ - s/grub_efi_unremember_pages()/grub_efi_drop_alloc()/ - s/grub_efi_remember_pages()/grub_efi_store_alloc()/ - move grub_efi_drop_alloc after grub_efi_store_alloc - s/grub2/GRUB/ - Make grub_efi_memory_fini comment more verbose - Drop useless efi_allocated_memory = NULL; line v6 -> v7: - rewrite grub_efi_drop_alloc() according to Daniel's comments Alexander Graf (2): efi: Move grub_reboot() into kernel efi: Free malloc regions on exit grub-core/Makefile.core.def | 4 --- grub-core/kern/efi/efi.c | 9 ++++++ grub-core/kern/efi/init.c | 1 + grub-core/kern/efi/mm.c | 79 +++++++++++++++++++++++++++++++++++++++++++++ grub-core/lib/efi/reboot.c | 33 ------------------- include/grub/efi/efi.h | 1 + include/grub/misc.h | 3 +- 7 files changed, 92 insertions(+), 38 deletions(-) delete mode 100644 grub-core/lib/efi/reboot.c -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel