lkml.org 
[lkml]   [2012]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/extable] x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_32.S
    Commit-ID:  6837a54dd6127f055dcb26d00fee0df05c07a674
    Gitweb: http://git.kernel.org/tip/6837a54dd6127f055dcb26d00fee0df05c07a674
    Author: H. Peter Anvin <hpa@zytor.com>
    AuthorDate: Fri, 20 Apr 2012 12:19:50 -0700
    Committer: H. Peter Anvin <hpa@zytor.com>
    CommitDate: Fri, 20 Apr 2012 13:51:38 -0700

    x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_32.S

    Remove open-coded exception table entries in arch/x86/kernel/entry_32.S,
    and replace them with _ASM_EXTABLE() macros; this will allow us to
    change the format and type of the exception table entries.

    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Cc: David Daney <david.daney@cavium.com>
    Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
    ---
    arch/x86/kernel/entry_32.S | 47 +++++++++++++------------------------------
    1 files changed, 14 insertions(+), 33 deletions(-)

    diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
    index 7b784f4..01ccf9b 100644
    --- a/arch/x86/kernel/entry_32.S
    +++ b/arch/x86/kernel/entry_32.S
    @@ -56,6 +56,7 @@
    #include <asm/irq_vectors.h>
    #include <asm/cpufeature.h>
    #include <asm/alternative-asm.h>
    +#include <asm/asm.h>

    /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
    #include <linux/elf-em.h>
    @@ -151,10 +152,8 @@
    .pushsection .fixup, "ax"
    99: movl $0, (%esp)
    jmp 98b
    -.section __ex_table, "a"
    - .align 4
    - .long 98b, 99b
    .popsection
    + _ASM_EXTABLE(98b,99b)
    .endm

    .macro PTGS_TO_GS
    @@ -164,10 +163,8 @@
    .pushsection .fixup, "ax"
    99: movl $0, PT_GS(%esp)
    jmp 98b
    -.section __ex_table, "a"
    - .align 4
    - .long 98b, 99b
    .popsection
    + _ASM_EXTABLE(98b,99b)
    .endm

    .macro GS_TO_REG reg
    @@ -249,12 +246,10 @@
    jmp 2b
    6: movl $0, (%esp)
    jmp 3b
    -.section __ex_table, "a"
    - .align 4
    - .long 1b, 4b
    - .long 2b, 5b
    - .long 3b, 6b
    .popsection
    + _ASM_EXTABLE(1b,4b)
    + _ASM_EXTABLE(2b,5b)
    + _ASM_EXTABLE(3b,6b)
    POP_GS_EX
    .endm

    @@ -415,10 +410,7 @@ sysenter_past_esp:
    jae syscall_fault
    1: movl (%ebp),%ebp
    movl %ebp,PT_EBP(%esp)
    -.section __ex_table,"a"
    - .align 4
    - .long 1b,syscall_fault
    -.previous
    + _ASM_EXTABLE(1b,syscall_fault)

    GET_THREAD_INFO(%ebp)

    @@ -485,10 +477,8 @@ sysexit_audit:
    .pushsection .fixup,"ax"
    2: movl $0,PT_FS(%esp)
    jmp 1b
    -.section __ex_table,"a"
    - .align 4
    - .long 1b,2b
    .popsection
    + _ASM_EXTABLE(1b,2b)
    PTGS_TO_GS_EX
    ENDPROC(ia32_sysenter_target)

    @@ -543,10 +533,7 @@ ENTRY(iret_exc)
    pushl $do_iret_error
    jmp error_code
    .previous
    -.section __ex_table,"a"
    - .align 4
    - .long irq_return,iret_exc
    -.previous
    + _ASM_EXTABLE(irq_return,iret_exc)

    CFI_RESTORE_STATE
    ldt_ss:
    @@ -901,10 +888,7 @@ END(device_not_available)
    #ifdef CONFIG_PARAVIRT
    ENTRY(native_iret)
    iret
    -.section __ex_table,"a"
    - .align 4
    - .long native_iret, iret_exc
    -.previous
    + _ASM_EXTABLE(native_iret, iret_exc)
    END(native_iret)

    ENTRY(native_irq_enable_sysexit)
    @@ -1093,13 +1077,10 @@ ENTRY(xen_failsafe_callback)
    movl %eax,16(%esp)
    jmp 4b
    .previous
    -.section __ex_table,"a"
    - .align 4
    - .long 1b,6b
    - .long 2b,7b
    - .long 3b,8b
    - .long 4b,9b
    -.previous
    + _ASM_EXTABLE(1b,6b)
    + _ASM_EXTABLE(2b,7b)
    + _ASM_EXTABLE(3b,8b)
    + _ASM_EXTABLE(4b,9b)
    ENDPROC(xen_failsafe_callback)

    BUILD_INTERRUPT3(xen_hvm_callback_vector, XEN_HVM_EVTCHN_CALLBACK,
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2012-04-20 23:59    [W:0.035 / U:0.340 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site