... and move page-aligned data there, instead of having random holes (to fulfill the demanded alignment) in the final image. Signed-off-by: Jan Beulich --- 2010-03-02.orig/xen/arch/x86/boot/x86_32.S 2008-09-23 09:17:27.000000000 +0200 +++ 2010-03-02/xen/arch/x86/boot/x86_32.S 2010-03-09 14:34:38.000000000 +0100 @@ -61,6 +61,8 @@ ignore_int: jnz 0b 1: jmp 1b + .data + ALIGN ENTRY(stack_start) .long cpu0_stack @@ -88,6 +90,7 @@ ENTRY(idle_pg_table) .long sym_phys(idle_pg_table_l2) + 2*PAGE_SIZE + 0x01, 0 .long sym_phys(idle_pg_table_l2) + 3*PAGE_SIZE + 0x01, 0 + .section .data.page_aligned, "aw", @progbits .align PAGE_SIZE, 0 /* NB. Rings != 0 get access up to MACH2PHYS_VIRT_END. This allows access to */ /* the machine->physical mapping table. Ring 0 can access all memory. */ --- 2010-03-02.orig/xen/arch/x86/boot/x86_64.S 2008-09-23 09:17:27.000000000 +0200 +++ 2010-03-02/xen/arch/x86/boot/x86_64.S 2010-03-09 14:35:26.000000000 +0100 @@ -78,7 +78,8 @@ ignore_int: /*** DESCRIPTOR TABLES ***/ - .align 8, 0xCC + .data + .align 8 multiboot_ptr: .long 0 @@ -95,6 +96,7 @@ idt_descr: ENTRY(stack_start) .quad cpu0_stack + .section .data.page_aligned, "aw", @progbits .align PAGE_SIZE, 0 ENTRY(boot_cpu_gdt_table) .quad 0x0000000000000000 /* unused */ --- 2010-03-02.orig/xen/arch/x86/x86_64/compat_kexec.S 2007-07-04 12:13:16.000000000 +0200 +++ 2010-03-02/xen/arch/x86/x86_64/compat_kexec.S 2010-03-09 14:36:10.000000000 +0100 @@ -151,6 +151,8 @@ compatibility_mode: call *%eax ud2 + .data + .align 4 compat_page_list: .fill 12,4,0 @@ -166,7 +168,8 @@ compat_pg_table: .long SYM_PHYS(compat_pg_table_l2) + 2*PAGE_SIZE + 0x01, 0 .long SYM_PHYS(compat_pg_table_l2) + 3*PAGE_SIZE + 0x01, 0 - .align 4096,0 + .section .data.page_aligned, "aw", @progbits + .align PAGE_SIZE,0 compat_pg_table_l2: .macro identmap from=0, count=512 --- 2010-03-02.orig/xen/arch/x86/xen.lds.S 2010-01-18 09:34:04.000000000 +0100 +++ 2010-03-02/xen/arch/x86/xen.lds.S 2010-03-09 14:33:27.000000000 +0100 @@ -53,6 +53,7 @@ SECTIONS } :text .data : { /* Data */ + *(.data.page_aligned) *(.data) CONSTRUCTORS } :text