[PATCH RESEND v3 04/24] ptrace: cleanup arch_ptrace() on x86

From: Namhyung Kim
Date: Thu Sep 30 2010 - 05:28:42 EST


Remove checking @addr less than 0 because @addr is now unsigned and
use new udescp variable in order to remove unnecessary castings.

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
---
arch/x86/kernel/ptrace.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index 1a7ca04..6167a0c 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -806,6 +806,7 @@ long arch_ptrace(struct task_struct *child, long request,
{
int ret;
unsigned long __user *datap = (unsigned long __user *)data;
+ struct user_desc __user *udescp = (struct user_desc __user *)data;

switch (request) {
/* read the word at location addr in the USER area. */
@@ -813,8 +814,7 @@ long arch_ptrace(struct task_struct *child, long request,
unsigned long tmp;

ret = -EIO;
- if ((addr & (sizeof(data) - 1)) || addr < 0 ||
- addr >= sizeof(struct user))
+ if ((addr & (sizeof(data) - 1)) || addr >= sizeof(struct user))
break;

tmp = 0; /* Default return condition */
@@ -831,8 +831,7 @@ long arch_ptrace(struct task_struct *child, long request,

case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
ret = -EIO;
- if ((addr & (sizeof(data) - 1)) || addr < 0 ||
- addr >= sizeof(struct user))
+ if ((addr & (sizeof(data) - 1)) || addr >= sizeof(struct user))
break;

if (addr < sizeof(struct user_regs_struct))
@@ -891,15 +890,13 @@ long arch_ptrace(struct task_struct *child, long request,
case PTRACE_GET_THREAD_AREA:
if ((int) addr < 0)
return -EIO;
- ret = do_get_thread_area(child, addr,
- (struct user_desc __user *) data);
+ ret = do_get_thread_area(child, addr, udescp);
break;

case PTRACE_SET_THREAD_AREA:
if ((int) addr < 0)
return -EIO;
- ret = do_set_thread_area(child, addr,
- (struct user_desc __user *) data, 0);
+ ret = do_set_thread_area(child, addr, udescp, 0);
break;
#endif

--
1.7.2.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/