@@ -218,6 +218,8 @@ entry_SYSCALL_64_fastpath:
testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
jnz int_ret_from_sys_call_irqs_off /* Go to the slow path */
+ call mds_user_clear_buffers
+
movq RIP(%rsp), %rcx
movq EFLAGS(%rsp), %r11
RESTORE_C_REGS_EXCEPT_RCX_R11
@@ -85,4 +85,6 @@ static inline void speculative_store_byp
extern void speculation_ctrl_update(unsigned long tif);
extern void speculation_ctrl_update_current(void);
+extern void mds_user_clear_buffers(void);
+
#endif
@@ -263,6 +263,11 @@ static int __init mds_cmdline(char *str)
}
early_param("mds", mds_cmdline);
+void mds_user_clear_buffers(void)
+{
+ mds_user_clear_cpu_buffers();
+}
+
#undef pr_fmt
#define pr_fmt(fmt) "TAA: " fmt