[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 02/10] kern/ieee1275/init: ppc64: Decide by request whether to
From: |
Stefan Berger |
Subject: |
[PATCH v4 02/10] kern/ieee1275/init: ppc64: Decide by request whether to initialize region |
Date: |
Fri, 10 Nov 2023 11:09:45 -0500 |
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>
---
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 fc45a51b2..dd7a847a5 100644
--- a/include/grub/powerpc/ieee1275/alloc.h
+++ b/include/grub/powerpc/ieee1275/alloc.h
@@ -20,11 +20,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
- [PATCH v4 00/10] ppc64: Restrict memory allocations for kernel and initrd, Stefan Berger, 2023/11/10
- [PATCH v4 01/10] kern/ieee1275/init: ppc64: Introduce a request for regions_claim, Stefan Berger, 2023/11/10
- [PATCH v4 07/10] loader/powerpc/ieee1275: Use new allocation function for kernel and initrd, Stefan Berger, 2023/11/10
- [PATCH v4 02/10] kern/ieee1275/init: ppc64: Decide by request whether to initialize region,
Stefan Berger <=
- [PATCH v4 05/10] kern/ieee1275/init: ppc64: Rename regions_claim to grub_regions_claim, Stefan Berger, 2023/11/10
- [PATCH v4 04/10] kern/ieee1275/init: ppc64: Add support for alignment requirements, Stefan Berger, 2023/11/10
- [PATCH v4 06/10] kern/ieee1275/cmain: ppc64: Introduce flags to identify Power VM and KVM, Stefan Berger, 2023/11/10
- [PATCH v4 08/10] kern/ieee1275/ieee1275: debug: Display successful memory claims, Stefan Berger, 2023/11/10
- [PATCH v4 10/10] kern/ieee1275/init: ppc64: Display upper_mem_limit for debugging, Stefan Berger, 2023/11/10
- [PATCH v4 03/10] kern/ieee1275/init: ppc64: Return allocated address using context, Stefan Berger, 2023/11/10
- [PATCH v4 09/10] kern/ieee1275/init: ppc64: Fix a comment, Stefan Berger, 2023/11/10