]> err.no Git - linux-2.6/blobdiff - arch/mips/kernel/ptrace32.c
[PATCH] mips: task_pt_regs()
[linux-2.6] / arch / mips / kernel / ptrace32.c
index 7e55457a491f3c71b730dd5c3286030db571f02f..456ec438728cc148866817e578dc5e0cb5013191 100644 (file)
@@ -126,8 +126,7 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
                struct pt_regs *regs;
                unsigned int tmp;
 
-               regs = (struct pt_regs *) ((unsigned long) child->thread_info +
-                      THREAD_SIZE - 32 - sizeof(struct pt_regs));
+               regs = task_pt_regs(child);
                ret = 0;  /* Default return value. */
 
                switch (addr) {
@@ -201,12 +200,8 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
                                ret = -EIO;
                                goto out_tsk;
                        }
-                       if (child->thread.dsp.used_dsp) {
-                               dspreg_t *dregs = __get_dsp_regs(child);
-                               tmp = (unsigned long) (dregs[addr - DSP_BASE]);
-                       } else {
-                               tmp = -1;       /* DSP registers yet used  */
-                       }
+                       dspreg_t *dregs = __get_dsp_regs(child);
+                       tmp = (unsigned long) (dregs[addr - DSP_BASE]);
                        break;
                case DSP_CONTROL:
                        if (!cpu_has_dsp) {
@@ -263,8 +258,7 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
        case PTRACE_POKEUSR: {
                struct pt_regs *regs;
                ret = 0;
-               regs = (struct pt_regs *) ((unsigned long) child->thread_info +
-                      THREAD_SIZE - 32 - sizeof(struct pt_regs));
+               regs = task_pt_regs(child);
 
                switch (addr) {
                case 0 ... 31: