[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v7 04/11] x86/kexec: convert entry point annotations
Use the generic framework from xen/linkage.h. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- v7: Use alternative approach, un-defining CONFIG_CC_SPLIT_SECTIONS. v6: New. --- a/xen/arch/x86/x86_64/kexec_reloc.S +++ b/xen/arch/x86/x86_64/kexec_reloc.S @@ -13,6 +13,9 @@ .file __FILE__ +/* All contents of .text.kexec wants to be kept together. */ +#undef CONFIG_CC_SPLIT_SECTIONS + #include <xen/kimage.h> #include <asm/asm_defns.h> @@ -21,10 +24,9 @@ #include <asm/machine_kexec.h> .section .text.kexec, "ax", @progbits - .align PAGE_SIZE .code64 -ENTRY(kexec_reloc) +FUNC(kexec_reloc, PAGE_SIZE) /* %rdi - code page maddr */ /* %rsi - page table maddr */ /* %rdx - indirection page maddr */ @@ -91,8 +93,9 @@ ENTRY(kexec_reloc) push $0x10 push %rax lretq +END(kexec_reloc) -relocate_pages: +FUNC_LOCAL(relocate_pages) /* %rdi - indirection page maddr */ pushq %rbx @@ -138,10 +141,11 @@ relocate_pages: .L_done: popq %rbx ret +END(relocate_pages) .code32 -compatibility_mode: +FUNC_LOCAL(compatibility_mode) /* Setup some sane segments. */ movl $0x0008, %eax movl %eax, %ds @@ -168,39 +172,29 @@ compatibility_mode: /* Call the image entry point. This should never return. */ call *%ebp ud2 +END(compatibility_mode) - .align 4 -compat_mode_gdt_desc: +DATA_LOCAL(compat_mode_gdt_desc, 4) .word .Lcompat_mode_gdt_end - compat_mode_gdt -1 .quad 0x0000000000000000 /* set in call_32_bit above */ +END(compat_mode_gdt_desc) - .type compat_mode_gdt_desc, @object - .size compat_mode_gdt_desc, . - compat_mode_gdt_desc - - .align 8 -compat_mode_gdt: +DATA_LOCAL(compat_mode_gdt, 8) .quad 0x0000000000000000 /* null */ .quad 0x00cf93000000ffff /* 0x0008 ring 0 data */ .quad 0x00cf9b000000ffff /* 0x0010 ring 0 code, compatibility */ .Lcompat_mode_gdt_end: +END(compat_mode_gdt) - .type compat_mode_gdt, @object - .size compat_mode_gdt, . - compat_mode_gdt - -compat_mode_idt: +DATA_LOCAL(compat_mode_idt) .word 0 /* limit */ .long 0 /* base */ - - .type compat_mode_idt, @object - .size compat_mode_idt, . - compat_mode_idt +END(compat_mode_idt) /* * 16 words of stack are more than enough. */ - .align 8 -reloc_stack: +DATA_LOCAL(reloc_stack, 8) .fill 16,8,0 .Lreloc_stack_base: - - .type reloc_stack, @object - .size reloc_stack, . - reloc_stack +END(reloc_stack)
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |