From: tip-bot for David Woodhouse <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: torvalds@linux-foundation.org, peterz@infradead.org,
pjt@google.com, ak@linux.intel.com, dave.hansen@intel.com,
jikos@kernel.org, gregkh@linux-foundation.org, riel@redhat.com,
keescook@google.com, luto@amacapital.net, mingo@kernel.org,
dwmw@amazon.co.uk, tim.c.chen@linux.intel.com,
arjan@linux.intel.com, hpa@zytor.com,
linux-kernel@vger.kernel.org, tglx@linutronix.de
Subject: [tip:x86/pti] x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
Date: Wed, 10 Jan 2018 10:42:17 -0800 [thread overview]
Message-ID: <tip-42f7c812022441ffba2d5ccca3acf6380201f19e@git.kernel.org> (raw)
In-Reply-To: <1515508997-6154-7-git-send-email-dwmw@amazon.co.uk>
Commit-ID: 42f7c812022441ffba2d5ccca3acf6380201f19e
Gitweb: https://git.kernel.org/tip/42f7c812022441ffba2d5ccca3acf6380201f19e
Author: David Woodhouse <dwmw@amazon.co.uk>
AuthorDate: Tue, 9 Jan 2018 14:43:12 +0000
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 10 Jan 2018 19:36:24 +0100
x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
Convert all indirect jumps in ftrace assembler code to use non-speculative
sequences when CONFIG_RETPOLINE is enabled.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: gnomes@lxorguk.ukuu.org.uk
Cc: Rik van Riel <riel@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Kees Cook <keescook@google.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
Cc: Paul Turner <pjt@google.com>
Link: https://lkml.kernel.org/r/1515508997-6154-7-git-send-email-dwmw@amazon.co.uk
---
arch/x86/kernel/ftrace_32.S | 6 ++++--
arch/x86/kernel/ftrace_64.S | 8 ++++----
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/arch/x86/kernel/ftrace_32.S b/arch/x86/kernel/ftrace_32.S
index b6c6468..4c8440d 100644
--- a/arch/x86/kernel/ftrace_32.S
+++ b/arch/x86/kernel/ftrace_32.S
@@ -8,6 +8,7 @@
#include <asm/segment.h>
#include <asm/export.h>
#include <asm/ftrace.h>
+#include <asm/nospec-branch.h>
#ifdef CC_USING_FENTRY
# define function_hook __fentry__
@@ -197,7 +198,8 @@ ftrace_stub:
movl 0x4(%ebp), %edx
subl $MCOUNT_INSN_SIZE, %eax
- call *ftrace_trace_function
+ movl ftrace_trace_function, %ecx
+ CALL_NOSPEC %ecx
popl %edx
popl %ecx
@@ -241,5 +243,5 @@ return_to_handler:
movl %eax, %ecx
popl %edx
popl %eax
- jmp *%ecx
+ JMP_NOSPEC %ecx
#endif
diff --git a/arch/x86/kernel/ftrace_64.S b/arch/x86/kernel/ftrace_64.S
index c832291..7cb8ba0 100644
--- a/arch/x86/kernel/ftrace_64.S
+++ b/arch/x86/kernel/ftrace_64.S
@@ -7,7 +7,7 @@
#include <asm/ptrace.h>
#include <asm/ftrace.h>
#include <asm/export.h>
-
+#include <asm/nospec-branch.h>
.code64
.section .entry.text, "ax"
@@ -286,8 +286,8 @@ trace:
* ip and parent ip are used and the list function is called when
* function tracing is enabled.
*/
- call *ftrace_trace_function
-
+ movq ftrace_trace_function, %r8
+ CALL_NOSPEC %r8
restore_mcount_regs
jmp fgraph_trace
@@ -329,5 +329,5 @@ GLOBAL(return_to_handler)
movq 8(%rsp), %rdx
movq (%rsp), %rax
addq $24, %rsp
- jmp *%rdi
+ JMP_NOSPEC %rdi
#endif
next prev parent reply other threads:[~2018-01-10 18:46 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-09 14:43 [PATCH v7 00/11] Retpoline: Avoid speculative indirect calls in kernel David Woodhouse
2018-01-09 14:43 ` [PATCH v7 01/11] x86/retpoline: Add initial retpoline support David Woodhouse
2018-01-09 15:55 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:34 ` tip-bot for David Woodhouse
2018-01-10 18:13 ` tip-bot for David Woodhouse
2018-01-10 18:40 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 02/11] x86/retpoline: Temporarily disable objtool when CONFIG_RETPOLINE=y David Woodhouse
2018-01-09 15:56 ` [tip:x86/pti] " tip-bot for Andi Kleen
2018-01-10 5:58 ` [PATCH v7 02/11] " Josh Poimboeuf
2018-01-10 10:12 ` Peter Zijlstra
2018-01-10 17:34 ` [tip:x86/pti] " tip-bot for Andi Kleen
2018-01-10 18:13 ` tip-bot for Andi Kleen
2018-01-10 18:40 ` tip-bot for Andi Kleen
2018-01-09 14:43 ` [PATCH v7 03/11] x86/spectre: Add boot time option to select Spectre v2 mitigation David Woodhouse
2018-01-09 15:56 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:35 ` tip-bot for David Woodhouse
2018-01-10 18:03 ` Tom Lendacky
2018-01-10 18:06 ` Thomas Gleixner
2018-01-10 18:10 ` Thomas Gleixner
2018-01-10 18:14 ` tip-bot for David Woodhouse
2018-01-10 18:33 ` Tom Lendacky
2018-01-10 18:35 ` Thomas Gleixner
2018-01-10 18:41 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 04/11] x86/retpoline/crypto: Convert crypto assembler indirect jumps David Woodhouse
2018-01-09 15:56 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:35 ` tip-bot for David Woodhouse
2018-01-10 18:14 ` tip-bot for David Woodhouse
2018-01-10 18:41 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 05/11] x86/retpoline/entry: Convert entry " David Woodhouse
2018-01-09 15:57 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 3:54 ` [v7, 05/11] " Andrei Vagin
2018-01-10 4:30 ` Andi Kleen
2018-01-10 4:39 ` Dave Hansen
2018-01-10 5:23 ` Andrei Vagin
2018-01-10 17:36 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 18:15 ` tip-bot for David Woodhouse
2018-01-10 18:41 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 06/11] x86/retpoline/ftrace: Convert ftrace " David Woodhouse
2018-01-09 15:57 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:36 ` tip-bot for David Woodhouse
2018-01-10 18:15 ` tip-bot for David Woodhouse
2018-01-10 18:42 ` tip-bot for David Woodhouse [this message]
2018-01-09 14:43 ` [PATCH v7 07/11] x86/retpoline/hyperv: Convert " David Woodhouse
2018-01-09 15:58 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:37 ` tip-bot for David Woodhouse
2018-01-10 18:15 ` tip-bot for David Woodhouse
2018-01-10 18:42 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 08/11] x86/retpoline/xen: Convert Xen hypercall " David Woodhouse
2018-01-09 15:58 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:37 ` tip-bot for David Woodhouse
2018-01-10 18:16 ` tip-bot for David Woodhouse
2018-01-10 18:43 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 09/11] x86/retpoline/checksum32: Convert assembler " David Woodhouse
2018-01-09 15:58 ` [tip:x86/pti] " tip-bot for David Woodhouse
2018-01-10 17:37 ` tip-bot for David Woodhouse
2018-01-10 18:16 ` tip-bot for David Woodhouse
2018-01-10 18:43 ` tip-bot for David Woodhouse
2018-01-09 14:43 ` [PATCH v7 10/11] x86/retpoline/irq32: " David Woodhouse
2018-01-09 15:59 ` [tip:x86/pti] " tip-bot for Andi Kleen
2018-01-10 17:38 ` tip-bot for Andi Kleen
2018-01-10 18:17 ` tip-bot for Andi Kleen
2018-01-10 18:43 ` tip-bot for Andi Kleen
2018-01-09 14:43 ` [PATCH v7 11/11] x86/retpoline: Avoid return buffer underflows on context switch David Woodhouse
2018-01-09 15:59 ` [tip:x86/pti] " tip-bot for Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2018-01-11 21:46 [PATCH v8 07/12] x86/retpoline/ftrace: Convert ftrace assembler indirect jumps David Woodhouse
2018-01-11 23:25 ` [tip:x86/pti] " tip-bot for David Woodhouse
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-42f7c812022441ffba2d5ccca3acf6380201f19e@git.kernel.org \
--to=tipbot@zytor.com \
--cc=ak@linux.intel.com \
--cc=arjan@linux.intel.com \
--cc=dave.hansen@intel.com \
--cc=dwmw@amazon.co.uk \
--cc=gregkh@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=jikos@kernel.org \
--cc=keescook@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=riel@redhat.com \
--cc=tglx@linutronix.de \
--cc=tim.c.chen@linux.intel.com \
--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.