]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop a s390 patch from 4.4.y
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 May 2018 14:10:16 +0000 (16:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 May 2018 14:10:16 +0000 (16:10 +0200)
queue-4.4/s390-extend-expoline-to-bc-instructions.patch
queue-4.4/s390-ftrace-use-expoline-for-indirect-branches.patch [deleted file]
queue-4.4/series

index d52c616ade867c8b0f9baa4d170fa71f8ada349a..447559a5efd4c53f982517de9370666d79bc2275 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/arch/s390/include/asm/nospec-insn.h
 +++ b/arch/s390/include/asm/nospec-insn.h
-@@ -32,10 +32,18 @@
+@@ -29,10 +29,18 @@
        __THUNK_PROLOG_NAME __s390x_indirect_jump_r\r2\()use_r\r1
        .endm
  
@@ -44,7 +44,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        .macro __THUNK_BRASL r1,r2,r3
        brasl   \r1,__s390x_indirect_jump_r\r3\()use_r\r2
        .endm
-@@ -78,6 +86,23 @@
+@@ -75,6 +83,23 @@
        .endif
        .endm
  
@@ -66,9 +66,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +      .endm
 +
        .macro __THUNK_EX_BR reg,ruse
-       # Be very careful when adding instructions to this macro!
-       # The ALTERNATIVE replacement code has a .+10 which targets
-@@ -98,12 +123,30 @@
+ #ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
+       exrl    0,555f
+@@ -87,12 +112,30 @@
  555:  br      \reg
        .endm
  
@@ -99,7 +99,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        .macro BR_EX reg,ruse=%r1
  557:  __DECODE_RR __THUNK_BR,\reg,\ruse
        .pushsection .s390_indirect_branches,"a",@progbits
-@@ -111,6 +154,13 @@
+@@ -100,6 +143,13 @@
        .popsection
        .endm
  
@@ -113,7 +113,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        .macro BASR_EX rsave,rtarget,ruse=%r1
  559:  __DECODE_RRR __THUNK_BRASL,\rsave,\rtarget,\ruse
        .pushsection .s390_indirect_branches,"a",@progbits
-@@ -122,10 +172,17 @@
+@@ -111,10 +161,17 @@
        .macro GEN_BR_THUNK reg,ruse=%r1
        .endm
  
diff --git a/queue-4.4/s390-ftrace-use-expoline-for-indirect-branches.patch b/queue-4.4/s390-ftrace-use-expoline-for-indirect-branches.patch
deleted file mode 100644 (file)
index 273b706..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From foo@baz Wed May 23 19:42:20 CEST 2018
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Wed, 23 May 2018 18:21:31 +0200
-Subject: s390/ftrace: use expoline for indirect branches
-To: stable@vger.kernel.org
-Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Message-ID: <1527092496-24207-5-git-send-email-schwidefsky@de.ibm.com>
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-[ Upstream commit 23a4d7fd34856da8218c4cfc23dba7a6ec0a423a ]
-
-The return from the ftrace_stub, _mcount, ftrace_caller and
-return_to_handler functions is done with "br %r14" and "br %r1".
-These are indirect branches as well and need to use execute
-trampolines for CONFIG_EXPOLINE=y.
-
-The ftrace_caller function is a special case as it returns to the
-start of a function and may only use %r0 and %r1. For a pre z10
-machine the standard execute trampoline uses a LARL + EX to do
-this, but this requires *two* registers in the range %r1..%r15.
-To get around this the 'br %r1' located in the lowcore is used,
-then the EX instruction does not need an address register.
-But the lowcore trick may only be used for pre z14 machines,
-with noexec=on the mapping for the first page may not contain
-instructions. The solution for that is an ALTERNATIVE in the
-expoline THUNK generated by 'GEN_BR_THUNK %r1' to switch to
-EXRL, this relies on the fact that a machine that supports
-noexec=on has EXRL as well.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/s390/include/asm/nospec-insn.h |   11 +++++++++++
- arch/s390/kernel/asm-offsets.c      |    1 +
- arch/s390/kernel/mcount.S           |   14 +++++++++-----
- 3 files changed, 21 insertions(+), 5 deletions(-)
-
---- a/arch/s390/include/asm/nospec-insn.h
-+++ b/arch/s390/include/asm/nospec-insn.h
-@@ -2,6 +2,9 @@
- #ifndef _ASM_S390_NOSPEC_ASM_H
- #define _ASM_S390_NOSPEC_ASM_H
-+#include <asm/alternative-asm.h>
-+#include <asm/asm-offsets.h>
-+
- #ifdef __ASSEMBLY__
- #ifdef CONFIG_EXPOLINE
-@@ -76,13 +79,21 @@
-       .endm
-       .macro __THUNK_EX_BR reg,ruse
-+      # Be very careful when adding instructions to this macro!
-+      # The ALTERNATIVE replacement code has a .+10 which targets
-+      # the "br \reg" after the code has been patched.
- #ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
-       exrl    0,555f
-       j       .
- #else
-+      .ifc \reg,%r1
-+      ALTERNATIVE "ex %r0,_LC_BR_R1", ".insn ril,0xc60000000000,0,.+10", 35
-+      j       .
-+      .else
-       larl    \ruse,555f
-       ex      0,0(\ruse)
-       j       .
-+      .endif
- #endif
- 555:  br      \reg
-       .endm
---- a/arch/s390/kernel/asm-offsets.c
-+++ b/arch/s390/kernel/asm-offsets.c
-@@ -170,6 +170,7 @@ int main(void)
-       OFFSET(__LC_MACHINE_FLAGS, _lowcore, machine_flags);
-       OFFSET(__LC_GMAP, _lowcore, gmap);
-       OFFSET(__LC_PASTE, _lowcore, paste);
-+      OFFSET(__LC_BR_R1, _lowcore, br_r1_trampoline);
-       /* software defined ABI-relevant lowcore locations 0xe00 - 0xe20 */
-       OFFSET(__LC_DUMP_REIPL, _lowcore, ipib);
-       /* hardware defined lowcore locations 0x1000 - 0x18ff */
---- a/arch/s390/kernel/mcount.S
-+++ b/arch/s390/kernel/mcount.S
-@@ -8,12 +8,16 @@
- #include <linux/linkage.h>
- #include <asm/asm-offsets.h>
- #include <asm/ftrace.h>
-+#include <asm/nospec-insn.h>
- #include <asm/ptrace.h>
-+      GEN_BR_THUNK %r1
-+      GEN_BR_THUNK %r14
-+
-       .section .kprobes.text, "ax"
- ENTRY(ftrace_stub)
--      br      %r14
-+      BR_EX   %r14
- #define STACK_FRAME_SIZE  (STACK_FRAME_OVERHEAD + __PT_SIZE)
- #define STACK_PTREGS    (STACK_FRAME_OVERHEAD)
-@@ -21,7 +25,7 @@ ENTRY(ftrace_stub)
- #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)
- ENTRY(_mcount)
--      br      %r14
-+      BR_EX   %r14
- ENTRY(ftrace_caller)
-       .globl  ftrace_regs_caller
-@@ -49,7 +53,7 @@ ENTRY(ftrace_caller)
- #endif
-       lgr     %r3,%r14
-       la      %r5,STACK_PTREGS(%r15)
--      basr    %r14,%r1
-+      BASR_EX %r14,%r1
- #ifdef CONFIG_FUNCTION_GRAPH_TRACER
- # The j instruction gets runtime patched to a nop instruction.
- # See ftrace_enable_ftrace_graph_caller.
-@@ -64,7 +68,7 @@ ftrace_graph_caller_end:
- #endif
-       lg      %r1,(STACK_PTREGS_PSW+8)(%r15)
-       lmg     %r2,%r15,(STACK_PTREGS_GPRS+2*8)(%r15)
--      br      %r1
-+      BR_EX   %r1
- #ifdef CONFIG_FUNCTION_GRAPH_TRACER
-@@ -77,6 +81,6 @@ ENTRY(return_to_handler)
-       aghi    %r15,STACK_FRAME_OVERHEAD
-       lgr     %r14,%r2
-       lmg     %r2,%r5,32(%r15)
--      br      %r14
-+      BR_EX   %r14
- #endif
index 3970b0ae872748353ff8018de198361fecdcd020..0b1fd153f77124d38d6fd736e75c524539f01059 100644 (file)
@@ -76,7 +76,6 @@ ext2-fix-a-block-leak.patch
 s390-add-assembler-macros-for-cpu-alternatives.patch
 s390-move-expoline-assembler-macros-to-a-header.patch
 s390-lib-use-expoline-for-indirect-branches.patch
-s390-ftrace-use-expoline-for-indirect-branches.patch
 s390-kernel-use-expoline-for-indirect-branches.patch
 s390-move-spectre-sysfs-attribute-code.patch
 s390-extend-expoline-to-bc-instructions.patch