Author: ros-arm-bringup
Date: Fri Jan 1 22:05:41 2010
New Revision: 44862
URL:
http://svn.reactos.org/svn/reactos?rev=44862&view=rev
Log:
NMI Support Patch 7 Straggler:
[HAL]: Piggyback on V8086 handler (don't restore kernel GPF handler) during an
NMI, so that we don't enter another fault context during a recursive NMI after display
reset. If another NMI does happen, the V8086 GPF handler will just spin.
Modified:
trunk/reactos/hal/halx86/generic/bios.c
Modified: trunk/reactos/hal/halx86/generic/bios.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/bios.c?…
==============================================================================
--- trunk/reactos/hal/halx86/generic/bios.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/bios.c [iso-8859-1] Fri Jan 1 22:05:41 2010
@@ -313,9 +313,19 @@
HalpRestoreTrapHandlers(VOID)
{
//
- // We're back, restore the handlers we over-wrote
- //
- KeRegisterInterruptHandler(13, HalpGpfHandler);
+ // Keep dummy GPF handler in case we get an NMI during V8086
+ //
+ if (!HalpNMIInProgress)
+ {
+ //
+ // Not an NMI -- put back the original handler
+ //
+ KeRegisterInterruptHandler(13, HalpGpfHandler);
+ }
+
+ //
+ // Restore invalid opcode handler
+ //
KeRegisterInterruptHandler(6, HalpBopHandler);
}