On Mon, Jan 15, 2018 at 6:53 AM, Greentime Hu <green...@gmail.com> wrote:
> From: Greentime Hu <greent...@andestech.com>
>
> This patch adds ptrace support.
>
> Signed-off-by: Vincent Chen <vince...@andestech.com>
> Signed-off-by: Greentime Hu <greent...@andestech.com>

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

Reply via email to