Fix restoring cpl in the swi_ast_phantom case. The system sometimes

returned to user mode without enabling ASTs.  The problem fixed itself
at the next syscall or non-FPU trap, if any.  It hung the system for
a test process that masked SIGFPE's and divided by zero.  The faulting
division was returned to endlessly and this gave plently of opportunities
for the swi_ast_phantom case to be reached; after it was reached the
system hung because the ASTs for preemption and SIGINT handling were
disabled.
This commit is contained in:
Bruce Evans 1995-02-20 20:35:24 +00:00
parent e6373c9ec0
commit 7335113fc2

View File

@ -36,7 +36,7 @@
*
* @(#)icu.s 7.2 (Berkeley) 5/21/91
*
* $Id: icu.s,v 1.19 1995/02/08 21:46:44 bde Exp $
* $Id: icu.s,v 1.20 1995/02/17 02:22:50 phk Exp $
*/
/*
@ -203,6 +203,7 @@ swi_ast_phantom:
*/
cli
orl $SWI_AST_PENDING,_ipending
subl %eax,%eax
jmp doreti_exit /* SWI_AST is highest so we must be done */
/*