Author: fireball
Date: Sun Apr 24 11:24:37 2011
New Revision: 51445
URL: http://svn.reactos.org/svn/reactos?rev=51445&view=rev
Log:
[NTOSKRNL/KE]
- Correctly return whether there is a kernel APC pending in KiSwapContextExit. Fixes IRQL asserts seen in bugs 5955 and 5777. Michael Martin's help in finding and fixing this bug was invaluable. Also thanks to Art Yerkes and testing team for additional information.
See issue #5955 for more details.
Modified:
trunk/reactos/ntoskrnl/ke/i386/thrdini.c
Modified: trunk/reactos/ntoskrnl/ke/i386/thrdini.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/thrdini.c…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/thrdini.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/thrdini.c [iso-8859-1] Sun Apr 24 11:24:37 2011
@@ -397,12 +397,14 @@
if (!NewThread->SpecialApcDisable)
{
/* Request APC delivery */
- if (SwitchFrame->ApcBypassDisable) HalRequestSoftwareInterrupt(APC_LEVEL);
- return TRUE;
- }
- }
-
- /* Return */
+ if (SwitchFrame->ApcBypassDisable)
+ HalRequestSoftwareInterrupt(APC_LEVEL);
+ else
+ return TRUE;
+ }
+ }
+
+ /* Return stating that no kernel APCs are pending*/
return FALSE;
}