diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch deleted file mode 100644 index 8b58f32e..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 7a1d0c7758b49b1f107157db33df0aae1c10cf26 Mon Sep 17 00:00:00 2001 -From: Dan Williams <dan.j.williams@intel.com> -Date: Wed, 31 Jan 2018 17:47:03 -0800 -Subject: [PATCH 13/33] x86/kvm: Update spectre-v1 mitigation - -(cherry picked from commit 085331dfc6bbe3501fb936e657331ca943827600) - -Commit 75f139aaf896 "KVM: x86: Add memory barrier on vmcs field lookup" -added a raw 'asm("lfence");' to prevent a bounds check bypass of -'vmcs_field_to_offset_table'. - -The lfence can be avoided in this path by using the array_index_nospec() -helper designed for these types of fixes. - -Signed-off-by: Dan Williams <dan.j.williams@intel.com> -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> -Acked-by: Paolo Bonzini <pbonzini@redhat.com> -Cc: Andrew Honig <ahonig@google.com> -Cc: kvm@vger.kernel.org -Cc: Jim Mattson <jmattson@google.com> -Link: https://lkml.kernel.org/r/151744959670.6342.3001723920950249067.stgit@dwillia2-desk3.amr.corp.intel.com -Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/x86/kvm/vmx.c | 20 +++++++++----------- - 1 file changed, 9 insertions(+), 11 deletions(-) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index 6f3ed0e..af90bc4 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -33,6 +33,7 @@ - #include <linux/slab.h> - #include <linux/tboot.h> - #include <linux/hrtimer.h> -+#include <linux/nospec.h> - #include "kvm_cache_regs.h" - #include "x86.h" - -@@ -856,21 +857,18 @@ static const unsigned short vmcs_field_to_offset_table[] = { - - static inline short vmcs_field_to_offset(unsigned long field) - { -- BUILD_BUG_ON(ARRAY_SIZE(vmcs_field_to_offset_table) > SHRT_MAX); -+ const size_t size = ARRAY_SIZE(vmcs_field_to_offset_table); -+ unsigned short offset; - -- if (field >= ARRAY_SIZE(vmcs_field_to_offset_table)) -+ BUILD_BUG_ON(size > SHRT_MAX); -+ if (field >= size) - return -ENOENT; - -- /* -- * FIXME: Mitigation for CVE-2017-5753. To be replaced with a -- * generic mechanism. -- */ -- asm("lfence"); -- -- if (vmcs_field_to_offset_table[field] == 0) -+ field = array_index_nospec(field, size); -+ offset = vmcs_field_to_offset_table[field]; -+ if (offset == 0) - return -ENOENT; -- -- return vmcs_field_to_offset_table[field]; -+ return offset; - } - - static inline struct vmcs12 *get_vmcs12(struct kvm_vcpu *vcpu) --- -2.7.4 - |