Re: [PATCH v6 22/36] nds32: Debugging support

From: Arnd Bergmann
Date: Thu Jan 18 2018 - 05:37:11 EST


On Mon, Jan 15, 2018 at 6:53 AM, Greentime Hu <green.hu@xxxxxxxxx> wrote:
> From: Greentime Hu <greentime@xxxxxxxxxxxxx>
>
> This patch adds ptrace support.
>
> Signed-off-by: Vincent Chen <vincentc@xxxxxxxxxxxxx>
> Signed-off-by: Greentime Hu <greentime@xxxxxxxxxxxxx>

I must have missed this patch earlier, unfortunately I don't think
this is ready:

> +long arch_ptrace(struct task_struct *child, long request, unsigned long addr,
> + unsigned long data)
> +{
> + int ret;
> +
> + switch (request) {
> + case PTRACE_PEEKUSR:
> + ret =
> + ptrace_read_user(child, addr, (unsigned long __user *)data);
> + break;
> +
> + case PTRACE_POKEUSR:
> + ret = ptrace_write_user(child, addr, data);
> + break;
> +
> + case PTRACE_GETREGS:
> + ret = ptrace_getregs(child, (void __user *)data);
> + break;
> +
> + case PTRACE_SETREGS:
> + ret = ptrace_setregs(child, (void __user *)data);
> + break;
> +
> + case PTRACE_GETFPREGS:
> + ret = ptrace_getfpregs(child, (void __user *)data);
> + break;
> +
> + case PTRACE_SETFPREGS:
> + ret = ptrace_setfpregs(child, (void __user *)data);
> + break;
> +
> + default:
> + ret = ptrace_request(child, request, addr, data);
> + break;
> + }
> +
> + return ret;
> +}

It appears that you are implementing the old-style ptrace handling
with architecture specific commands. Please have a look at how
this is done in risc-v or arm64. If this takes more too much time
to address, I'd suggest using an empty stub function for sys_ptrace
and adding it back at a later point, but not send the current version
upstream.

Arnd