Although these are the same values, the 32-bit GDT was the one saved on entry from the bootloader, and it is more accurate to refer to __BOOT_{CS,DS} descriptors, rather than __KERNEL_{CS,DS} which are the descriptors in the 64-bit GDT. Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx> --- arch/x86/boot/compressed/efi_thunk_64.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S index 8fb7f6799c52..4f32f05cbac6 100644 --- a/arch/x86/boot/compressed/efi_thunk_64.S +++ b/arch/x86/boot/compressed/efi_thunk_64.S @@ -58,7 +58,7 @@ SYM_FUNC_START(__efi64_thunk) leaq efi32_boot_gdt(%rip), %rax lgdt (%rax) - pushq $__KERNEL_CS + pushq $__BOOT_CS leaq efi_enter32(%rip), %rax pushq %rax lretq @@ -92,7 +92,7 @@ SYM_FUNC_END(__efi64_thunk) * The stack should represent the 32-bit calling convention. */ SYM_FUNC_START_LOCAL(efi_enter32) - movl $__KERNEL_DS, %eax + movl $__BOOT_DS, %eax movl %eax, %ds movl %eax, %es movl %eax, %ss -- 2.24.1