From: tip-bot for David Woodhouse <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: dwmw@amazon.co.uk, arjan@linux.intel.com,
torvalds@linux-foundation.org, gregkh@linuxfoundation.org,
bp@alien8.de, hpa@zytor.com, jpoimboe@redhat.com,
peterz@infradead.org, dave.hansen@linux.intel.com,
luto@kernel.org, dwmw2@infradead.org, dan.j.williams@intel.com,
linux-kernel@vger.kernel.org, tglx@linutronix.de,
mingo@kernel.org
Subject: [tip:x86/pti] Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()"
Date: Sun, 11 Feb 2018 04:09:25 -0800 [thread overview]
Message-ID: <tip-930ce1a7a55bc0eb8917f453ee22f1b6d67df5cd@git.kernel.org> (raw)
In-Reply-To: <1518305967-31356-3-git-send-email-dwmw@amazon.co.uk>
Commit-ID: 930ce1a7a55bc0eb8917f453ee22f1b6d67df5cd
Gitweb: https://git.kernel.org/tip/930ce1a7a55bc0eb8917f453ee22f1b6d67df5cd
Author: David Woodhouse <dwmw@amazon.co.uk>
AuthorDate: Sat, 10 Feb 2018 23:39:23 +0000
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Sun, 11 Feb 2018 11:24:15 +0100
Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()"
This reverts commit 64e16720ea0879f8ab4547e3b9758936d483909b.
We cannot call C functions like that, without marking all the
call-clobbered registers as, well, clobbered. We might have got away
with it for now because the __ibp_barrier() function was *fairly*
unlikely to actually use any other registers. But no. Just no.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: arjan.van.de.ven@intel.com
Cc: dave.hansen@intel.com
Cc: jmattson@google.com
Cc: karahmed@amazon.de
Cc: kvm@vger.kernel.org
Cc: pbonzini@redhat.com
Cc: rkrcmar@redhat.com
Cc: sironi@amazon.de
Link: http://lkml.kernel.org/r/1518305967-31356-3-git-send-email-dwmw@amazon.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/asm/nospec-branch.h | 13 +++++++++----
arch/x86/include/asm/processor.h | 3 ---
arch/x86/kernel/cpu/bugs.c | 6 ------
3 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h
index 4d57894..300cc15 100644
--- a/arch/x86/include/asm/nospec-branch.h
+++ b/arch/x86/include/asm/nospec-branch.h
@@ -164,10 +164,15 @@ static inline void vmexit_fill_RSB(void)
static inline void indirect_branch_prediction_barrier(void)
{
- alternative_input("",
- "call __ibp_barrier",
- X86_FEATURE_USE_IBPB,
- ASM_NO_INPUT_CLOBBER("eax", "ecx", "edx", "memory"));
+ asm volatile(ALTERNATIVE("",
+ "movl %[msr], %%ecx\n\t"
+ "movl %[val], %%eax\n\t"
+ "movl $0, %%edx\n\t"
+ "wrmsr",
+ X86_FEATURE_USE_IBPB)
+ : : [msr] "i" (MSR_IA32_PRED_CMD),
+ [val] "i" (PRED_CMD_IBPB)
+ : "eax", "ecx", "edx", "memory");
}
#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 513f960..99799fb 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -969,7 +969,4 @@ bool xen_set_default_idle(void);
void stop_this_cpu(void *dummy);
void df_debug(struct pt_regs *regs, long error_code);
-
-void __ibp_barrier(void);
-
#endif /* _ASM_X86_PROCESSOR_H */
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 71949bf..61152aa 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -337,9 +337,3 @@ ssize_t cpu_show_spectre_v2(struct device *dev,
spectre_v2_module_string());
}
#endif
-
-void __ibp_barrier(void)
-{
- __wrmsr(MSR_IA32_PRED_CMD, PRED_CMD_IBPB, 0);
-}
-EXPORT_SYMBOL_GPL(__ibp_barrier);
next prev parent reply other threads:[~2018-02-11 12:09 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-10 23:39 [PATCH v2 0/6] Spectre v2 updates David Woodhouse
2018-02-10 23:39 ` [PATCH v2 1/6] x86/speculation: Update Speculation Control microcode blacklist David Woodhouse
2018-02-11 12:08 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-02-12 9:50 ` [PATCH v2 1/6] " Darren Kenny
2018-02-12 14:16 ` David Woodhouse
2018-02-12 14:32 ` Thomas Gleixner
2018-02-10 23:39 ` [PATCH v2 2/6] Revert "x86/speculation: Simplify indirect_branch_prediction_barrier()" David Woodhouse
2018-02-11 12:09 ` tip-bot for David Woodhouse [this message]
2018-02-13 8:58 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-02-13 9:41 ` Peter Zijlstra
2018-02-13 11:28 ` Ingo Molnar
2018-02-13 13:28 ` Peter Zijlstra
2018-02-13 13:38 ` Ingo Molnar
2018-02-13 15:26 ` [tip:x86/pti] x86/speculation: Add <asm/msr-index.h> dependency tip-bot for Peter Zijlstra
2018-02-15 0:28 ` tip-bot for Peter Zijlstra
2018-02-10 23:39 ` [PATCH v2 3/6] KVM: x86: Reduce retpoline performance impact in slot_handle_level_range() David Woodhouse
2018-02-11 12:09 ` [tip:x86/pti] KVM/x86: Reduce retpoline performance impact in slot_handle_level_range(), by always inlining iterator helper methods tip-bot for David Woodhouse
2018-02-13 8:58 ` tip-bot for David Woodhouse
2018-02-10 23:39 ` [PATCH v2 4/6] X86/nVMX: Properly set spec_ctrl and pred_cmd before merging MSRs David Woodhouse
2018-02-11 12:10 ` [tip:x86/pti] " tip-bot for KarimAllah Ahmed
2018-02-13 8:59 ` tip-bot for KarimAllah Ahmed
2018-02-10 23:39 ` [PATCH v2 5/6] KVM/nVMX: Set the CPU_BASED_USE_MSR_BITMAPS if we have a valid L02 MSR bitmap David Woodhouse
2018-02-11 10:19 ` Ingo Molnar
[not found] ` <1518345844.3677.365.camel@amazon.co.uk>
2018-02-11 10:55 ` Ingo Molnar
2018-02-11 12:10 ` [tip:x86/pti] " tip-bot for KarimAllah Ahmed
2018-02-13 8:59 ` tip-bot for KarimAllah Ahmed
2018-02-10 23:39 ` [PATCH v2 6/6] x86/speculation: Use IBRS if available before calling into firmware David Woodhouse
2018-02-11 11:46 ` Ingo Molnar
2018-02-11 10:41 ` [PATCH v2 0/6] Spectre v2 updates Ingo Molnar
2018-02-11 15:19 ` [PATCH v2.1] x86/speculation: Use IBRS if available before calling into firmware David Woodhouse
2018-02-11 18:50 ` [PATCH] x86/speculation: Clean up various Spectre related details Ingo Molnar
2018-02-11 19:25 ` David Woodhouse
2018-02-11 19:43 ` Ingo Molnar
2018-02-12 15:30 ` David Woodhouse
2018-02-13 8:04 ` Ingo Molnar
2018-02-11 19:19 ` [tip:x86/pti] x86/speculation: Use IBRS if available before calling into firmware tip-bot for David Woodhouse
2018-02-12 5:59 ` afzal mohammed
2018-02-12 16:30 ` David Woodhouse
2018-02-12 10:22 ` Ingo Molnar
2018-02-12 11:50 ` Peter Zijlstra
2018-02-12 12:27 ` David Woodhouse
2018-02-12 13:06 ` Peter Zijlstra
2018-02-13 7:58 ` Ingo Molnar
2018-02-12 12:28 ` Peter Zijlstra
2018-02-12 16:13 ` Dave Hansen
2018-02-12 16:58 ` Peter Zijlstra
2018-02-13 7:55 ` Ingo Molnar
2018-02-14 1:49 ` Tim Chen
2018-02-14 8:56 ` Peter Zijlstra
2018-02-14 8:57 ` Peter Zijlstra
2018-02-14 19:20 ` Tim Chen
2018-02-14 23:19 ` Ingo Molnar
2018-02-15 2:01 ` Tim Chen
2018-02-14 9:31 ` [PATCH] watchdog: hpwdt: Remove spinlock acquire and BIOS calls from NMI context Ingo Molnar
2018-02-14 9:38 ` Peter Zijlstra
2018-02-14 10:39 ` Ingo Molnar
2018-02-14 9:44 ` Borislav Petkov
2018-02-14 18:13 ` Jerry Hoemann
2018-02-14 23:17 ` Ingo Molnar
2018-02-15 17:44 ` Jerry Hoemann
2018-02-15 19:02 ` Ingo Molnar
2018-02-15 19:48 ` Peter Zijlstra
2018-02-16 18:44 ` [tip:x86/pti] x86/speculation: Use IBRS if available before calling into firmware Tim Chen
2018-02-16 19:16 ` David Woodhouse
2018-02-16 23:46 ` Tim Chen
2018-02-17 10:26 ` Ingo Molnar
2018-02-19 9:20 ` Peter Zijlstra
2018-02-19 9:29 ` David Woodhouse
2018-02-19 9:39 ` Ingo Molnar
2018-02-19 9:44 ` David Woodhouse
2018-02-19 10:08 ` Peter Zijlstra
2018-02-19 9:36 ` Ingo Molnar
2018-02-12 8:27 ` [PATCH v2 0/6] Spectre v2 updates Paolo Bonzini
2018-02-13 7:59 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-930ce1a7a55bc0eb8917f453ee22f1b6d67df5cd@git.kernel.org \
--to=tipbot@zytor.com \
--cc=arjan@linux.intel.com \
--cc=bp@alien8.de \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dwmw2@infradead.org \
--cc=dwmw@amazon.co.uk \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.