diff options
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r-- | sys/arch/sparc64/sparc64/trap.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c index 6b2b67ffb50..57820d5d2b2 100644 --- a/sys/arch/sparc64/sparc64/trap.c +++ b/sys/arch/sparc64/sparc64/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.43 2006/07/01 16:24:17 miod Exp $ */ +/* $OpenBSD: trap.c,v 1.44 2006/12/24 20:29:19 miod Exp $ */ /* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */ /* @@ -526,7 +526,14 @@ badtrap: #endif case T_AST: - break; /* the work is all in userret() */ + want_ast = 0; + if (p->p_flag & P_OWEUPC) { + p->p_flag &= ~P_OWEUPC; + ADDUPROF(p); + } + if (want_resched) + preempt(NULL); + break; case T_ILLINST: { |