aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0013-x86-kvm-Update-spectre-v1-mitigation.patch
diff options
context:
space:
mode:
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.patch72
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
-