[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 06/17] x86: allow per-domain mappings without NX bit or with specific mfn
For support of per-vcpu stacks we need per-vcpu trampolines. To be able to put those into the per-domain mappings the upper levels page tables must not have NX set for per-domain mappings. As create_perdomain_mapping() creates L1 mappings with flags being __PAGE_HYPERVISOR_RW this won't change any of the current per domain mappings to become executable. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- V3: - remove functions for modifying per-domain mappings (Jan Beulich) --- xen/arch/x86/mm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index e795239829..d86e07e9f8 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1568,7 +1568,7 @@ void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn, /* Slot 260: Per-domain mappings (if applicable). */ l4t[l4_table_offset(PERDOMAIN_VIRT_START)] = - d ? l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW) + d ? l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR) : l4e_empty(); /* Slot 261-: text/data/bss, RW M2P, vmap, frametable, directmap. */ @@ -5319,7 +5319,7 @@ int create_perdomain_mapping(struct domain *d, unsigned long va, } l2tab = __map_domain_page(pg); clear_page(l2tab); - l3tab[l3_table_offset(va)] = l3e_from_page(pg, __PAGE_HYPERVISOR_RW); + l3tab[l3_table_offset(va)] = l3e_from_page(pg, __PAGE_HYPERVISOR); } else l2tab = map_l2t_from_l3e(l3tab[l3_table_offset(va)]); @@ -5361,7 +5361,7 @@ int create_perdomain_mapping(struct domain *d, unsigned long va, l1tab = __map_domain_page(pg); } clear_page(l1tab); - *pl2e = l2e_from_page(pg, __PAGE_HYPERVISOR_RW); + *pl2e = l2e_from_page(pg, __PAGE_HYPERVISOR); } else if ( !l1tab ) l1tab = map_l1t_from_l2e(*pl2e); -- 2.13.6 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |