From: Greg Kroah-Hartman Date: Fri, 25 May 2018 14:10:16 +0000 (+0200) Subject: drop a s390 patch from 4.4.y X-Git-Tag: v4.9.103~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8f1f98742c40b84ba9c8230a62ae992ea410fe64;p=thirdparty%2Fkernel%2Fstable-queue.git drop a s390 patch from 4.4.y --- diff --git a/queue-4.4/s390-extend-expoline-to-bc-instructions.patch b/queue-4.4/s390-extend-expoline-to-bc-instructions.patch index d52c616ade8..447559a5efd 100644 --- a/queue-4.4/s390-extend-expoline-to-bc-instructions.patch +++ b/queue-4.4/s390-extend-expoline-to-bc-instructions.patch @@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman --- 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 .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 + .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 .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 .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 index 273b70694c1..00000000000 --- a/queue-4.4/s390-ftrace-use-expoline-for-indirect-branches.patch +++ /dev/null @@ -1,139 +0,0 @@ -From foo@baz Wed May 23 19:42:20 CEST 2018 -From: Martin Schwidefsky -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 -Message-ID: <1527092496-24207-5-git-send-email-schwidefsky@de.ibm.com> - -From: Martin Schwidefsky - -[ 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 -Signed-off-by: Greg Kroah-Hartman ---- - 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 -+#include -+ - #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 - #include - #include -+#include - #include - -+ 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 diff --git a/queue-4.4/series b/queue-4.4/series index 3970b0ae872..0b1fd153f77 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -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