summaryrefslogtreecommitdiff
path: root/arch/s390/lib/error-inject.c
diff options
context:
space:
mode:
authorMaxime Ripard <maxime@cerno.tech>2020-08-18 15:14:25 +0300
committerMaxime Ripard <maxime@cerno.tech>2020-08-18 15:14:25 +0300
commitd85ddd1318e66c0c2665dbfcbc21a8b66c9152aa (patch)
treee49e401abd2468b398d4bc84c7e05c2c2c3b0966 /arch/s390/lib/error-inject.c
parent652bcaec7da0f06f00be578c200e1c57099449d2 (diff)
parent9123e3a74ec7b934a4a099e98af6a61c2f80bbf5 (diff)
downloadlinux-d85ddd1318e66c0c2665dbfcbc21a8b66c9152aa.tar.xz
Merge v5.9-rc1 into drm-misc-next
Sam needs 5.9-rc1 to have dev_err_probe in to merge some patches. Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Diffstat (limited to 'arch/s390/lib/error-inject.c')
-rw-r--r--arch/s390/lib/error-inject.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/s390/lib/error-inject.c b/arch/s390/lib/error-inject.c
new file mode 100644
index 000000000000..8c9d4da87eef
--- /dev/null
+++ b/arch/s390/lib/error-inject.c
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0+
+#include <asm/ptrace.h>
+#include <linux/error-injection.h>
+#include <linux/kprobes.h>
+
+void override_function_with_return(struct pt_regs *regs)
+{
+ /*
+ * Emulate 'br 14'. 'regs' is captured by kprobes on entry to some
+ * kernel function.
+ */
+ regs->psw.addr = regs->gprs[14];
+}
+NOKPROBE_SYMBOL(override_function_with_return);