lkml.org 
[lkml]   [2010]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 27/43] ptrace, mips: cleanup arch_ptrace()
    Date
    use new 'addrp' and 'datap' variables type of void pointer in order to remove
    unnecessary castings.

    Signed-off-by: Namhyung Kim <namhyung@gmail.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    ---
    arch/mips/kernel/ptrace.c | 23 ++++++++++++-----------
    1 files changed, 12 insertions(+), 11 deletions(-)

    diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
    index 26c29dd..c0ab9d2 100644
    --- a/arch/mips/kernel/ptrace.c
    +++ b/arch/mips/kernel/ptrace.c
    @@ -259,6 +259,8 @@ long arch_ptrace(struct task_struct *child, long request,
    unsigned long addr, unsigned long data)
    {
    int ret;
    + void __user *addrp = (void __user *) addr;
    + void __user *datap = (void __user *) data;

    switch (request) {
    /* when I and D space are separate, these will need to be fixed. */
    @@ -387,7 +389,9 @@ long arch_ptrace(struct task_struct *child, long request,
    ret = -EIO;
    goto out;
    }
    - ret = put_user(tmp, (unsigned long __user *) data);
    + ret = copy_to_user(datap, &tmp, sizeof(tmp));
    + if (ret)
    + ret = -EFAULT;
    break;
    }

    @@ -479,34 +483,31 @@ long arch_ptrace(struct task_struct *child, long request,
    }

    case PTRACE_GETREGS:
    - ret = ptrace_getregs(child, (__s64 __user *) data);
    + ret = ptrace_getregs(child, datap);
    break;

    case PTRACE_SETREGS:
    - ret = ptrace_setregs(child, (__s64 __user *) data);
    + ret = ptrace_setregs(child, datap);
    break;

    case PTRACE_GETFPREGS:
    - ret = ptrace_getfpregs(child, (__u32 __user *) data);
    + ret = ptrace_getfpregs(child, datap);
    break;

    case PTRACE_SETFPREGS:
    - ret = ptrace_setfpregs(child, (__u32 __user *) data);
    + ret = ptrace_setfpregs(child, datap);
    break;

    case PTRACE_GET_THREAD_AREA:
    - ret = put_user(task_thread_info(child)->tp_value,
    - (unsigned long __user *) data);
    + ret = put_user(task_thread_info(child)->tp_value, datap);
    break;

    case PTRACE_GET_WATCH_REGS:
    - ret = ptrace_get_watch_regs(child,
    - (struct pt_watch_regs __user *) addr);
    + ret = ptrace_get_watch_regs(child, addrp);
    break;

    case PTRACE_SET_WATCH_REGS:
    - ret = ptrace_set_watch_regs(child,
    - (struct pt_watch_regs __user *) addr);
    + ret = ptrace_set_watch_regs(child, addrp);
    break;

    default:
    --
    1.7.2.2


    \
     
     \ /
      Last update: 2010-08-27 11:51    [W:0.021 / U:90.600 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site