aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch145
1 files changed, 0 insertions, 145 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch
deleted file mode 100644
index e3e0a67d..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0072-x86-bugs-Unify-x86_spec_ctrl_-set_guest-restore_host.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From f30cba1d35ebb9a07ebd54253086280080b366a6 Mon Sep 17 00:00:00 2001
-From: Borislav Petkov <bp@suse.de>
-Date: Sat, 12 May 2018 00:14:51 +0200
-Subject: [PATCH 72/93] x86/bugs: Unify x86_spec_ctrl_{set_guest,restore_host}
-
-commit cc69b34989210f067b2c51d5539b5f96ebcc3a01 upstream
-
-Function bodies are very similar and are going to grow more almost
-identical code. Add a bool arg to determine whether SPEC_CTRL is being set
-for the guest or restored to the host.
-
-No functional changes.
-
-Signed-off-by: Borislav Petkov <bp@suse.de>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/spec-ctrl.h | 33 +++++++++++++++++++---
- arch/x86/kernel/cpu/bugs.c | 60 ++++++++++------------------------------
- 2 files changed, 44 insertions(+), 49 deletions(-)
-
-diff --git a/arch/x86/include/asm/spec-ctrl.h b/arch/x86/include/asm/spec-ctrl.h
-index 82b6c5a..9cecbe5 100644
---- a/arch/x86/include/asm/spec-ctrl.h
-+++ b/arch/x86/include/asm/spec-ctrl.h
-@@ -13,10 +13,35 @@
- * Takes the guest view of SPEC_CTRL MSR as a parameter and also
- * the guest's version of VIRT_SPEC_CTRL, if emulated.
- */
--extern void x86_spec_ctrl_set_guest(u64 guest_spec_ctrl,
-- u64 guest_virt_spec_ctrl);
--extern void x86_spec_ctrl_restore_host(u64 guest_spec_ctrl,
-- u64 guest_virt_spec_ctrl);
-+extern void x86_virt_spec_ctrl(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl, bool guest);
-+
-+/**
-+ * x86_spec_ctrl_set_guest - Set speculation control registers for the guest
-+ * @guest_spec_ctrl: The guest content of MSR_SPEC_CTRL
-+ * @guest_virt_spec_ctrl: The guest controlled bits of MSR_VIRT_SPEC_CTRL
-+ * (may get translated to MSR_AMD64_LS_CFG bits)
-+ *
-+ * Avoids writing to the MSR if the content/bits are the same
-+ */
-+static inline
-+void x86_spec_ctrl_set_guest(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl)
-+{
-+ x86_virt_spec_ctrl(guest_spec_ctrl, guest_virt_spec_ctrl, true);
-+}
-+
-+/**
-+ * x86_spec_ctrl_restore_host - Restore host speculation control registers
-+ * @guest_spec_ctrl: The guest content of MSR_SPEC_CTRL
-+ * @guest_virt_spec_ctrl: The guest controlled bits of MSR_VIRT_SPEC_CTRL
-+ * (may get translated to MSR_AMD64_LS_CFG bits)
-+ *
-+ * Avoids writing to the MSR if the content/bits are the same
-+ */
-+static inline
-+void x86_spec_ctrl_restore_host(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl)
-+{
-+ x86_virt_spec_ctrl(guest_spec_ctrl, guest_virt_spec_ctrl, false);
-+}
-
- /* AMD specific Speculative Store Bypass MSR data */
- extern u64 x86_amd_ls_cfg_base;
-diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
-index eddbdc8..9203150 100644
---- a/arch/x86/kernel/cpu/bugs.c
-+++ b/arch/x86/kernel/cpu/bugs.c
-@@ -150,55 +150,25 @@ u64 x86_spec_ctrl_get_default(void)
- }
- EXPORT_SYMBOL_GPL(x86_spec_ctrl_get_default);
-
--/**
-- * x86_spec_ctrl_set_guest - Set speculation control registers for the guest
-- * @guest_spec_ctrl: The guest content of MSR_SPEC_CTRL
-- * @guest_virt_spec_ctrl: The guest controlled bits of MSR_VIRT_SPEC_CTRL
-- * (may get translated to MSR_AMD64_LS_CFG bits)
-- *
-- * Avoids writing to the MSR if the content/bits are the same
-- */
--void x86_spec_ctrl_set_guest(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl)
-+void
-+x86_virt_spec_ctrl(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl, bool setguest)
- {
-- u64 host = x86_spec_ctrl_base;
-+ struct thread_info *ti = current_thread_info();
-+ u64 msr, host = x86_spec_ctrl_base;
-
- /* Is MSR_SPEC_CTRL implemented ? */
-- if (!static_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
-- return;
--
-- /* SSBD controlled in MSR_SPEC_CTRL */
-- if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD))
-- host |= ssbd_tif_to_spec_ctrl(current_thread_info()->flags);
--
-- if (host != guest_spec_ctrl)
-- wrmsrl(MSR_IA32_SPEC_CTRL, guest_spec_ctrl);
--}
--EXPORT_SYMBOL_GPL(x86_spec_ctrl_set_guest);
--
--/**
-- * x86_spec_ctrl_restore_host - Restore host speculation control registers
-- * @guest_spec_ctrl: The guest content of MSR_SPEC_CTRL
-- * @guest_virt_spec_ctrl: The guest controlled bits of MSR_VIRT_SPEC_CTRL
-- * (may get translated to MSR_AMD64_LS_CFG bits)
-- *
-- * Avoids writing to the MSR if the content/bits are the same
-- */
--void x86_spec_ctrl_restore_host(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl)
--{
-- u64 host = x86_spec_ctrl_base;
--
-- /* Is MSR_SPEC_CTRL implemented ? */
-- if (!static_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
-- return;
--
-- /* SSBD controlled in MSR_SPEC_CTRL */
-- if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD))
-- host |= ssbd_tif_to_spec_ctrl(current_thread_info()->flags);
--
-- if (host != guest_spec_ctrl)
-- wrmsrl(MSR_IA32_SPEC_CTRL, host);
-+ if (static_cpu_has(X86_FEATURE_MSR_SPEC_CTRL)) {
-+ /* SSBD controlled in MSR_SPEC_CTRL */
-+ if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD))
-+ host |= ssbd_tif_to_spec_ctrl(ti->flags);
-+
-+ if (host != guest_spec_ctrl) {
-+ msr = setguest ? guest_spec_ctrl : host;
-+ wrmsrl(MSR_IA32_SPEC_CTRL, msr);
-+ }
-+ }
- }
--EXPORT_SYMBOL_GPL(x86_spec_ctrl_restore_host);
-+EXPORT_SYMBOL_GPL(x86_virt_spec_ctrl);
-
- static void x86_amd_ssb_disable(void)
- {
---
-2.7.4
-