forked from Minki/linux
d340d28a96
Add a few testcases to make sure that it's not possible to place a kprobe in the mid of an instruction on s390. Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
46 lines
972 B
ArmAsm
46 lines
972 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
|
|
#include <linux/linkage.h>
|
|
#include <asm/ftrace.h>
|
|
|
|
#define KPROBES_TARGET_START(name) \
|
|
SYM_FUNC_START(name); \
|
|
FTRACE_GEN_NOP_ASM(name)
|
|
|
|
#define KPROBES_TARGET_END(name) \
|
|
SYM_FUNC_END(name); \
|
|
SYM_DATA(name##_offs, .quad 1b - name)
|
|
|
|
KPROBES_TARGET_START(kprobes_target_in_insn4)
|
|
.word 0x4700 // bc 0,0
|
|
1: .word 0x0000
|
|
br %r14
|
|
KPROBES_TARGET_END(kprobes_target_in_insn4)
|
|
|
|
KPROBES_TARGET_START(kprobes_target_in_insn6_lo)
|
|
.word 0xe310 // ly 1,0
|
|
1: .word 0x0000
|
|
.word 0x0058
|
|
br %r14
|
|
KPROBES_TARGET_END(kprobes_target_in_insn6_lo)
|
|
|
|
KPROBES_TARGET_START(kprobes_target_in_insn6_hi)
|
|
.word 0xe310 // ly 1,0
|
|
.word 0x0000
|
|
1: .word 0x0058
|
|
br %r14
|
|
KPROBES_TARGET_END(kprobes_target_in_insn6_hi)
|
|
|
|
KPROBES_TARGET_START(kprobes_target_bp)
|
|
nop
|
|
.word 0x0000
|
|
nop
|
|
1: br %r14
|
|
KPROBES_TARGET_END(kprobes_target_bp)
|
|
|
|
KPROBES_TARGET_START(kprobes_target_odd)
|
|
.byte 0x07
|
|
1: .byte 0x07
|
|
br %r14
|
|
KPROBES_TARGET_END(kprobes_target_odd)
|