[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v8 07/15] x86_64/mm: switch to new APIs in paging_init
On 27.07.2020 16:21, Hongyan Xia wrote: > From: Wei Liu <wei.liu2@xxxxxxxxxx> > > Map and unmap pages instead of relying on the direct map. > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> > Signed-off-by: Hongyan Xia <hongyxia@xxxxxxxxxx> > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > > --- > Changed in v8: > - replace l3/2_ro_mpt_mfn with just mfn since their lifetimes do not > overlap Good, but ... > --- a/xen/arch/x86/x86_64/mm.c > +++ b/xen/arch/x86/x86_64/mm.c > @@ -481,6 +481,7 @@ void __init paging_init(void) > l3_pgentry_t *l3_ro_mpt; > l2_pgentry_t *pl2e = NULL, *l2_ro_mpt = NULL; > struct page_info *l1_pg; > + mfn_t mfn; > > /* > * We setup the L3s for 1:1 mapping if host support memory hotplug > @@ -493,22 +494,23 @@ void __init paging_init(void) > if ( !(l4e_get_flags(idle_pg_table[l4_table_offset(va)]) & > _PAGE_PRESENT) ) > { > - l3_pgentry_t *pl3t = alloc_xen_pagetable(); > + mfn_t l3mfn; ... what about this one? It's again only used ... > + l3_pgentry_t *pl3t = alloc_map_clear_xen_pt(&l3mfn); > > if ( !pl3t ) > goto nomem; > - clear_page(pl3t); > + UNMAP_DOMAIN_PAGE(pl3t); > l4e_write(&idle_pg_table[l4_table_offset(va)], > - l4e_from_paddr(__pa(pl3t), __PAGE_HYPERVISOR_RW)); > + l4e_from_mfn(l3mfn, __PAGE_HYPERVISOR_RW)); > } > } > > /* Create user-accessible L2 directory to map the MPT for guests. */ > - if ( (l3_ro_mpt = alloc_xen_pagetable()) == NULL ) > + l3_ro_mpt = alloc_map_clear_xen_pt(&mfn); ... without colliding with this first use of mfn. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |