|
@@ -150,6 +150,7 @@ long arch_ptrace(struct task_struct *child, long request,
|
|
|
unsigned long addr, unsigned long data)
|
|
|
{
|
|
|
int ret;
|
|
|
+ void __user *datap = (void __user *) data;
|
|
|
|
|
|
switch (request) {
|
|
|
/* Read the word at location addr in the child process */
|
|
@@ -159,8 +160,7 @@ long arch_ptrace(struct task_struct *child, long request,
|
|
|
break;
|
|
|
|
|
|
case PTRACE_PEEKUSR:
|
|
|
- ret = ptrace_read_user(child, addr,
|
|
|
- (unsigned long __user *)data);
|
|
|
+ ret = ptrace_read_user(child, addr, datap);
|
|
|
break;
|
|
|
|
|
|
/* Write the word in data at location addr */
|
|
@@ -174,11 +174,11 @@ long arch_ptrace(struct task_struct *child, long request,
|
|
|
break;
|
|
|
|
|
|
case PTRACE_GETREGS:
|
|
|
- ret = ptrace_getregs(child, (void __user *)data);
|
|
|
+ ret = ptrace_getregs(child, datap);
|
|
|
break;
|
|
|
|
|
|
case PTRACE_SETREGS:
|
|
|
- ret = ptrace_setregs(child, (const void __user *)data);
|
|
|
+ ret = ptrace_setregs(child, datap);
|
|
|
break;
|
|
|
|
|
|
default:
|