diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-04-09 19:24:58 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-04-09 19:24:58 +0300 |
commit | ee1400dda31814d0a61c964ad87da6880edec0e2 (patch) | |
tree | efa8774a97234cf93b22877a51a54f71f9e979cb /arch/x86/entry | |
parent | 071ccc966ba5db1ac8f5c24b0faebb37698f68db (diff) | |
parent | bc16d4052f1ae99996f3475b5a73d29c86e7ba81 (diff) | |
download | linux-ee1400dda31814d0a61c964ad87da6880edec0e2.tar.xz |
Merge branch 'linus' into x86/pti to pick up upstream changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/entry')
-rw-r--r-- | arch/x86/entry/entry_64.S | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index e237913a056b..cb1d8a3b870b 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -55,7 +55,7 @@ END(native_usergs_sysret64) .macro TRACE_IRQS_FLAGS flags:req #ifdef CONFIG_TRACE_IRQFLAGS - bt $9, \flags /* interrupts off? */ + btl $9, \flags /* interrupts off? */ jnc 1f TRACE_IRQS_ON 1: @@ -260,8 +260,13 @@ GLOBAL(entry_SYSCALL_64_after_hwframe) * Change top bits to match most significant bit (47th or 56th bit * depending on paging mode) in the address. */ +#ifdef CONFIG_X86_5LEVEL + ALTERNATIVE "shl $(64 - 48), %rcx; sar $(64 - 48), %rcx", \ + "shl $(64 - 57), %rcx; sar $(64 - 57), %rcx", X86_FEATURE_LA57 +#else shl $(64 - (__VIRTUAL_MASK_SHIFT+1)), %rcx sar $(64 - (__VIRTUAL_MASK_SHIFT+1)), %rcx +#endif /* If this changed %rcx, it was not canonical */ cmpq %rcx, %r11 |