diff options
Diffstat (limited to 'arch/um/kernel/ptrace.c')
-rw-r--r-- | arch/um/kernel/ptrace.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c index 959b2d2490df..ffc599bd85c3 100644 --- a/arch/um/kernel/ptrace.c +++ b/arch/um/kernel/ptrace.c | |||
@@ -98,12 +98,14 @@ long sys_ptrace(long request, long pid, long addr, long data) | |||
98 | if(addr < MAX_REG_OFFSET){ | 98 | if(addr < MAX_REG_OFFSET){ |
99 | tmp = getreg(child, addr); | 99 | tmp = getreg(child, addr); |
100 | } | 100 | } |
101 | #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT) | ||
101 | else if((addr >= offsetof(struct user, u_debugreg[0])) && | 102 | else if((addr >= offsetof(struct user, u_debugreg[0])) && |
102 | (addr <= offsetof(struct user, u_debugreg[7]))){ | 103 | (addr <= offsetof(struct user, u_debugreg[7]))){ |
103 | addr -= offsetof(struct user, u_debugreg[0]); | 104 | addr -= offsetof(struct user, u_debugreg[0]); |
104 | addr = addr >> 2; | 105 | addr = addr >> 2; |
105 | tmp = child->thread.arch.debugregs[addr]; | 106 | tmp = child->thread.arch.debugregs[addr]; |
106 | } | 107 | } |
108 | #endif | ||
107 | ret = put_user(tmp, (unsigned long __user *) data); | 109 | ret = put_user(tmp, (unsigned long __user *) data); |
108 | break; | 110 | break; |
109 | } | 111 | } |
@@ -127,7 +129,7 @@ long sys_ptrace(long request, long pid, long addr, long data) | |||
127 | ret = putreg(child, addr, data); | 129 | ret = putreg(child, addr, data); |
128 | break; | 130 | break; |
129 | } | 131 | } |
130 | #if 0 /* XXX x86_64 */ | 132 | #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT) |
131 | else if((addr >= offsetof(struct user, u_debugreg[0])) && | 133 | else if((addr >= offsetof(struct user, u_debugreg[0])) && |
132 | (addr <= offsetof(struct user, u_debugreg[7]))){ | 134 | (addr <= offsetof(struct user, u_debugreg[7]))){ |
133 | addr -= offsetof(struct user, u_debugreg[0]); | 135 | addr -= offsetof(struct user, u_debugreg[0]); |