[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 11/17] xen/arm: dom0_build: Remove dead code in allocate_memory
On Tue, 28 Jun 2016, Julien Grall wrote: > The code to allocate memory when dom0 does not use direct mapping is > relying on the presence of memory node in the DT. > > However, they are not present when booting using UEFI or when using > ACPI. > > Rather than fixing the code, remove it because dom0 is always direct > memory mapped and therefore the code is never tested. Also add a > check to avoid disabling direct memory mapped and not implementing > the associated RAM bank allocation. > > Signed-off-by: Julien Grall <julien.grall@xxxxxxx> Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > Changes in v4: > - Patch added > --- > xen/arch/arm/domain_build.c | 58 > ++++++--------------------------------------- > 1 file changed, 7 insertions(+), 51 deletions(-) > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index 49185f0..923f48a 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -235,7 +235,7 @@ fail: > * (as described above) we allow higher allocations and continue until > * that runs out (or we have allocated sufficient dom0 memory). > */ > -static void allocate_memory_11(struct domain *d, struct kernel_info *kinfo) > +static void allocate_memory(struct domain *d, struct kernel_info *kinfo) > { > const unsigned int min_low_order = > get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128))); > @@ -247,6 +247,12 @@ static void allocate_memory_11(struct domain *d, struct > kernel_info *kinfo) > bool_t lowmem = is_32bit_domain(d); > unsigned int bits; > > + /* > + * TODO: Implement memory bank allocation when DOM0 is not direct > + * mapped > + */ > + BUG_ON(!dom0_11_mapping); > + > printk("Allocating 1:1 mappings totalling %ldMB for dom0:\n", > /* Don't want format this as PRIpaddr (16 digit hex) */ > (unsigned long)(kinfo->unassigned_mem >> 20)); > @@ -343,56 +349,6 @@ static void allocate_memory_11(struct domain *d, struct > kernel_info *kinfo) > } > } > > -static void allocate_memory(struct domain *d, struct kernel_info *kinfo) > -{ > - > - struct dt_device_node *memory = NULL; > - const void *reg; > - u32 reg_len, reg_size; > - unsigned int bank = 0; > - > - if ( dom0_11_mapping ) > - return allocate_memory_11(d, kinfo); > - > - while ( (memory = dt_find_node_by_type(memory, "memory")) ) > - { > - int l; > - > - dt_dprintk("memory node\n"); > - > - reg_size = dt_cells_to_size(dt_n_addr_cells(memory) + > dt_n_size_cells(memory)); > - > - reg = dt_get_property(memory, "reg", ®_len); > - if ( reg == NULL ) > - panic("Memory node has no reg property"); > - > - for ( l = 0; > - kinfo->unassigned_mem > 0 && l + reg_size <= reg_len > - && kinfo->mem.nr_banks < NR_MEM_BANKS; > - l += reg_size ) > - { > - paddr_t start, size; > - > - if ( dt_device_get_address(memory, bank, &start, &size) ) > - panic("Unable to retrieve the bank %u for %s", > - bank, dt_node_full_name(memory)); > - > - if ( size > kinfo->unassigned_mem ) > - size = kinfo->unassigned_mem; > - > - printk("Populate P2M %#"PRIx64"->%#"PRIx64"\n", > - start, start + size); > - if ( p2m_populate_ram(d, start, start + size) < 0 ) > - panic("Failed to populate P2M"); > - kinfo->mem.bank[kinfo->mem.nr_banks].start = start; > - kinfo->mem.bank[kinfo->mem.nr_banks].size = size; > - kinfo->mem.nr_banks++; > - > - kinfo->unassigned_mem -= size; > - } > - } > -} > - > static int write_properties(struct domain *d, struct kernel_info *kinfo, > const struct dt_device_node *node) > { > -- > 1.9.1 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |