diff options
author | Jan Willeke <willeke@de.ibm.com> | 2014-09-22 10:39:06 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-09-25 04:52:17 -0400 |
commit | 2a0a5b2299b9bef76123fac91e68d39cb361c33e (patch) | |
tree | fa8872070bf295dbbc57e7063db6e6baf739f543 /arch/s390/kernel/ptrace.c | |
parent | 975fab17399a2b29985166181ad80e5f50fa42e9 (diff) |
s390/uprobes: architecture backend for uprobes
Signed-off-by: Jan Willeke <willeke@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/ptrace.c')
-rw-r--r-- | arch/s390/kernel/ptrace.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 5dc7ad9e2fbf..fe99d6b3f185 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -84,7 +84,8 @@ void update_cr_regs(struct task_struct *task) | |||
84 | new.end = thread->per_user.end; | 84 | new.end = thread->per_user.end; |
85 | 85 | ||
86 | /* merge TIF_SINGLE_STEP into user specified PER registers. */ | 86 | /* merge TIF_SINGLE_STEP into user specified PER registers. */ |
87 | if (test_tsk_thread_flag(task, TIF_SINGLE_STEP)) { | 87 | if (test_tsk_thread_flag(task, TIF_SINGLE_STEP) || |
88 | test_tsk_thread_flag(task, TIF_UPROBE_SINGLESTEP)) { | ||
88 | if (test_tsk_thread_flag(task, TIF_BLOCK_STEP)) | 89 | if (test_tsk_thread_flag(task, TIF_BLOCK_STEP)) |
89 | new.control |= PER_EVENT_BRANCH; | 90 | new.control |= PER_EVENT_BRANCH; |
90 | else | 91 | else |
@@ -93,6 +94,8 @@ void update_cr_regs(struct task_struct *task) | |||
93 | new.control |= PER_CONTROL_SUSPENSION; | 94 | new.control |= PER_CONTROL_SUSPENSION; |
94 | new.control |= PER_EVENT_TRANSACTION_END; | 95 | new.control |= PER_EVENT_TRANSACTION_END; |
95 | #endif | 96 | #endif |
97 | if (test_tsk_thread_flag(task, TIF_UPROBE_SINGLESTEP)) | ||
98 | new.control |= PER_EVENT_IFETCH; | ||
96 | new.start = 0; | 99 | new.start = 0; |
97 | new.end = PSW_ADDR_INSN; | 100 | new.end = PSW_ADDR_INSN; |
98 | } | 101 | } |