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:
parent
e6373c9ec0
commit
7335113fc2
@ -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 */
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user