3.16.56-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: David Woodhouse <[email protected]>

commit 9351803bd803cdbeb9b5a7850b7b6f464806e3db upstream.

Convert all indirect jumps in ftrace assembler code to use non-speculative
sequences when CONFIG_RETPOLINE is enabled.

Signed-off-by: David Woodhouse <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Acked-by: Arjan van de Ven <[email protected]>
Acked-by: Ingo Molnar <[email protected]>
Cc: [email protected]
Cc: Rik van Riel <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Josh Poimboeuf <[email protected]>
Cc: [email protected]
Cc: Peter Zijlstra <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Jiri Kosina <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Tim Chen <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Paul Turner <[email protected]>
Link: 
https://lkml.kernel.org/r/[email protected]
[bwh: Backported to 3.16: adjust filenames, context]
Signed-off-by: Ben Hutchings <[email protected]>
---
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1189,7 +1189,8 @@ trace:
        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
@@ -1224,7 +1225,7 @@ return_to_handler:
        movl %eax, %ecx
        popl %edx
        popl %eax
-       jmp *%ecx
+       JMP_NOSPEC %ecx
 #endif
 
 #ifdef CONFIG_TRACING
--- a/arch/x86/kernel/mcount_64.S
+++ b/arch/x86/kernel/mcount_64.S
@@ -7,7 +7,7 @@
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
 #include <asm/ftrace.h>
-
+#include <asm/nospec-branch.h>
 
        .code64
        .section .entry.text, "ax"
@@ -210,8 +210,8 @@ trace:
 #endif
        subq $MCOUNT_INSN_SIZE, %rdi
 
-       call   *ftrace_trace_function
-
+       movq ftrace_trace_function, %r8
+       CALL_NOSPEC %r8
        MCOUNT_RESTORE_FRAME
 
        jmp ftrace_stub
@@ -254,5 +254,5 @@ GLOBAL(return_to_handler)
        movq 8(%rsp), %rdx
        movq (%rsp), %rax
        addq $24, %rsp
-       jmp *%rdi
+       JMP_NOSPEC %rdi
 #endif

Reply via email to