]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
x86: Add macro that does not save rax, rcx, rdx on stack to disable IBRS
authorTim Chen <tim.c.chen@linux.intel.com>
Fri, 15 Dec 2017 12:25:03 +0000 (04:25 -0800)
committerKirtikar Kashyap <kirtikar.kashyap@oracle.com>
Fri, 12 Jan 2018 18:19:55 +0000 (10:19 -0800)
Orabug: 27344012
CVE: CVE-2017-5715

Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: John Haxby <john.haxby@oracle.com>
Signed-off-by: Kirtikar Kashyap <kirtikar.kashyap@oracle.com>
arch/x86/include/asm/spec_ctrl.h

index de4ce9ee4de8619caae63fce32794a7d82f6a85d..3080f33fbd08259a26bd482f31086eb4c932a50d 100644 (file)
        popq %rdx;                              \
        popq %rcx;                              \
        popq %rax
+#define __ASM_DISABLE_IBRS_CLOBBER             \
+       movl $MSR_IA32_SPEC_CTRL, %ecx;         \
+       movl $0, %edx;                          \
+       movl $0, %eax;                          \
+       wrmsr;
 
 .macro ENABLE_IBRS
 ALTERNATIVE "", __stringify(__ASM_ENABLE_IBRS), X86_FEATURE_SPEC_CTRL
@@ -66,5 +71,9 @@ ALTERNATIVE "", __stringify(__ASM_DISABLE_IBRS), X86_FEATURE_SPEC_CTRL
 ALTERNATIVE "", __stringify(__ASM_SET_IBPB), X86_FEATURE_SPEC_CTRL
 .endm
 
+.macro DISABLE_IBRS_CLOBBER
+ALTERNATIVE "", __stringify(__ASM_DISABLE_IBRS_CLOBBER), X86_FEATURE_SPEC_CTRL
+.endm
+
 #endif /* __ASSEMBLY__ */
 #endif /* _ASM_X86_SPEC_CTRL_H */