lkml.org 
[lkml]   [2022]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 08/17] x86/compressed: efi-mixed: simplify IDT/GDT preserve/restore
    Date
    Tweak the asm and remove some redundant instructions. While at it,
    fix the associated comment for style and correctness.

    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    ---
    arch/x86/boot/compressed/efi_mixed.S | 20 +++++++-------------
    1 file changed, 7 insertions(+), 13 deletions(-)

    diff --git a/arch/x86/boot/compressed/efi_mixed.S b/arch/x86/boot/compressed/efi_mixed.S
    index 8844d8ed4b1c7561..8b02e507d3bb055a 100644
    --- a/arch/x86/boot/compressed/efi_mixed.S
    +++ b/arch/x86/boot/compressed/efi_mixed.S
    @@ -96,24 +96,20 @@ SYM_FUNC_START(__efi64_thunk)

    leaq 0x20(%rsp), %rbx
    sgdt (%rbx)
    -
    - addq $16, %rbx
    - sidt (%rbx)
    + sidt 16(%rbx)

    leaq 1f(%rip), %rbp

    /*
    - * Switch to IDT and GDT with 32-bit segments. This is the firmware GDT
    - * and IDT that was installed when the kernel started executing. The
    - * pointers were saved by the efi32_entry() routine below.
    + * Switch to IDT and GDT with 32-bit segments. These are the firmware
    + * GDT and IDT that were installed when the kernel started executing.
    + * The pointers were saved by the efi32_entry() routine below.
    *
    * Pass the saved DS selector to the 32-bit code, and use far return to
    * restore the saved CS selector.
    */
    - leaq efi32_boot_idt(%rip), %rax
    - lidt (%rax)
    - leaq efi32_boot_gdt(%rip), %rax
    - lgdt (%rax)
    + lidt efi32_boot_idt(%rip)
    + lgdt efi32_boot_gdt(%rip)

    movzwl efi32_boot_ds(%rip), %edx
    movzwq efi32_boot_cs(%rip), %rax
    @@ -187,9 +183,7 @@ SYM_FUNC_START_LOCAL(efi_enter32)
    */
    cli

    - lidtl (%ebx)
    - subl $16, %ebx
    -
    + lidtl 16(%ebx)
    lgdtl (%ebx)

    movl %cr4, %eax
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-11-22 17:12    [W:4.164 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site