[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH 3/4] xen/arm: Move make_resv_memory_node()
The /reserved-memory node is inherently not specific to static-shmem. In the next commit, child nodes will be added under /reserved-memory for the stolen time shared memory regions. No functional changes intended. Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx> --- xen/arch/arm/domain_build.c | 40 +++++++++++++++++++++++++++ xen/common/device-tree/static-shmem.c | 40 --------------------------- xen/include/xen/fdt-domain-build.h | 2 ++ xen/include/xen/static-shmem.h | 9 ------ 4 files changed, 42 insertions(+), 49 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 967ca6f375ca..85b6909e2b0e 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1561,6 +1561,46 @@ int __init make_chosen_node(const struct kernel_info *kinfo) return res; } +int __init make_resv_memory_node(const struct kernel_info *kinfo, int addrcells, + int sizecells) +{ + const struct membanks *mem = kernel_info_get_shm_mem_const(kinfo); + void *fdt = kinfo->fdt; + int res = 0; + /* Placeholder for reserved-memory\0 */ + const char resvbuf[16] = "reserved-memory"; + + if ( mem->nr_banks == 0 ) + /* No shared memory provided. */ + return 0; + + dt_dprintk("Create reserved-memory node\n"); + + res = fdt_begin_node(fdt, resvbuf); + if ( res ) + return res; + + res = fdt_property(fdt, "ranges", NULL, 0); + if ( res ) + return res; + + res = fdt_property_cell(fdt, "#address-cells", addrcells); + if ( res ) + return res; + + res = fdt_property_cell(fdt, "#size-cells", sizecells); + if ( res ) + return res; + + res = make_shm_resv_memory_node(kinfo, addrcells, sizecells); + if ( res ) + return res; + + res = fdt_end_node(fdt); + + return res; +} + static int __init handle_node(struct domain *d, struct kernel_info *kinfo, struct dt_device_node *node, p2m_type_t p2mt) diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree/static-shmem.c index 8023c0a484c1..7eede97fa25d 100644 --- a/xen/common/device-tree/static-shmem.c +++ b/xen/common/device-tree/static-shmem.c @@ -730,46 +730,6 @@ int __init process_shm_node(const void *fdt, int node, uint32_t address_cells, return 0; } -int __init make_resv_memory_node(const struct kernel_info *kinfo, int addrcells, - int sizecells) -{ - const struct membanks *mem = kernel_info_get_shm_mem_const(kinfo); - void *fdt = kinfo->fdt; - int res = 0; - /* Placeholder for reserved-memory\0 */ - const char resvbuf[16] = "reserved-memory"; - - if ( mem->nr_banks == 0 ) - /* No shared memory provided. */ - return 0; - - dt_dprintk("Create reserved-memory node\n"); - - res = fdt_begin_node(fdt, resvbuf); - if ( res ) - return res; - - res = fdt_property(fdt, "ranges", NULL, 0); - if ( res ) - return res; - - res = fdt_property_cell(fdt, "#address-cells", addrcells); - if ( res ) - return res; - - res = fdt_property_cell(fdt, "#size-cells", sizecells); - if ( res ) - return res; - - res = make_shm_resv_memory_node(kinfo, addrcells, sizecells); - if ( res ) - return res; - - res = fdt_end_node(fdt); - - return res; -} - void __init early_print_info_shmem(void) { const struct membanks *shmem = bootinfo_get_shmem(); diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h index 45981dbec0b8..e9418857e386 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -25,6 +25,8 @@ int construct_domain(struct domain *d, struct kernel_info *kinfo); int construct_hwdom(struct kernel_info *kinfo, const struct dt_device_node *node); int make_chosen_node(const struct kernel_info *kinfo); +int make_resv_memory_node(const struct kernel_info *kinfo, + int addrcells, int sizecells); int make_cpus_node(const struct domain *d, void *fdt); int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo, int addrcells, int sizecells); diff --git a/xen/include/xen/static-shmem.h b/xen/include/xen/static-shmem.h index 76a49869126c..4afa9107de5d 100644 --- a/xen/include/xen/static-shmem.h +++ b/xen/include/xen/static-shmem.h @@ -11,9 +11,6 @@ /* Worst case /memory node reg element: (addrcells + sizecells) */ #define DT_MEM_NODE_REG_RANGE_SIZE ((NR_MEM_BANKS + NR_SHMEM_BANKS) * 4) -int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells, - int sizecells); - int process_shm(struct domain *d, struct kernel_info *kinfo, const struct dt_device_node *node); @@ -50,12 +47,6 @@ kernel_info_get_shm_mem_const(const struct kernel_info *kinfo) /* Worst case /memory node reg element: (addrcells + sizecells) */ #define DT_MEM_NODE_REG_RANGE_SIZE (NR_MEM_BANKS * 4) -static inline int make_resv_memory_node(const struct kernel_info *kinfo, - int addrcells, int sizecells) -{ - return 0; -} - static inline int process_shm(struct domain *d, struct kernel_info *kinfo, const struct dt_device_node *node) { -- 2.48.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |