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