ia64/xen-unstable

changeset 16376:6c544894b8b2

x86: GDT reserved page should be a full page.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir@xensource.com>
date Tue Nov 13 19:21:00 2007 +0000 (2007-11-13)
parents a35586bd493b
children 44f24d717299
files xen/arch/x86/boot/x86_32.S xen/arch/x86/boot/x86_64.S
line diff
     1.1 --- a/xen/arch/x86/boot/x86_32.S	Tue Nov 13 19:05:27 2007 +0000
     1.2 +++ b/xen/arch/x86/boot/x86_32.S	Tue Nov 13 19:21:00 2007 +0000
     1.3 @@ -80,6 +80,16 @@ gdt_descr:
     1.4          .word   LAST_RESERVED_GDT_BYTE
     1.5          .long   gdt_table - FIRST_RESERVED_GDT_BYTE
     1.6  
     1.7 +
     1.8 +#ifdef CONFIG_X86_PAE
     1.9 +        .align 32
    1.10 +ENTRY(idle_pg_table)
    1.11 +        .long sym_phys(idle_pg_table_l2) + 0*PAGE_SIZE + 0x01, 0
    1.12 +        .long sym_phys(idle_pg_table_l2) + 1*PAGE_SIZE + 0x01, 0
    1.13 +        .long sym_phys(idle_pg_table_l2) + 2*PAGE_SIZE + 0x01, 0
    1.14 +        .long sym_phys(idle_pg_table_l2) + 3*PAGE_SIZE + 0x01, 0
    1.15 +#endif
    1.16 +
    1.17          .align PAGE_SIZE, 0
    1.18  /* NB. Rings != 0 get access up to MACH2PHYS_VIRT_END. This allows access to */
    1.19  /*     the machine->physical mapping table. Ring 0 can access all memory.    */
    1.20 @@ -94,14 +104,4 @@ ENTRY(gdt_table)
    1.21          GUEST_DESC(0x00c0b200)       /* 0xe021 ring 1 3.xxGB data at 0x0 */
    1.22          GUEST_DESC(0x00c0fa00)       /* 0xe02b ring 3 3.xxGB code at 0x0 */
    1.23          GUEST_DESC(0x00c0f200)       /* 0xe033 ring 3 3.xxGB data at 0x0 */
    1.24 -        .quad 0x0000000000000000     /* unused                           */
    1.25 -        .fill 2*NR_CPUS,8,0          /* space for TSS and LDT per CPU    */
    1.26 -
    1.27 -#ifdef CONFIG_X86_PAE
    1.28 -        .align 32
    1.29 -ENTRY(idle_pg_table)
    1.30 -        .long sym_phys(idle_pg_table_l2) + 0*PAGE_SIZE + 0x01, 0
    1.31 -        .long sym_phys(idle_pg_table_l2) + 1*PAGE_SIZE + 0x01, 0
    1.32 -        .long sym_phys(idle_pg_table_l2) + 2*PAGE_SIZE + 0x01, 0
    1.33 -        .long sym_phys(idle_pg_table_l2) + 3*PAGE_SIZE + 0x01, 0
    1.34 -#endif
    1.35 +        .align PAGE_SIZE,0
     2.1 --- a/xen/arch/x86/boot/x86_64.S	Tue Nov 13 19:05:27 2007 +0000
     2.2 +++ b/xen/arch/x86/boot/x86_64.S	Tue Nov 13 19:21:00 2007 +0000
     2.3 @@ -105,8 +105,6 @@ ENTRY(gdt_table)
     2.4          .quad 0x00cff2000000ffff     /* 0xe02b ring 3 data                */
     2.5          .quad 0x00affa000000ffff     /* 0xe033 ring 3 code, 64-bit mode   */
     2.6          .quad 0x00cf9a000000ffff     /* 0xe038 ring 0 code, compatibility */
     2.7 -        .org gdt_table - FIRST_RESERVED_GDT_BYTE + __TSS(0) * 8
     2.8 -        .fill 4*NR_CPUS,8,0          /* space for TSS and LDT per CPU     */
     2.9  
    2.10          .align PAGE_SIZE, 0
    2.11  /* NB. Even rings != 0 get access to the full 4Gb, as only the            */
    2.12 @@ -120,5 +118,4 @@ ENTRY(compat_gdt_table)
    2.13          .quad 0x00cffa000000ffff     /* 0xe02b ring 3 code, compatibility */
    2.14          .quad 0x00cff2000000ffff     /* 0xe033 ring 3 data                */
    2.15          .quad 0x00cf9a000000ffff     /* 0xe038 ring 0 code, compatibility */
    2.16 -        .org compat_gdt_table - FIRST_RESERVED_GDT_BYTE + __TSS(0) * 8
    2.17 -        .fill 4*NR_CPUS,8,0          /* space for TSS and LDT per CPU     */
    2.18 +        .align PAGE_SIZE, 0