diff options
author | Ulf Carlsson <md1ulfc@mdstud.chalmers.se> | 2000-03-18 07:38:32 +0000 |
---|---|---|
committer | Ulf Carlsson <md1ulfc@mdstud.chalmers.se> | 2000-03-18 07:38:32 +0000 |
commit | c5e49420564fab0d8de0debbfee6178d7aab314c (patch) | |
tree | 5310e0d2aef376959ba44abe2b3dfcc16c1317b1 | |
parent | 233af5fa0a90f7aca4c37f71e0f17a9344dff872 (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.c | 25 | ||||
-rw-r--r-- | arch/mips64/kernel/r4k_switch.S | 4 |
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 |