ia64/xen-unstable

changeset 15057:05b5b126eb4c

[HVM] Fix shadow remove-write-access heuristic for 64bit w2k3 linear map.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
author Tim Deegan <Tim.Deegan@xensource.com>
date Tue May 08 10:32:05 2007 +0100 (2007-05-08)
parents 9d0dbe9c4d6b
children 03b8e82b4a77
files xen/arch/x86/mm/shadow/common.c
line diff
     1.1 --- a/xen/arch/x86/mm/shadow/common.c	Mon May 07 13:58:42 2007 +0100
     1.2 +++ b/xen/arch/x86/mm/shadow/common.c	Tue May 08 10:32:05 2007 +0100
     1.3 @@ -1764,12 +1764,15 @@ int sh_remove_write_access(struct vcpu *
     1.4  #if CONFIG_PAGING_LEVELS >= 4
     1.5          else if ( v->arch.paging.mode->guest_levels == 4 )
     1.6          {
     1.7 -            /* 64bit w2k3: linear map at 0x0000070000000000 */
     1.8 +            /* 64bit w2k3: linear map at 0xfffff68000000000 */
     1.9              switch ( level ) 
    1.10              {
    1.11 -            case 1: GUESS(0x70000000000UL + (fault_addr >> 9), 3); break;
    1.12 -            case 2: GUESS(0x70380000000UL + (fault_addr >> 18), 3); break;
    1.13 -            case 3: GUESS(0x70381C00000UL + (fault_addr >> 27), 3); break;
    1.14 +            case 1: GUESS(0xfffff68000000000UL 
    1.15 +                          + ((fault_addr & VADDR_MASK) >> 9), 3); break;
    1.16 +            case 2: GUESS(0xfffff6fb40000000UL
    1.17 +                          + ((fault_addr & VADDR_MASK) >> 18), 3); break;
    1.18 +            case 3: GUESS(0xfffff6fb7da00000UL 
    1.19 +                          + ((fault_addr & VADDR_MASK) >> 27), 3); break;
    1.20              }
    1.21  
    1.22              /* 64bit Linux direct map at 0xffff810000000000; older kernels