|
Jiri Slaby |
a78eda |
From: Thomas Gleixner <tglx@linutronix.de>
|
|
Jiri Slaby |
a78eda |
Date: Wed, 4 Mar 2020 12:49:18 +0100
|
|
Jiri Slaby |
a78eda |
Subject: x86/speculation/mds: Mark mds_user_clear_cpu_buffers()
|
|
Jiri Slaby |
a78eda |
__always_inline
|
|
Jiri Slaby |
a78eda |
Git-commit: a7ef9ba986b5fae9d80f8a7b31db0423687efe4e
|
|
Jiri Slaby |
a78eda |
Patch-mainline: 5.8-rc1
|
|
Jiri Slaby |
a78eda |
References: git-fixes
|
|
Jiri Slaby |
a78eda |
|
|
Jiri Slaby |
a78eda |
Prevent the compiler from uninlining and creating traceable/probable
|
|
Jiri Slaby |
a78eda |
functions as this is invoked _after_ context tracking switched to
|
|
Jiri Slaby |
a78eda |
CONTEXT_USER and rcu idle.
|
|
Jiri Slaby |
a78eda |
|
|
Jiri Slaby |
a78eda |
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
Jiri Slaby |
a78eda |
Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
|
|
Jiri Slaby |
a78eda |
Acked-by: Peter Zijlstra <peterz@infradead.org>
|
|
Jiri Slaby |
a78eda |
Link: https://lkml.kernel.org/r/20200505134340.902709267@linutronix.de
|
|
Jiri Slaby |
a78eda |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
a78eda |
---
|
|
Jiri Slaby |
a78eda |
arch/x86/include/asm/nospec-branch.h | 4 ++--
|
|
Jiri Slaby |
a78eda |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Jiri Slaby |
a78eda |
|
|
Jiri Slaby |
a78eda |
diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h
|
|
Jiri Slaby |
a78eda |
index d52d1aac..e7752b40 100644
|
|
Jiri Slaby |
a78eda |
--- a/arch/x86/include/asm/nospec-branch.h
|
|
Jiri Slaby |
a78eda |
+++ b/arch/x86/include/asm/nospec-branch.h
|
|
Jiri Slaby |
a78eda |
@@ -262,7 +262,7 @@ DECLARE_STATIC_KEY_FALSE(mds_idle_clear);
|
|
Jiri Slaby |
a78eda |
* combination with microcode which triggers a CPU buffer flush when the
|
|
Jiri Slaby |
a78eda |
* instruction is executed.
|
|
Jiri Slaby |
a78eda |
*/
|
|
Jiri Slaby |
a78eda |
-static inline void mds_clear_cpu_buffers(void)
|
|
Jiri Slaby |
a78eda |
+static __always_inline void mds_clear_cpu_buffers(void)
|
|
Jiri Slaby |
a78eda |
{
|
|
Jiri Slaby |
a78eda |
static const u16 ds = __KERNEL_DS;
|
|
Jiri Slaby |
a78eda |
|
|
Jiri Slaby |
a78eda |
@@ -283,7 +283,7 @@ static inline void mds_clear_cpu_buffers(void)
|
|
Jiri Slaby |
a78eda |
*
|
|
Jiri Slaby |
a78eda |
* Clear CPU buffers if the corresponding static key is enabled
|
|
Jiri Slaby |
a78eda |
*/
|
|
Jiri Slaby |
a78eda |
-static inline void mds_user_clear_cpu_buffers(void)
|
|
Jiri Slaby |
a78eda |
+static __always_inline void mds_user_clear_cpu_buffers(void)
|
|
Jiri Slaby |
a78eda |
{
|
|
Jiri Slaby |
a78eda |
if (static_branch_likely(&mds_user_clear))
|
|
Jiri Slaby |
a78eda |
mds_clear_cpu_buffers();
|
|
Jiri Slaby |
a78eda |
--
|
|
Jiri Slaby |
a78eda |
2.35.3
|
|
Jiri Slaby |
a78eda |
|