+++ /dev/null
-From 467a3bf219cee12259182c5cb4821f88fd518a51 Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Mon, 23 Apr 2018 14:31:36 +0200
-Subject: s390/crc32-vx: use expoline for indirect branches
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-commit 467a3bf219cee12259182c5cb4821f88fd518a51 upstream.
-
-The return from the crc32_le_vgfm_16/crc32c_le_vgfm_16 and the
-crc32_be_vgfm_16 functions are done with "br %r14". These are indirect
-branches as well and need to use execute trampolines for CONFIG_EXPOLINE=y.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/s390/crypto/crc32be-vx.S | 5 ++++-
- arch/s390/crypto/crc32le-vx.S | 4 +++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
---- a/arch/s390/crypto/crc32be-vx.S
-+++ b/arch/s390/crypto/crc32be-vx.S
-@@ -13,6 +13,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -67,6 +68,8 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-+
- .text
- /*
- * The CRC-32 function(s) use these calling conventions:
-@@ -203,6 +206,6 @@ ENTRY(crc32_be_vgfm_16)
-
- .Ldone:
- VLGVF %r2,%v2,3
-- br %r14
-+ BR_EX %r14
-
- .previous
---- a/arch/s390/crypto/crc32le-vx.S
-+++ b/arch/s390/crypto/crc32le-vx.S
-@@ -14,6 +14,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -76,6 +77,7 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-
- .text
-
-@@ -264,6 +266,6 @@ crc32_le_vgfm_generic:
-
- .Ldone:
- VLGVF %r2,%v2,2
-- br %r14
-+ BR_EX %r14
-
- .previous
+++ /dev/null
-From c50c84c3ac4d5db683904bdb3257798b6ef980ae Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Wed, 25 Apr 2018 18:41:30 +0200
-Subject: s390/kernel: use expoline for indirect branches
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-commit c50c84c3ac4d5db683904bdb3257798b6ef980ae upstream.
-
-The assember code in arch/s390/kernel uses a few more indirect branches
-which need to be done with execute trampolines for CONFIG_EXPOLINE=y.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/s390/kernel/base.S | 24 ++++++++++++++----------
- arch/s390/kernel/reipl.S | 7 +++++--
- arch/s390/kernel/swsusp.S | 10 ++++++----
- 3 files changed, 25 insertions(+), 16 deletions(-)
-
---- a/arch/s390/kernel/base.S
-+++ b/arch/s390/kernel/base.S
-@@ -9,18 +9,22 @@
-
- #include <linux/linkage.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/ptrace.h>
- #include <asm/sigp.h>
-
-+ GEN_BR_THUNK %r9
-+ GEN_BR_THUNK %r14
-+
- ENTRY(s390_base_mcck_handler)
- basr %r13,0
- 0: lg %r15,__LC_PANIC_STACK # load panic stack
- aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_mcck_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- 1: la %r1,4095
- lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
- lpswe __LC_MCK_OLD_PSW
-@@ -37,10 +41,10 @@ ENTRY(s390_base_ext_handler)
- basr %r13,0
- 0: aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_ext_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- 1: lmg %r0,%r15,__LC_SAVE_AREA_ASYNC
- ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit
- lpswe __LC_EXT_OLD_PSW
-@@ -57,10 +61,10 @@ ENTRY(s390_base_pgm_handler)
- basr %r13,0
- 0: aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_pgm_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- lmg %r0,%r15,__LC_SAVE_AREA_SYNC
- lpswe __LC_PGM_OLD_PSW
- 1: lpswe disabled_wait_psw-0b(%r13)
-@@ -117,7 +121,7 @@ ENTRY(diag308_reset)
- larl %r4,.Lcontinue_psw # Restore PSW flags
- lpswe 0(%r4)
- .Lcontinue:
-- br %r14
-+ BR_EX %r14
- .align 16
- .Lrestart_psw:
- .long 0x00080000,0x80000000 + .Lrestart_part2
---- a/arch/s390/kernel/reipl.S
-+++ b/arch/s390/kernel/reipl.S
-@@ -7,8 +7,11 @@
-
- #include <linux/linkage.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/sigp.h>
-
-+ GEN_BR_THUNK %r9
-+
- #
- # Issue "store status" for the current CPU to its prefix page
- # and call passed function afterwards
-@@ -67,9 +70,9 @@ ENTRY(store_status)
- st %r4,0(%r1)
- st %r5,4(%r1)
- stg %r2,8(%r1)
-- lgr %r1,%r2
-+ lgr %r9,%r2
- lgr %r2,%r3
-- br %r1
-+ BR_EX %r9
-
- .section .bss
- .align 8
---- a/arch/s390/kernel/swsusp.S
-+++ b/arch/s390/kernel/swsusp.S
-@@ -13,6 +13,7 @@
- #include <asm/ptrace.h>
- #include <asm/thread_info.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/sigp.h>
-
- /*
-@@ -24,6 +25,8 @@
- * (see below) in the resume process.
- * This function runs with disabled interrupts.
- */
-+ GEN_BR_THUNK %r14
-+
- .section .text
- ENTRY(swsusp_arch_suspend)
- stmg %r6,%r15,__SF_GPRS(%r15)
-@@ -103,7 +106,7 @@ ENTRY(swsusp_arch_suspend)
- spx 0x318(%r1)
- lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
- lghi %r2,0
-- br %r14
-+ BR_EX %r14
-
- /*
- * Restore saved memory image to correct place and restore register context.
-@@ -197,11 +200,10 @@ pgm_check_entry:
- larl %r15,init_thread_union
- ahi %r15,1<<(PAGE_SHIFT+THREAD_SIZE_ORDER)
- larl %r2,.Lpanic_string
-- larl %r3,sclp_early_printk
- lghi %r1,0
- sam31
- sigp %r1,%r0,SIGP_SET_ARCHITECTURE
-- basr %r14,%r3
-+ brasl %r14,sclp_early_printk
- larl %r3,.Ldisabled_wait_31
- lpsw 0(%r3)
- 4:
-@@ -267,7 +269,7 @@ restore_registers:
- /* Return 0 */
- lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
- lghi %r2,0
-- br %r14
-+ BR_EX %r14
-
- .section .data..nosave,"aw",@progbits
- .align 8
radix-tree-fix-multi-order-iteration-race.patch
mm-don-t-allow-deferred-pages-with-need_per_cpu_km.patch
drm-i915-gen9-add-waclearhiz_wm_chicken3-for-bxt-and-glk.patch
-s390-crc32-vx-use-expoline-for-indirect-branches.patch
s390-qdio-fix-access-to-uninitialized-qdio_q-fields.patch
s390-cpum_sf-ensure-sample-frequency-of-perf-event-attributes-is-non-zero.patch
s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch
-s390-kernel-use-expoline-for-indirect-branches.patch
s390-remove-indirect-branch-from-do_softirq_own_stack.patch
+++ /dev/null
-From 467a3bf219cee12259182c5cb4821f88fd518a51 Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Mon, 23 Apr 2018 14:31:36 +0200
-Subject: s390/crc32-vx: use expoline for indirect branches
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-commit 467a3bf219cee12259182c5cb4821f88fd518a51 upstream.
-
-The return from the crc32_le_vgfm_16/crc32c_le_vgfm_16 and the
-crc32_be_vgfm_16 functions are done with "br %r14". These are indirect
-branches as well and need to use execute trampolines for CONFIG_EXPOLINE=y.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/s390/crypto/crc32be-vx.S | 5 ++++-
- arch/s390/crypto/crc32le-vx.S | 4 +++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
---- a/arch/s390/crypto/crc32be-vx.S
-+++ b/arch/s390/crypto/crc32be-vx.S
-@@ -13,6 +13,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -67,6 +68,8 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-+
- .text
- /*
- * The CRC-32 function(s) use these calling conventions:
-@@ -203,6 +206,6 @@ ENTRY(crc32_be_vgfm_16)
-
- .Ldone:
- VLGVF %r2,%v2,3
-- br %r14
-+ BR_EX %r14
-
- .previous
---- a/arch/s390/crypto/crc32le-vx.S
-+++ b/arch/s390/crypto/crc32le-vx.S
-@@ -14,6 +14,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -76,6 +77,7 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-
- .text
-
-@@ -264,6 +266,6 @@ crc32_le_vgfm_generic:
-
- .Ldone:
- VLGVF %r2,%v2,2
-- br %r14
-+ BR_EX %r14
-
- .previous
+++ /dev/null
-From c50c84c3ac4d5db683904bdb3257798b6ef980ae Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Wed, 25 Apr 2018 18:41:30 +0200
-Subject: s390/kernel: use expoline for indirect branches
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-commit c50c84c3ac4d5db683904bdb3257798b6ef980ae upstream.
-
-The assember code in arch/s390/kernel uses a few more indirect branches
-which need to be done with execute trampolines for CONFIG_EXPOLINE=y.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/s390/kernel/base.S | 24 ++++++++++++++----------
- arch/s390/kernel/reipl.S | 7 +++++--
- arch/s390/kernel/swsusp.S | 10 ++++++----
- 3 files changed, 25 insertions(+), 16 deletions(-)
-
---- a/arch/s390/kernel/base.S
-+++ b/arch/s390/kernel/base.S
-@@ -9,18 +9,22 @@
-
- #include <linux/linkage.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/ptrace.h>
- #include <asm/sigp.h>
-
-+ GEN_BR_THUNK %r9
-+ GEN_BR_THUNK %r14
-+
- ENTRY(s390_base_mcck_handler)
- basr %r13,0
- 0: lg %r15,__LC_PANIC_STACK # load panic stack
- aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_mcck_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- 1: la %r1,4095
- lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
- lpswe __LC_MCK_OLD_PSW
-@@ -37,10 +41,10 @@ ENTRY(s390_base_ext_handler)
- basr %r13,0
- 0: aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_ext_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- 1: lmg %r0,%r15,__LC_SAVE_AREA_ASYNC
- ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit
- lpswe __LC_EXT_OLD_PSW
-@@ -57,10 +61,10 @@ ENTRY(s390_base_pgm_handler)
- basr %r13,0
- 0: aghi %r15,-STACK_FRAME_OVERHEAD
- larl %r1,s390_base_pgm_handler_fn
-- lg %r1,0(%r1)
-- ltgr %r1,%r1
-+ lg %r9,0(%r1)
-+ ltgr %r9,%r9
- jz 1f
-- basr %r14,%r1
-+ BASR_EX %r14,%r9
- lmg %r0,%r15,__LC_SAVE_AREA_SYNC
- lpswe __LC_PGM_OLD_PSW
- 1: lpswe disabled_wait_psw-0b(%r13)
-@@ -117,7 +121,7 @@ ENTRY(diag308_reset)
- larl %r4,.Lcontinue_psw # Restore PSW flags
- lpswe 0(%r4)
- .Lcontinue:
-- br %r14
-+ BR_EX %r14
- .align 16
- .Lrestart_psw:
- .long 0x00080000,0x80000000 + .Lrestart_part2
---- a/arch/s390/kernel/reipl.S
-+++ b/arch/s390/kernel/reipl.S
-@@ -7,8 +7,11 @@
-
- #include <linux/linkage.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/sigp.h>
-
-+ GEN_BR_THUNK %r9
-+
- #
- # Issue "store status" for the current CPU to its prefix page
- # and call passed function afterwards
-@@ -67,9 +70,9 @@ ENTRY(store_status)
- st %r4,0(%r1)
- st %r5,4(%r1)
- stg %r2,8(%r1)
-- lgr %r1,%r2
-+ lgr %r9,%r2
- lgr %r2,%r3
-- br %r1
-+ BR_EX %r9
-
- .section .bss
- .align 8
---- a/arch/s390/kernel/swsusp.S
-+++ b/arch/s390/kernel/swsusp.S
-@@ -13,6 +13,7 @@
- #include <asm/ptrace.h>
- #include <asm/thread_info.h>
- #include <asm/asm-offsets.h>
-+#include <asm/nospec-insn.h>
- #include <asm/sigp.h>
-
- /*
-@@ -24,6 +25,8 @@
- * (see below) in the resume process.
- * This function runs with disabled interrupts.
- */
-+ GEN_BR_THUNK %r14
-+
- .section .text
- ENTRY(swsusp_arch_suspend)
- stmg %r6,%r15,__SF_GPRS(%r15)
-@@ -103,7 +106,7 @@ ENTRY(swsusp_arch_suspend)
- spx 0x318(%r1)
- lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
- lghi %r2,0
-- br %r14
-+ BR_EX %r14
-
- /*
- * Restore saved memory image to correct place and restore register context.
-@@ -197,11 +200,10 @@ pgm_check_entry:
- larl %r15,init_thread_union
- ahi %r15,1<<(PAGE_SHIFT+THREAD_SIZE_ORDER)
- larl %r2,.Lpanic_string
-- larl %r3,sclp_early_printk
- lghi %r1,0
- sam31
- sigp %r1,%r0,SIGP_SET_ARCHITECTURE
-- basr %r14,%r3
-+ brasl %r14,sclp_early_printk
- larl %r3,.Ldisabled_wait_31
- lpsw 0(%r3)
- 4:
-@@ -267,7 +269,7 @@ restore_registers:
- /* Return 0 */
- lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
- lghi %r2,0
-- br %r14
-+ BR_EX %r14
-
- .section .data..nosave,"aw",@progbits
- .align 8
radix-tree-fix-multi-order-iteration-race.patch
mm-don-t-allow-deferred-pages-with-need_per_cpu_km.patch
drm-i915-gen9-add-waclearhiz_wm_chicken3-for-bxt-and-glk.patch
-s390-crc32-vx-use-expoline-for-indirect-branches.patch
s390-qdio-fix-access-to-uninitialized-qdio_q-fields.patch
s390-cpum_sf-ensure-sample-frequency-of-perf-event-attributes-is-non-zero.patch
s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch
-s390-kernel-use-expoline-for-indirect-branches.patch
s390-remove-indirect-branch-from-do_softirq_own_stack.patch
bcache-return-0-from-bch_debug_init-if-config_debug_fs-n.patch
+++ /dev/null
-From 467a3bf219cee12259182c5cb4821f88fd518a51 Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Date: Mon, 23 Apr 2018 14:31:36 +0200
-Subject: s390/crc32-vx: use expoline for indirect branches
-
-From: Martin Schwidefsky <schwidefsky@de.ibm.com>
-
-commit 467a3bf219cee12259182c5cb4821f88fd518a51 upstream.
-
-The return from the crc32_le_vgfm_16/crc32c_le_vgfm_16 and the
-crc32_be_vgfm_16 functions are done with "br %r14". These are indirect
-branches as well and need to use execute trampolines for CONFIG_EXPOLINE=y.
-
-Cc: stable@vger.kernel.org # 4.16
-Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
-Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/s390/crypto/crc32be-vx.S | 5 ++++-
- arch/s390/crypto/crc32le-vx.S | 4 +++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
---- a/arch/s390/crypto/crc32be-vx.S
-+++ b/arch/s390/crypto/crc32be-vx.S
-@@ -12,6 +12,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -66,6 +67,8 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-+
- .text
- /*
- * The CRC-32 function(s) use these calling conventions:
-@@ -202,6 +205,6 @@ ENTRY(crc32_be_vgfm_16)
-
- .Ldone:
- VLGVF %r2,%v2,3
-- br %r14
-+ BR_EX %r14
-
- .previous
---- a/arch/s390/crypto/crc32le-vx.S
-+++ b/arch/s390/crypto/crc32le-vx.S
-@@ -13,6 +13,7 @@
- */
-
- #include <linux/linkage.h>
-+#include <asm/nospec-insn.h>
- #include <asm/vx-insn.h>
-
- /* Vector register range containing CRC-32 constants */
-@@ -75,6 +76,7 @@
-
- .previous
-
-+ GEN_BR_THUNK %r14
-
- .text
-
-@@ -263,6 +265,6 @@ crc32_le_vgfm_generic:
-
- .Ldone:
- VLGVF %r2,%v2,2
-- br %r14
-+ BR_EX %r14
-
- .previous
i2c-designware-fix-poll-after-enable-regression.patch
powerpc-powernv-fix-nvram-sleep-in-invalid-context-when-crashing.patch
mm-don-t-allow-deferred-pages-with-need_per_cpu_km.patch
-s390-crc32-vx-use-expoline-for-indirect-branches.patch
s390-qdio-fix-access-to-uninitialized-qdio_q-fields.patch
s390-cpum_sf-ensure-sample-frequency-of-perf-event-attributes-is-non-zero.patch
s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch