| From | Ben Hutchings <> | Date | Sat, 10 Aug 2019 21:40:07 +0100 | Subject | [PATCH 3.16 127/157] x86/entry/64: Use JMP instead of JMPQ |
| |
3.16.72-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Josh Poimboeuf <jpoimboe@redhat.com>
commit 64dbc122b20f75183d8822618c24f85144a5a94d upstream.
Somehow the swapgs mitigation entry code patch ended up with a JMPQ instruction instead of JMP, where only the short jump is needed. Some assembler versions apparently fail to optimize JMPQ into a two-byte JMP when possible, instead always using a 7-byte JMP with relocation. For some reason that makes the entry code explode with a #GP during boot.
Change it back to "JMP" as originally intended.
Fixes: 18ec54fdd6d1 ("x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations") Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> [bwh: Backported to 3.16: adjust filename, context] Signed-off-by: Ben Hutchings <ben@decadent.org.uk> --- arch/x86/kernel/entry_64.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S @@ -267,7 +267,7 @@ ENDPROC(native_usergs_sysret64) SWAPGS FENCE_SWAPGS_USER_ENTRY SWITCH_KERNEL_CR3 - jmpq 2f + jmp 2f 1: FENCE_SWAPGS_KERNEL_ENTRY 2:
|