vserver 1.9.5.x5
[linux-2.6.git] / arch / x86_64 / kernel / ptrace.c
index 672637d..7c2d280 100644 (file)
@@ -325,6 +325,8 @@ asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data
                        ret = 0;
                        break;
                case offsetof(struct user, u_debugreg[7]):
+                       /* See arch/i386/kernel/ptrace.c for an explanation of
+                        * this awkward check.*/
                                  data &= ~DR_CONTROL_RESERVED;
                                  for(i=0; i<4; i++)
                                          if ((0x5454 >> ((data >> (16 + 4*i)) & 0xf)) & 1)
@@ -397,7 +399,7 @@ asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data
                long tmp;
 
                ret = 0;
-               if (child->state == TASK_ZOMBIE)        /* already dead */
+               if (child->exit_state == EXIT_ZOMBIE)   /* already dead */
                        break;
                clear_tsk_thread_flag(child, TIF_SINGLESTEP);
                child->exit_code = SIGKILL;
@@ -480,7 +482,7 @@ asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, long data
                        ret = -EIO;
                        break;
                }
-               child->used_math = 1;
+               set_stopped_child_used_math(child);
                ret = set_fpregs(child, (struct user_i387_struct __user *)data);
                break;
        }