From: James S. <jsi...@us...> - 2001-10-31 17:28:57
|
Update of /cvsroot/linux-mips/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv24711/arch/mips64/kernel Modified Files: process.c Added Files: ptrace.c Log Message: Don't set CU1 bit if we don't have an FPU. Some b0rken silicon doesn't like it at all. Index: process.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/process.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- process.c 2001/10/27 17:28:54 1.3 +++ process.c 2001/10/31 17:28:54 1.4 @@ -53,7 +53,7 @@ { /* Forget lazy fpu state */ if (IS_FPU_OWNER()) { - set_cp0_status(ST0_CU1); + __enable_fpu(); __asm__ __volatile__("cfc1\t$0,$31"); CLEAR_FPU_OWNER(); } @@ -63,7 +63,7 @@ { /* Forget lazy fpu state */ if (IS_FPU_OWNER()) { - set_cp0_status(ST0_CU1); + __enable_fpu(); __asm__ __volatile__("cfc1\t$0,$31"); CLEAR_FPU_OWNER(); } @@ -123,10 +123,11 @@ /* We actually store the FPU info in the task->thread * area. */ - if(regs->cp0_status & ST0_CU1) { + if (regs->cp0_status & ST0_CU1) { memcpy(r, ¤t->thread.fpu, sizeof(current->thread.fpu)); return 1; } + return 0; /* Task didn't use the fpu at all. */ } |