Re: [PATCH 6/8] ptrace: arch_ptrace -ENOSYS return

Linus Torvalds
2008-03-20T02:40:25Z

On Wed, 19 Mar 2008, Roland McGrath wrote:
>
> The arch_ptrace and compat_arch_ptrace functions can now return
> -ENOSYS for requests they do not actually implement in arch
> code.

Hmm.. I see the whole series, and I see this patch, but I think it adds
new code and new complexity, and I don't really see *why*.

So I'm obviously not going to apply it outside the merge window anyway,
but even for later I'd really like to know what you're building up
towards, because without understanding the upsides it just feels like it
adds ugly code and unnecessary infrastructure without any real point to
it.

And I have to say, I really hate that

ret = arch_ptrace(child, request, addr, data);
if (ret = -ENOSYS && !forced_successful_syscall_return())
ret = ptrace_request(child, request, addr, data);

thing. Instead of doing it that ugly way (return value and a special
per-arch forced_successful_syscall_return() thing), this really smells
like you just want to change the calling conventions for "arch_ptrace()"
instead.

Wouldn't it be nicer to just let "arch_ptrace()" return a flag saying
whether it handled things or not?

Linus