[PATCH v7 1/6] arm64: ptrace: add PTRACE_SET_SYSCALL
From: AKASHI Takahiro <hidden>
Date: 2014-11-06 02:40:28
Also in:
lkml
Hi Will, Kees #Sorry for this late ping, On 10/09/2014 06:23 PM, Will Deacon wrote:
On Wed, Oct 08, 2014 at 04:30:18PM +0100, Kees Cook wrote:quoted
On Wed, Oct 8, 2014 at 9:13 AM, Will Deacon [off-list ref] wrote:quoted
On Thu, Oct 02, 2014 at 10:46:11AM +0100, AKASHI Takahiro wrote:quoted
diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index fe63ac5..2842f9f 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c@@ -1082,7 +1082,19 @@ const struct user_regset_view *task_user_regset_view(struct task_struct *task) long arch_ptrace(struct task_struct *child, long request, unsigned long addr, unsigned long data) { - return ptrace_request(child, request, addr, data); + int ret; + + switch (request) { + case PTRACE_SET_SYSCALL: + task_pt_regs(child)->syscallno = data; + ret = 0; + break; + default: + ret = ptrace_request(child, request, addr, data); + break; + } + + return ret; }I still don't understand why this needs to be in arch-specific code. Can't we implement this in generic code and get architectures to implement something like syscall_set_nr if they want the generic interface?Personally, I'd rather see this land as-is in the arm64 tree, and then later optimize PTRACE_SET_SYSCALL out of arm/ and arm64/, especially since only these architectures implement this at the moment.Why? It should be really straightforward to do this in core code from the get-go and experience shows that, if we don't do it now, it will never happen.
How should I deal with this issue? I would be able to go either way. Other than that, I will submit v8 patch series with a few very minor updates: - use compat_uint_t in struct compat_siginfo - use a new call interface of secure_computing(void) - modify and clarify comments in syscall_trace_enter() Thanks, -Takahiro AKASHI
quoted
This is my plan for the asm-generic seccomp.h too -- I'd rather avoid touching other architectures in this series, as it's easier to review this way. Then we can optimize the code in a separate series, which will have those changes isolated, etc.But this doesn't need to touch any other architectures... Will