x86/asm: Use SYM_INNER_LABEL instead of GLOBAL
[linux-2.6-block.git] / arch / x86 / entry / entry_64.S
index b7c3ea4cb19d45ff11313818b686e1285546a3a1..57d246048ac68b4cd6ecf341e936d7667cddadb9 100644 (file)
@@ -162,7 +162,7 @@ ENTRY(entry_SYSCALL_64)
        pushq   %r11                                    /* pt_regs->flags */
        pushq   $__USER_CS                              /* pt_regs->cs */
        pushq   %rcx                                    /* pt_regs->ip */
-GLOBAL(entry_SYSCALL_64_after_hwframe)
+SYM_INNER_LABEL(entry_SYSCALL_64_after_hwframe, SYM_L_GLOBAL)
        pushq   %rax                                    /* pt_regs->orig_ax */
 
        PUSH_AND_CLEAR_REGS rax=$-ENOSYS
@@ -589,18 +589,18 @@ _ASM_NOKPROBE(interrupt_entry)
  * The interrupt stubs push (~vector+0x80) onto the stack and
  * then jump to common_spurious/interrupt.
  */
-common_spurious:
+SYM_CODE_START_LOCAL(common_spurious)
        addq    $-0x80, (%rsp)                  /* Adjust vector to [-256, -1] range */
        call    interrupt_entry
        UNWIND_HINT_REGS indirect=1
        call    smp_spurious_interrupt          /* rdi points to pt_regs */
        jmp     ret_from_intr
-END(common_spurious)
+SYM_CODE_END(common_spurious)
 _ASM_NOKPROBE(common_spurious)
 
 /* common_interrupt is a hotpath. Align it */
        .p2align CONFIG_X86_L1_CACHE_SHIFT
-common_interrupt:
+SYM_CODE_START_LOCAL(common_interrupt)
        addq    $-0x80, (%rsp)                  /* Adjust vector to [-256, -1] range */
        call    interrupt_entry
        UNWIND_HINT_REGS indirect=1
@@ -616,12 +616,12 @@ ret_from_intr:
        jz      retint_kernel
 
        /* Interrupt came from user space */
-GLOBAL(retint_user)
+.Lretint_user:
        mov     %rsp,%rdi
        call    prepare_exit_to_usermode
        TRACE_IRQS_IRETQ
 
-GLOBAL(swapgs_restore_regs_and_return_to_usermode)
+SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
 #ifdef CONFIG_DEBUG_ENTRY
        /* Assert that pt_regs indicates user mode. */
        testb   $3, CS(%rsp)
@@ -679,7 +679,7 @@ retint_kernel:
         */
        TRACE_IRQS_IRETQ
 
-GLOBAL(restore_regs_and_return_to_kernel)
+SYM_INNER_LABEL(restore_regs_and_return_to_kernel, SYM_L_GLOBAL)
 #ifdef CONFIG_DEBUG_ENTRY
        /* Assert that pt_regs indicates kernel mode. */
        testb   $3, CS(%rsp)
@@ -695,7 +695,7 @@ GLOBAL(restore_regs_and_return_to_kernel)
         */
        INTERRUPT_RETURN
 
-ENTRY(native_iret)
+SYM_INNER_LABEL_ALIGN(native_iret, SYM_L_GLOBAL)
        UNWIND_HINT_IRET_REGS
        /*
         * Are we returning to a stack segment from the LDT?  Note: in
@@ -706,8 +706,7 @@ ENTRY(native_iret)
        jnz     native_irq_return_ldt
 #endif
 
-.global native_irq_return_iret
-native_irq_return_iret:
+SYM_INNER_LABEL(native_irq_return_iret, SYM_L_GLOBAL)
        /*
         * This may fault.  Non-paranoid faults on return to userspace are
         * handled by fixup_bad_iret.  These include #SS, #GP, and #NP.
@@ -789,7 +788,7 @@ native_irq_return_ldt:
         */
        jmp     native_irq_return_iret
 #endif
-END(common_interrupt)
+SYM_CODE_END(common_interrupt)
 _ASM_NOKPROBE(common_interrupt)
 
 /*
@@ -1061,7 +1060,7 @@ EXPORT_SYMBOL(native_load_gs_index)
        _ASM_EXTABLE(.Lgs_change, .Lbad_gs)
        .section .fixup, "ax"
        /* running with kernelgs */
-.Lbad_gs:
+SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs)
        SWAPGS                                  /* switch back to user gs */
 .macro ZAP_GS
        /* This can't be a string because the preprocessor needs to see it. */
@@ -1072,6 +1071,7 @@ EXPORT_SYMBOL(native_load_gs_index)
        xorl    %eax, %eax
        movl    %eax, %gs
        jmp     2b
+SYM_CODE_END(.Lbad_gs)
        .previous
 
 /* Call softirq on interrupt stack. Interrupts are off. */
@@ -1372,7 +1372,7 @@ ENTRY(error_exit)
        TRACE_IRQS_OFF
        testb   $3, CS(%rsp)
        jz      retint_kernel
-       jmp     retint_user
+       jmp     .Lretint_user
 END(error_exit)
 
 /*