diff mbox

[Wily,SRU] x86/entry/compat: Add missing CLAC to entry_INT80_32

Message ID 1456681662-28551-1-git-send-email-tim.gardner@canonical.com
State New
Headers show

Commit Message

Tim Gardner Feb. 28, 2016, 5:47 p.m. UTC
From: Andy Lutomirski <luto@kernel.org>

BugLink: http://bugs.launchpad.net/bugs/1550517

This doesn't seem to fix a regression -- I don't think the CLAC was
ever there.

I double-checked in a debugger: entries through the int80 gate do
not automatically clear AC.

Stable maintainers: I can provide a backport to 4.3 and earlier if
needed.  This needs to be backported all the way to 3.10.

Reported-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org> # v3.10 and later
Fixes: 63bcff2a307b ("x86, smap: Add STAC and CLAC instructions to control user space access")
Link: http://lkml.kernel.org/r/b02b7e71ae54074be01fc171cbd4b72517055c0e.1456345086.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit 3d44d51bd339766f0178f0cf2e8d048b4a4872aa)
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
 arch/x86/entry/entry_64_compat.S | 1 +
 1 file changed, 1 insertion(+)

Comments

Kamal Mostafa March 3, 2016, 5:37 p.m. UTC | #1
ACK for Wily: Cherry-pick of a cc stable commit.

Note: this appears to be needed for [T,U,V] as well, but would need
backporting to stable releases < 4.2.

 -Kamal
Seth Forshee March 4, 2016, 1:40 p.m. UTC | #2

Brad Figg March 14, 2016, 3:17 p.m. UTC | #3
This came in via a stable upstream release.
diff mbox

Patch

diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
index a7e257d..1adeb50 100644
--- a/arch/x86/entry/entry_64_compat.S
+++ b/arch/x86/entry/entry_64_compat.S
@@ -468,6 +468,7 @@  ENTRY(entry_INT80_compat)
 	 * it is too small to ever cause noticeable irq latency.
 	 */
 	PARAVIRT_ADJUST_EXCEPTION_FRAME
+	ASM_CLAC			/* Do this early to minimize exposure */
 	SWAPGS
 	ENABLE_INTERRUPTS(CLBR_NONE)