aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/domain.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-01-23 14:09:41 +0100
committerJan Beulich <jbeulich@suse.com>2013-01-23 14:09:41 +0100
commit02955ee2d15a43ec18f60146064ccb8841909779 (patch)
treef172f575db59dd960ee7e23341cd3d1e1bb3898d /xen/arch/x86/domain.c
parent03b4fd14aca0456b413a1855024d5e5326cc95ec (diff)
downloadxen-02955ee2d15a43ec18f60146064ccb8841909779.tar.gz
xen-02955ee2d15a43ec18f60146064ccb8841909779.tar.bz2
xen-02955ee2d15a43ec18f60146064ccb8841909779.zip
x86: consolidate initialization of PV guest L4 page tables
So far this has been repeated in 3 places, requiring to remember to update all of them if a change is being made. Signed-off-by: Jan Beulich <jbeulich@suse.com>
Diffstat (limited to 'xen/arch/x86/domain.c')
-rw-r--r--xen/arch/x86/domain.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 9582843000..8a1da8059a 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -290,13 +290,8 @@ static int setup_compat_l4(struct vcpu *v)
pg->u.inuse.type_info = PGT_l4_page_table|PGT_validated|1;
l4tab = page_to_virt(pg);
- copy_page(l4tab, idle_pg_table);
- l4tab[0] = l4e_empty();
- l4tab[l4_table_offset(LINEAR_PT_VIRT_START)] =
- l4e_from_page(pg, __PAGE_HYPERVISOR);
- l4tab[l4_table_offset(PERDOMAIN_VIRT_START)] =
- l4e_from_paddr(__pa(v->domain->arch.mm_perdomain_l3),
- __PAGE_HYPERVISOR);
+ clear_page(l4tab);
+ init_guest_l4_table(l4tab, v->domain);
v->arch.guest_table = pagetable_from_page(pg);
v->arch.guest_table_user = v->arch.guest_table;