[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 13/18] xen: init memory regions for PVH
On Tue, Oct 09, 2018 at 01:03:12PM +0200, Juergen Gross wrote: > Add all usable memory regions to grub memory management and add the > needed mmap iterate code. I am missing a few words why this patch is needed. Especially why grub_machine_mmap_iterate() has to belong to this patch. However, I think that it should be introduced by patch in which grub_machine_mmap_iterate() is used at some point. > As we are running in 32-bit mode don't add memory above 4GB. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > grub-core/kern/i386/xen/pvh.c | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c > index 93ed68245..c4a8bccf4 100644 > --- a/grub-core/kern/i386/xen/pvh.c > +++ b/grub-core/kern/i386/xen/pvh.c > @@ -222,6 +222,30 @@ grub_xen_get_mmap (void) > grub_xen_sort_mmap (); > } > > +static void > +grub_xen_mm_init_regions (void) > +{ > + grub_uint64_t modend, from, to; > + unsigned int i; > + > + modend = grub_modules_get_end (); > + > + for (i = 0; i < nr_map_entries; i++) > + { > + if (map[i].type != GRUB_MEMORY_AVAILABLE) > + continue; > + from = map[i].addr; > + to = from + map[i].len; > + if (from < modend) > + from = modend; > + if (from >= to || from >= 0x100000000ULL) > + continue; > + if (to > 0x100000000ULL) > + to = 0x100000000ULL; > + grub_mm_init_region ((void *) (grub_addr_t) from, to - from); > + } > +} > + > static grub_uint64_t > grub_xen_find_page (grub_uint64_t start) > { > @@ -302,10 +326,21 @@ grub_xen_setup_pvh (void) > grub_xen_shared_info = grub_xen_add_physmap (XENMAPSPACE_shared_info, > (void *) par); > > + grub_xen_mm_init_regions (); > + > grub_rsdp_addr = pvh_start_info->rsdp_paddr; > } > > grub_err_t > grub_machine_mmap_iterate (grub_memory_hook_t hook, void *hook_data) > { > + unsigned int i; > + > + for (i = 0; i < nr_map_entries; i++) > + { > + if (map[i].len && hook (map[i].addr, map[i].len, map[i].type, > hook_data)) > + break; > + } > + > + return GRUB_ERR_NONE; Daniel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |