Let the regions_claim() request structure's init_region determine whether to call grub_mm_init_region() on it. This allows for adding memory to GRUB's memory heap if init_region is set to true, or direct usage of the memory otherwise. Set all current callers' init_region to true since they want to add memory regions to GRUB's heap.
Signed-off-by: Stefan Berger <stef...@linux.ibm.com> Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com> Cc: Hari Bathini <hbath...@linux.ibm.com> Cc: Pavithra Prakash <pavra...@in.ibm.com> Cc: Michael Ellerman <m...@ellerman.id.au> Cc: Carolyn Scherrer <cpsch...@us.ibm.com> Cc: Mahesh Salgaonkar <mah...@linux.ibm.com> Cc: Sourabh Jain <sourabhj...@linux.ibm.com> --- grub-core/kern/ieee1275/init.c | 5 ++++- include/grub/powerpc/ieee1275/alloc.h | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c index 061c28c98..217f25fae 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -515,7 +515,8 @@ regions_claim (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, err = grub_claimmap (addr, len); if (err) return err; - grub_mm_init_region ((void *) (grub_addr_t) addr, len); + if (rcr->init_region) + grub_mm_init_region ((void *) (grub_addr_t) addr, len); rcr->total -= len; } @@ -534,6 +535,7 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, struct regions_claim_request rcr = { .flags = GRUB_MM_ADD_REGION_NONE, .total = *(grub_uint32_t *) data, + .init_region = true, }; int ret; @@ -551,6 +553,7 @@ region_claim (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type, struct regions_claim_request rcr = { .flags = GRUB_MM_ADD_REGION_CONSECUTIVE, .total = *(grub_uint32_t *) data, + .init_region = true, }; int ret; diff --git a/include/grub/powerpc/ieee1275/alloc.h b/include/grub/powerpc/ieee1275/alloc.h index fde52ff20..42cb1e343 100644 --- a/include/grub/powerpc/ieee1275/alloc.h +++ b/include/grub/powerpc/ieee1275/alloc.h @@ -21,11 +21,14 @@ #ifndef GRUB_POWERPC_IEEE1275_ALLOC_HEADER #define GRUB_POWERPC_IEEE1275_ALLOC_HEADER 1 +#include <stdbool.h> + #include <grub/memory.h> struct regions_claim_request { unsigned int flags; /* GRUB_MM_ADD_REGION_(NONE|CONSECUTIVE) */ grub_uint32_t total; /* number of requested bytes */ + bool init_region; /* whether to add memory to the heap using grub_mm_init_region() */ }; #endif /* GRUB_POWERPC_IEEE1275_ALLOC_HEADER */ -- 2.25.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel