linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / mips / kernel / irixsig.c
index 676e868..08273a2 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/smp_lock.h>
 #include <linux/time.h>
 #include <linux/ptrace.h>
-#include <linux/resource.h>
 
 #include <asm/ptrace.h>
 #include <asm/uaccess.h>
@@ -261,7 +260,7 @@ irix_sigreturn(struct pt_regs *regs)
 
                for(i = 0; i < 32; i++)
                        error |= __get_user(fregs[i], &context->fpregs[i]);
-               error |= __get_user(current->thread.fpu.fcr31, &context->fpcsr);
+               error |= __get_user(current->thread.fpu.hard.fcr31, &context->fpcsr);
        }
 
        /* XXX do sigstack crapola here... XXX */
@@ -541,6 +540,8 @@ out:
 #define IRIX_P_PGID   2
 #define IRIX_P_ALL    7
 
+extern int getrusage(struct task_struct *, int, struct rusage __user *);
+
 #define W_EXITED     1
 #define W_TRAPPED    2
 #define W_STOPPED    4
@@ -602,7 +603,7 @@ repeat:
                        /* move to end of parent's list to avoid starvation */
                        write_lock_irq(&tasklist_lock);
                        remove_parent(p);
-                       add_parent(p);
+                       add_parent(p, p->parent);
                        write_unlock_irq(&tasklist_lock);
                        retval = ru ? getrusage(p, RUSAGE_BOTH, ru) : 0;
                        if (retval)
@@ -642,7 +643,7 @@ repeat:
                                write_lock_irq(&tasklist_lock);
                                remove_parent(p);
                                p->parent = p->real_parent;
-                               add_parent(p);
+                               add_parent(p, p->parent);
                                do_notify_parent(p, SIGCHLD);
                                write_unlock_irq(&tasklist_lock);
                        } else