mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
KiInterruptDispatch was leaving interrupts disabled when dropping to PASSIVE_LEVEL to run the idle thread
I'm not quite sure I have it reenable interrupts at a safe place, but at least it does enable them svn path=/trunk/; revision=2860
This commit is contained in:
parent
50015e56ee
commit
bd99ddf7af
1 changed files with 6 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: irq.c,v 1.17 2002/02/15 14:47:04 ekohl Exp $
|
||||
/* $Id: irq.c,v 1.18 2002/04/20 03:21:35 phreak Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -344,11 +344,13 @@ KiInterruptDispatch (ULONG Vector, PKIRQ_TRAPFRAME Trapframe)
|
|||
* If the processor level will drop below dispatch level on return then
|
||||
* issue a DPC queue drain interrupt
|
||||
*/
|
||||
|
||||
__asm__("sti\n\t");
|
||||
|
||||
if (old_level < DISPATCH_LEVEL)
|
||||
{
|
||||
|
||||
HalEndSystemInterrupt (DISPATCH_LEVEL, 0);
|
||||
__asm__("sti\n\t");
|
||||
|
||||
if (KeGetCurrentThread() != NULL)
|
||||
{
|
||||
|
@ -439,10 +441,11 @@ KiInterruptDispatch (ULONG irq, PKIRQ_TRAPFRAME Trapframe)
|
|||
* If the processor level will drop below dispatch level on return then
|
||||
* issue a DPC queue drain interrupt
|
||||
*/
|
||||
__asm__("sti\n\t");
|
||||
|
||||
if (old_level < DISPATCH_LEVEL)
|
||||
{
|
||||
HalEndSystemInterrupt (DISPATCH_LEVEL, 0);
|
||||
__asm__("sti\n\t");
|
||||
|
||||
if (KeGetCurrentThread() != NULL)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue