diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-01-23 14:09:41 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-01-23 14:09:41 +0100 |
commit | 02955ee2d15a43ec18f60146064ccb8841909779 (patch) | |
tree | f172f575db59dd960ee7e23341cd3d1e1bb3898d /xen/arch/x86/domain.c | |
parent | 03b4fd14aca0456b413a1855024d5e5326cc95ec (diff) | |
download | xen-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.c | 9 |
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; |