From mboxrd@z Thu Jan 1 00:00:00 1970 From: takahiro.akashi@linaro.org (AKASHI Takahiro) Date: Thu, 06 Nov 2014 11:40:15 +0900 Subject: [PATCH v7 1/6] arm64: ptrace: add PTRACE_SET_SYSCALL In-Reply-To: <20141009092358.GB3141@arm.com> References: <1412243176-16192-1-git-send-email-takahiro.akashi@linaro.org> <1412243176-16192-2-git-send-email-takahiro.akashi@linaro.org> <20141008141306.GQ26140@arm.com> <20141009092358.GB3141@arm.com> Message-ID: <545ADF8F.70809@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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: >> On Wed, Oct 8, 2014 at 9:13 AM, Will Deacon wrote: >>> On Thu, Oct 02, 2014 at 10:46:11AM +0100, AKASHI Takahiro wrote: >>>> 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 >> 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 >