aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ptrace.h17
-rw-r--r--include/linux/tracehook.h13
2 files changed, 15 insertions, 15 deletions
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index 4f36431c380b..1de2235511c8 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -336,14 +336,19 @@ static inline void user_enable_block_step(struct task_struct *task)
336extern void user_enable_block_step(struct task_struct *); 336extern void user_enable_block_step(struct task_struct *);
337#endif /* arch_has_block_step */ 337#endif /* arch_has_block_step */
338 338
339#ifdef ARCH_HAS_USER_SINGLE_STEP_INFO 339#ifdef ARCH_HAS_USER_SINGLE_STEP_REPORT
340extern void user_single_step_siginfo(struct task_struct *tsk, 340extern void user_single_step_report(struct pt_regs *regs);
341 struct pt_regs *regs, siginfo_t *info);
342#else 341#else
343static inline void user_single_step_siginfo(struct task_struct *tsk, 342static inline void user_single_step_report(struct pt_regs *regs)
344 struct pt_regs *regs, siginfo_t *info)
345{ 343{
346 info->si_signo = SIGTRAP; 344 siginfo_t info;
345 clear_siginfo(&info);
346 info.si_signo = SIGTRAP;
347 info.si_errno = 0;
348 info.si_code = SI_USER;
349 info.si_pid = 0;
350 info.si_uid = 0;
351 force_sig_info(info.si_signo, &info, current);
347} 352}
348#endif 353#endif
349 354
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
index 05589a3e37f4..40b0b4c1bf7b 100644
--- a/include/linux/tracehook.h
+++ b/include/linux/tracehook.h
@@ -123,15 +123,10 @@ static inline __must_check int tracehook_report_syscall_entry(
123 */ 123 */
124static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step) 124static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step)
125{ 125{
126 if (step) { 126 if (step)
127 siginfo_t info; 127 user_single_step_report(regs);
128 clear_siginfo(&info); 128 else
129 user_single_step_siginfo(current, regs, &info); 129 ptrace_report_syscall(regs);
130 force_sig_info(SIGTRAP, &info, current);
131 return;
132 }
133
134 ptrace_report_syscall(regs);
135} 130}
136 131
137/** 132/**