]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
x86/speculation/mds: Eliminate leaks by trace_hardirqs_on()
authorZhenzhong Duan <zhenzhong.duan@oracle.com>
Sun, 23 Jun 2019 03:35:04 +0000 (11:35 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 26 Jun 2019 13:01:50 +0000 (15:01 +0200)
Move mds_idle_clear_cpu_buffers() after trace_hardirqs_on() to ensure
all store buffer entries are flushed.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: jgross@suse.com
Cc: ndesaulniers@google.com
Cc: gregkh@linuxfoundation.org
Link: https://lkml.kernel.org/r/1561260904-29669-2-git-send-email-zhenzhong.duan@oracle.com
arch/x86/include/asm/mwait.h

index eb0f80ce8524d415884d11ecbe555e6a778edfa5..e28f8b723b5c17d4d26f649f84c89781cdbbf738 100644 (file)
@@ -86,9 +86,9 @@ static inline void __mwaitx(unsigned long eax, unsigned long ebx,
 
 static inline void __sti_mwait(unsigned long eax, unsigned long ecx)
 {
-       mds_idle_clear_cpu_buffers();
-
        trace_hardirqs_on();
+
+       mds_idle_clear_cpu_buffers();
        /* "mwait %eax, %ecx;" */
        asm volatile("sti; .byte 0x0f, 0x01, 0xc9;"
                     :: "a" (eax), "c" (ecx));