diff -r 99559bbc4ecf xen/include/asm-x86/x86_64/page.h --- a/xen/include/asm-x86/x86_64/page.h Wed Aug 30 13:48:25 2006 +0800 +++ b/xen/include/asm-x86/x86_64/page.h Wed Aug 30 14:02:03 2006 +0800 @@ -75,10 +75,13 @@ typedef l4_pgentry_t root_pgentry_t; #define _PAGE_NX_BIT (1U<<23) #define _PAGE_NX (cpu_has_nx ? _PAGE_NX_BIT : 0U) -#define L1_DISALLOW_MASK BASE_DISALLOW_MASK -#define L2_DISALLOW_MASK BASE_DISALLOW_MASK -#define L3_DISALLOW_MASK (BASE_DISALLOW_MASK | 0x180U /* must-be-zero */) -#define L4_DISALLOW_MASK (BASE_DISALLOW_MASK | 0x180U /* must-be-zero */) +/* From spec, the [62:52] is software available for em64t */ +#define BASE_DISALLOW_MASK_64 ((0xFF000180U | _PAGE_GNTTAB) & ~_PAGE_NX) + +#define L1_DISALLOW_MASK BASE_DISALLOW_MASK_64 +#define L2_DISALLOW_MASK BASE_DISALLOW_MASK_64 +#define L3_DISALLOW_MASK (BASE_DISALLOW_MASK_64 | 0x180U /* must-be-zero */) +#define L4_DISALLOW_MASK (BASE_DISALLOW_MASK_64 | 0x180U /* must-be-zero */) #define PAGE_HYPERVISOR (__PAGE_HYPERVISOR | _PAGE_GLOBAL) #define PAGE_HYPERVISOR_NOCACHE (__PAGE_HYPERVISOR_NOCACHE | _PAGE_GLOBAL)