lkml.org 
[lkml]   [2017]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/18] x86/asm/64: Shrink paranoid_exit_restore and make labels local
    Date
    paranoid_exit_restore was a copy of
    restore_regs_and_return_to_kernel. Merge them and make the
    paranoid_exit internal labels local.

    Keeping .Lparanoid_exit makes the code a bit shorter because it
    allows a 2-byte jnz instead of a 5-byte jnz.

    Saves 96 bytes of text.

    (This is still a bit suboptimal in a non-CONFIG_TRACE_IRQFLAGS
    kernel, but fixing that would make the code rather messy.)

    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    ---
    arch/x86/entry/entry_64.S | 13 +++++--------
    1 file changed, 5 insertions(+), 8 deletions(-)

    diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
    index 4ad40067162a..d6404a613df4 100644
    --- a/arch/x86/entry/entry_64.S
    +++ b/arch/x86/entry/entry_64.S
    @@ -1119,17 +1119,14 @@ ENTRY(paranoid_exit)
    DISABLE_INTERRUPTS(CLBR_ANY)
    TRACE_IRQS_OFF_DEBUG
    testl %ebx, %ebx /* swapgs needed? */
    - jnz paranoid_exit_no_swapgs
    + jnz .Lparanoid_exit_no_swapgs
    TRACE_IRQS_IRETQ
    SWAPGS_UNSAFE_STACK
    - jmp paranoid_exit_restore
    -paranoid_exit_no_swapgs:
    + jmp .Lparanoid_exit_restore
    +.Lparanoid_exit_no_swapgs:
    TRACE_IRQS_IRETQ_DEBUG
    -paranoid_exit_restore:
    - RESTORE_EXTRA_REGS
    - RESTORE_C_REGS
    - REMOVE_PT_GPREGS_FROM_STACK 8
    - INTERRUPT_RETURN
    +.Lparanoid_exit_restore:
    + jmp restore_regs_and_return_to_kernel
    END(paranoid_exit)

    /*
    --
    2.13.6
    \
     
     \ /
      Last update: 2017-10-26 10:31    [W:4.073 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site