Thread (20 messages) 20 messages, 5 authors, 2018-12-22

Re: [PATCH v4] powerpc/ptrace: replace ptrace_report_syscall() with a tracehook call

From: Dmitry V. Levin <hidden>
Date: 2018-12-07 15:43:00
Also in: lkml

On Fri, Dec 07, 2018 at 10:12:49PM +1100, Michael Ellerman wrote:
"Dmitry V. Levin" [off-list ref] writes:
quoted
On Mon, Dec 03, 2018 at 06:18:23AM +0300, Dmitry V. Levin wrote:
quoted
From: Elvira Khabirova <redacted>

Arch code should use tracehook_*() helpers, as documented
in include/linux/tracehook.h,
ptrace_report_syscall() is not expected to be used outside that file.

Co-authored-by: Dmitry V. Levin [off-list ref]
Fixes: 5521eb4bca2d ("powerpc/ptrace: Add support for PTRACE_SYSEMU")
Signed-off-by: Elvira Khabirova <redacted>
Signed-off-by: Dmitry V. Levin <redacted>
---
v4: rewritten to call tracehook_report_syscall_entry() once, compile-tested
v3: add a descriptive comment
v2: explicitly ignore tracehook_report_syscall_entry() return code

 arch/powerpc/kernel/ptrace.c | 54 +++++++++++++++++++++++-------------
 1 file changed, 35 insertions(+), 19 deletions(-)
Sorry, this patch does not work, please ignore it.
Hmm OK. Why exactly?
Unfortunately, I have no idea why it doesn't work.
All I can say is it breaks strace because the kernel no longer sends
syscall entry stops.
I wrote more or less the same patch, although I used a temporary bool.
quoted
However, the bug blocks PTRACE_GET_SYSCALL_INFO, so please fix it.
Sorry, didn't realise it was blocking you.
We are changing ptrace_report_syscall signature to implement
PTRACE_GET_SYSCALL_INFO, and this is the only place in the kernel besides
tracehook_report_syscall_*() that invokes ptrace_report_syscall() directly.
quoted
I'm going to use
	if (tracehook_report_syscall_entry(regs))
		return -1;
	return -1;
in the series until you have a better fix.
Yeah that's fine by me. I could send that to Linus for 4.20 if you want
me to, otherwise I'm fine for you to carry it in your series.
Yes, please.  I'll send a v5 shortly.


-- 
ldv

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help