]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/entry/64: Use JMP instead of JMPQ
authorJosh Poimboeuf <jpoimboe@redhat.com>
Mon, 15 Jul 2019 16:51:39 +0000 (11:51 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Aug 2019 11:39:22 +0000 (12:39 +0100)
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

index b4274d9a4e2ea3b7d45a0ef4d1a76470c0260953..467069f38f21c291cbb3eb7840da2a3165946c5b 100644 (file)
@@ -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: