|
@@ -626,6 +626,7 @@ arch_ptrace(struct task_struct *child, long request,
|
|
|
unsigned long addr, unsigned long data)
|
|
|
{
|
|
|
int ret;
|
|
|
+ unsigned long __user *datap = (unsigned long __user *) data;
|
|
|
|
|
|
switch (request) {
|
|
|
/*
|
|
@@ -640,8 +641,7 @@ arch_ptrace(struct task_struct *child, long request,
|
|
|
* read the word at location addr in the USER area.
|
|
|
*/
|
|
|
case PTRACE_PEEKUSR:
|
|
|
- ret = ptrace_read_user(child, addr,
|
|
|
- (unsigned long __user *)data);
|
|
|
+ ret = ptrace_read_user(child, addr, datap);
|
|
|
break;
|
|
|
|
|
|
/*
|
|
@@ -662,11 +662,11 @@ 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, (void __user *)data);
|
|
|
+ ret = ptrace_setregs(child, datap);
|
|
|
break;
|
|
|
|
|
|
default:
|