summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-03-18 07:38:32 +0000
committerUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-03-18 07:38:32 +0000
commitc5e49420564fab0d8de0debbfee6178d7aab314c (patch)
tree5310e0d2aef376959ba44abe2b3dfcc16c1317b1
parent233af5fa0a90f7aca4c37f71e0f17a9344dff872 (diff)
o Fix the problem with the vanishing CP0_STATUS (stupid 1 char bug)
o Remove the tweaks in sys32_wait4
-rw-r--r--arch/mips64/kernel/linux32.c25
-rw-r--r--arch/mips64/kernel/r4k_switch.S4
2 files changed, 10 insertions, 19 deletions
diff --git a/arch/mips64/kernel/linux32.c b/arch/mips64/kernel/linux32.c
index cf98db92e..9484ed907 100644
--- a/arch/mips64/kernel/linux32.c
+++ b/arch/mips64/kernel/linux32.c
@@ -1,4 +1,4 @@
-/* $Id: linux32.c,v 1.10 2000/03/15 18:05:43 kanoj Exp $
+/* $Id: linux32.c,v 1.11 2000/03/17 22:42:13 kanoj Exp $
*
* Conversion between 32-bit and 64-bit native system calls.
*
@@ -531,23 +531,16 @@ put_rusage (struct rusage32 *ru, struct rusage *r)
return err;
}
-extern asmlinkage int sys_wait4(pid_t pid,unsigned int * stat_addr,
+extern asmlinkage int sys_wait4(pid_t pid, unsigned int * stat_addr,
int options, struct rusage * ru);
asmlinkage int
-sys32_wait4(abi64_no_regargs, struct pt_regs regs)
+sys32_wait4(__kernel_pid_t32 pid, unsigned int * stat_addr, int options,
+ struct rusage32 * ru)
{
- __kernel_pid_t32 pid = (long)regs.regs[4];
- unsigned int *stat_addr = (long)regs.regs[5];
- int options = (long)regs.regs[6];
- struct rusage32 *ru = (long)regs.regs[7];
-
- if (!ru) {
-unsigned long saved = regs.cp0_status;
- options = sys_wait4(pid, stat_addr, options, NULL);
-regs.cp0_status = saved;
- return(options);
- } else {
+ if (!ru)
+ return sys_wait4(pid, stat_addr, options, NULL);
+ else {
struct rusage r;
int ret;
unsigned int status;
@@ -566,8 +559,6 @@ regs.cp0_status = saved;
asmlinkage int
sys32_waitpid(__kernel_pid_t32 pid, unsigned int *stat_addr, int options)
{
-printk("WAITPID\n");
-while(0);
- /* return sys32_wait4(pid, stat_addr, options, NULL); */
+ return sys32_wait4(pid, stat_addr, options, NULL);
}
diff --git a/arch/mips64/kernel/r4k_switch.S b/arch/mips64/kernel/r4k_switch.S
index 1c8ab8431..05ebac4de 100644
--- a/arch/mips64/kernel/r4k_switch.S
+++ b/arch/mips64/kernel/r4k_switch.S
@@ -1,4 +1,4 @@
-/* $Id: r4k_switch.S,v 1.2 1999/10/19 20:51:45 ralf Exp $
+/* $Id: r4k_switch.S,v 1.1 1999/12/04 03:59:00 ralf Exp $
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
@@ -73,7 +73,7 @@ LEAF(lazy_fpu_switch)
beqz a0, 2f # Save floating point state
nor t3, zero, t3
- lw t1, ST_OFF(a0) # last thread looses fpu
+ ld t1, ST_OFF(a0) # last thread looses fpu
and t1, t3
sd t1, ST_OFF(a0)
sll t2, t1, 5