Commit f37bfc0d authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Greg Kroah-Hartman

s390/crc32-vx: use expoline for indirect branches

[ Upstream commit 467a3bf2 ]

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: f19fbd5e ("s390: introduce execute-trampolines for branches")
Reviewed-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4a5c26dd
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/nospec-insn.h>
#include <asm/vx-insn.h> #include <asm/vx-insn.h>
/* Vector register range containing CRC-32 constants */ /* Vector register range containing CRC-32 constants */
...@@ -66,6 +67,8 @@ ...@@ -66,6 +67,8 @@
.previous .previous
GEN_BR_THUNK %r14
.text .text
/* /*
* The CRC-32 function(s) use these calling conventions: * The CRC-32 function(s) use these calling conventions:
...@@ -202,6 +205,6 @@ ENTRY(crc32_be_vgfm_16) ...@@ -202,6 +205,6 @@ ENTRY(crc32_be_vgfm_16)
.Ldone: .Ldone:
VLGVF %r2,%v2,3 VLGVF %r2,%v2,3
br %r14 BR_EX %r14
.previous .previous
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/nospec-insn.h>
#include <asm/vx-insn.h> #include <asm/vx-insn.h>
/* Vector register range containing CRC-32 constants */ /* Vector register range containing CRC-32 constants */
...@@ -75,6 +76,7 @@ ...@@ -75,6 +76,7 @@
.previous .previous
GEN_BR_THUNK %r14
.text .text
...@@ -263,6 +265,6 @@ crc32_le_vgfm_generic: ...@@ -263,6 +265,6 @@ crc32_le_vgfm_generic:
.Ldone: .Ldone:
VLGVF %r2,%v2,2 VLGVF %r2,%v2,2
br %r14 BR_EX %r14
.previous .previous
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment