ia64/xen-unstable

changeset 6759:888094e5ac07

This patch remove the L2 pin for 1:1 page table on control panel.
L2 pin for 1:1 page table on control panel cause entries for top 64M
address changed by alloc_l2_table().

Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
author kaf24@firebug.cl.cam.ac.uk
date Mon Sep 12 17:48:07 2005 +0000 (2005-09-12)
parents 7ae8090e5f67
children 219d96d545fc
files tools/libxc/xc_vmx_build.c xen/arch/x86/domain.c xen/arch/x86/vmx.c
line diff
     1.1 --- a/tools/libxc/xc_vmx_build.c	Mon Sep 12 14:11:59 2005 +0000
     1.2 +++ b/tools/libxc/xc_vmx_build.c	Mon Sep 12 17:48:07 2005 +0000
     1.3 @@ -578,15 +578,6 @@ static int setup_guest(int xc_handle,
     1.4      sp->sp_global.eport = control_evtchn;
     1.5      munmap(sp, PAGE_SIZE);
     1.6  
     1.7 -    /*
     1.8 -     * Pin down l2tab addr as page dir page - causes hypervisor to provide
     1.9 -     * correct protection for the page
    1.10 -     */ 
    1.11 -#ifdef __i386__
    1.12 -    if ( pin_table(xc_handle, MMUEXT_PIN_L2_TABLE, l2tab>>PAGE_SHIFT, dom) )
    1.13 -        goto error_out;
    1.14 -#endif
    1.15 -
    1.16      /* Send the page update requests down to the hypervisor. */
    1.17      if ( xc_finish_mmu_updates(xc_handle, mmu) )
    1.18          goto error_out;
     2.1 --- a/xen/arch/x86/domain.c	Mon Sep 12 14:11:59 2005 +0000
     2.2 +++ b/xen/arch/x86/domain.c	Mon Sep 12 17:48:07 2005 +0000
     2.3 @@ -461,14 +461,11 @@ int arch_set_info_guest(
     2.4          if ( !get_page(&frame_table[phys_basetab>>PAGE_SHIFT], d) )
     2.5              return -EINVAL;
     2.6      }
     2.7 -    else
     2.8 +    else if ( !(c->flags & VGCF_VMX_GUEST) )
     2.9      {
    2.10 -#ifdef __x86_64__
    2.11 -        if ( !(c->flags & VGCF_VMX_GUEST) )
    2.12 -#endif
    2.13 -            if ( !get_page_and_type(&frame_table[phys_basetab>>PAGE_SHIFT], d, 
    2.14 -                                    PGT_base_page_table) )
    2.15 -                return -EINVAL;
    2.16 +        if ( !get_page_and_type(&frame_table[phys_basetab>>PAGE_SHIFT], d, 
    2.17 +                                PGT_base_page_table) )
    2.18 +            return -EINVAL;
    2.19      }
    2.20  
    2.21      if ( (rc = (int)set_gdt(v, c->gdt_frames, c->gdt_ents)) != 0 )
     3.1 --- a/xen/arch/x86/vmx.c	Mon Sep 12 14:11:59 2005 +0000
     3.2 +++ b/xen/arch/x86/vmx.c	Mon Sep 12 17:48:07 2005 +0000
     3.3 @@ -1082,11 +1082,6 @@ static int vmx_set_cr0(unsigned long val
     3.4              VMX_DBG_LOG(DBG_LEVEL_1, "enable PAE on cr4\n");
     3.5              __vmwrite(GUEST_CR4, crn | X86_CR4_PAE);
     3.6          }
     3.7 -#elif defined( __i386__)
     3.8 -        unsigned long old_base_mfn;
     3.9 -        old_base_mfn = pagetable_get_pfn(d->arch.guest_table);
    3.10 -        if (old_base_mfn)
    3.11 -            put_page(pfn_to_page(old_base_mfn));
    3.12  #endif
    3.13          /*
    3.14           * Now arch.guest_table points to machine physical.