Make sure to enable interrupts before lower IPL so we don't block any

interrupts (IPI) we shouldn't.
This commit is contained in:
matt 2004-12-04 05:56:28 +00:00
parent 25486664b0
commit 080d581a20
1 changed files with 9 additions and 5 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore_subr.S,v 1.25 2004/07/09 22:00:46 matt Exp $ */ /* $NetBSD: locore_subr.S,v 1.26 2004/12/04 05:56:28 matt Exp $ */
/* /*
* Copyright (c) 2001 Wasabi Systems, Inc. * Copyright (c) 2001 Wasabi Systems, Inc.
@ -164,10 +164,10 @@ ASENTRY(Idle)
bl _C_LABEL(sched_unlock_idle) bl _C_LABEL(sched_unlock_idle)
#endif #endif
li %r3,0 /* go IPL_SCHED to IPL_NONE */ /*
bl _C_LABEL(lcsplx) * Re-enable interrupts before lowering IPL so we won't
mr %r31,%r3 /* save returned IPL mask */ * block them when we shouldn't.
*/
#if defined(PPC_IBM4XX) #if defined(PPC_IBM4XX)
wrteei 1 /* reenable ints again */ wrteei 1 /* reenable ints again */
#else /* PPC_OEA */ #else /* PPC_OEA */
@ -177,6 +177,10 @@ ASENTRY(Idle)
isync isync
#endif #endif
li %r3,0 /* go IPL_SCHED to IPL_NONE */
bl _C_LABEL(lcsplx)
mr %r31,%r3 /* save returned IPL mask */
/* /*
* At this point, other routines can be called (such as uvm_pageidlezero). * At this point, other routines can be called (such as uvm_pageidlezero).
*/ */