From 346dd81ecd4dab42eeb199b20faf67c9948785da Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Fri, 23 Mar 2012 15:02:39 -0700 Subject: [PATCH] --- yaml --- r: 295255 b: refs/heads/master c: 15cab952139404d0e593cb1aaab0a3547ac0f95b h: refs/heads/master i: 295253: 59e76bdebc2bbcfa5f47b467bc6c4d2b2fa2d38f 295251: 0ecc6643e68f26e3ae778fd03bc8cf29e80477fd 295247: 18fe8429cc53bbba215d69ab8c6293230095df70 v: v3 --- [refs] | 2 +- trunk/include/linux/tracehook.h | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 0b33ee2da4c0..a2d0686b6154 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d533df07c20c7b59b0559a3ac38fb45c81ffd6bb +refs/heads/master: 15cab952139404d0e593cb1aaab0a3547ac0f95b diff --git a/trunk/include/linux/tracehook.h b/trunk/include/linux/tracehook.h index a71a2927a6a0..51bd91d911c3 100644 --- a/trunk/include/linux/tracehook.h +++ b/trunk/include/linux/tracehook.h @@ -54,12 +54,12 @@ struct linux_binprm; /* * ptrace report for syscall entry and exit looks identical. */ -static inline void ptrace_report_syscall(struct pt_regs *regs) +static inline int ptrace_report_syscall(struct pt_regs *regs) { int ptrace = current->ptrace; if (!(ptrace & PT_PTRACED)) - return; + return 0; ptrace_notify(SIGTRAP | ((ptrace & PT_TRACESYSGOOD) ? 0x80 : 0)); @@ -72,6 +72,8 @@ static inline void ptrace_report_syscall(struct pt_regs *regs) send_sig(current->exit_code, current, 1); current->exit_code = 0; } + + return fatal_signal_pending(current); } /** @@ -96,8 +98,7 @@ static inline void ptrace_report_syscall(struct pt_regs *regs) static inline __must_check int tracehook_report_syscall_entry( struct pt_regs *regs) { - ptrace_report_syscall(regs); - return 0; + return ptrace_report_syscall(regs); } /**