[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v8][PATCH 05/16] hvmloader: get guest memory map into memory_map[]
>>> On 16.07.15 at 08:52, <tiejun.chen@xxxxxxxxx> wrote: > Now we get this map layout by call XENMEM_memory_map then > save them into one global variable memory_map[]. It should > include lowmem range, rdm range and highmem range. Note > rdm range and highmem range may not exist in some cases. > > And here we need to check if any reserved memory conflicts with > [RESERVED_MEMORY_DYNAMIC_START, RESERVED_MEMORY_DYNAMIC_END]. [RESERVED_MEMORY_DYNAMIC_START, RESERVED_MEMORY_DYNAMIC_END) > --- a/tools/firmware/hvmloader/e820.c > +++ b/tools/firmware/hvmloader/e820.c > @@ -23,6 +23,41 @@ > #include "config.h" > #include "util.h" > > +struct e820map memory_map; > + > +void memory_map_setup(void) > +{ > + unsigned int nr_entries = E820MAX, i; > + int rc; > + uint64_t alloc_addr = RESERVED_MEMORY_DYNAMIC_START; > + uint64_t alloc_size = RESERVED_MEMORY_DYNAMIC_END - alloc_addr; > + > + rc = get_mem_mapping_layout(memory_map.map, &nr_entries); > + > + if ( rc || !nr_entries ) > + { > + printf("Get guest memory maps[%d] failed. (%d)\n", nr_entries, rc); > + BUG(); > + } > + > + memory_map.nr_map = nr_entries; > + > + for ( i = 0; i < nr_entries; i++ ) > + { > + if ( memory_map.map[i].type == E820_RESERVED ) > + { > + if ( check_overlap(alloc_addr, alloc_size, > + memory_map.map[i].addr, > + memory_map.map[i].size) ) > + { > + printf("Fail to setup memory map due to conflict"); > + printf(" on dynamic reserved memory range.\n"); > + BUG(); > + } > + } Another case of two if()-s which should be folded. Again, no need to re-submit just because of this; with it fixed Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |