mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 14:59:34 +00:00
kern/ieee1275/init/ppc64: Decide by request whether to initialize region
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 <stefanb@linux.ibm.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> Cc: Hari Bathini <hbathini@linux.ibm.com> Cc: Pavithra Prakash <pavrampu@in.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Carolyn Scherrer <cpscherr@us.ibm.com> Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com> Cc: Sourabh Jain <sourabhjain@linux.ibm.com>
This commit is contained in:
1 parent
0bb59fa9a3
commit
ea2c934849
2 files changed
+7
-1
No files matched your search
@@ -515,7 +515,8 @@ regions_claim (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type,
|
|||||||
err = grub_claimmap (addr, len);
|
err = grub_claimmap (addr, len);
|
||||||
if (err)
|
if (err)
|
||||||
return 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;
|
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 = {
|
struct regions_claim_request rcr = {
|
||||||
.flags = GRUB_MM_ADD_REGION_NONE,
|
.flags = GRUB_MM_ADD_REGION_NONE,
|
||||||
.total = *(grub_uint32_t *) data,
|
.total = *(grub_uint32_t *) data,
|
||||||
|
.init_region = true,
|
||||||
};
|
};
|
||||||
int ret;
|
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 = {
|
struct regions_claim_request rcr = {
|
||||||
.flags = GRUB_MM_ADD_REGION_CONSECUTIVE,
|
.flags = GRUB_MM_ADD_REGION_CONSECUTIVE,
|
||||||
.total = *(grub_uint32_t *) data,
|
.total = *(grub_uint32_t *) data,
|
||||||
|
.init_region = true,
|
||||||
};
|
};
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
|||||||
@@ -21,11 +21,14 @@
|
|||||||
#ifndef GRUB_IEEE1275_ALLOC_HEADER
|
#ifndef GRUB_IEEE1275_ALLOC_HEADER
|
||||||
#define GRUB_IEEE1275_ALLOC_HEADER 1
|
#define GRUB_IEEE1275_ALLOC_HEADER 1
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include <grub/memory.h>
|
#include <grub/memory.h>
|
||||||
|
|
||||||
struct regions_claim_request {
|
struct regions_claim_request {
|
||||||
unsigned int flags; /* GRUB_MM_ADD_REGION_(NONE|CONSECUTIVE) */
|
unsigned int flags; /* GRUB_MM_ADD_REGION_(NONE|CONSECUTIVE) */
|
||||||
grub_uint32_t total; /* number of requested bytes */
|
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_IEEE1275_ALLOC_HEADER */
|
#endif /* GRUB_IEEE1275_ALLOC_HEADER */
|
||||||
Reference in new issue
Block a user