|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86/kexec: Drop compatibility_mode_far
commit 55fbecb64e512b191d8e4ca1c4516f92357b866e
Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Thu Oct 28 20:03:21 2021 +0100
Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Tue Jan 23 19:09:18 2024 +0000
x86/kexec: Drop compatibility_mode_far
LJMP is (famously?) incompatible between Intel and AMD CPUs, and while we're
using one of the compatible forms, we've got a good stack and LRET is the
far
more common way of doing this.
No functional change.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
xen/arch/x86/x86_64/kexec_reloc.S | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/xen/arch/x86/x86_64/kexec_reloc.S
b/xen/arch/x86/x86_64/kexec_reloc.S
index f4842025eb..035164e96f 100644
--- a/xen/arch/x86/x86_64/kexec_reloc.S
+++ b/xen/arch/x86/x86_64/kexec_reloc.S
@@ -86,12 +86,11 @@ ENTRY(kexec_reloc)
movq %rax, (compat_mode_gdt_desc + 2)(%rip)
lgdt compat_mode_gdt_desc(%rip)
- /* Relocate compatibility mode entry point address. */
- leal compatibility_mode(%rip), %eax
- movl %eax, compatibility_mode_far(%rip)
-
/* Enter compatibility mode. */
- ljmp *compatibility_mode_far(%rip)
+ lea compatibility_mode(%rip), %rax
+ push $0x10
+ push %rax
+ lretq
relocate_pages:
/* %rdi - indirection page maddr */
@@ -171,13 +170,6 @@ compatibility_mode:
ud2
.align 4
-compatibility_mode_far:
- .long 0x00000000 /* set in call_32_bit above */
- .word 0x0010
-
- .type compatibility_mode_far, @object
- .size compatibility_mode_far, . - compatibility_mode_far
-
compat_mode_gdt_desc:
.word .Lcompat_mode_gdt_end - compat_mode_gdt -1
.quad 0x0000000000000000 /* set in call_32_bit above */
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |