- Finish the work around for the Pentium cmpxchg8b lock errata: We detected the errat...
authorStefan Ginsberg <stefanginsberg@gmail.com>
Wed, 4 Nov 2009 21:57:32 +0000 (21:57 +0000)
committerStefan Ginsberg <stefanginsberg@gmail.com>
Wed, 4 Nov 2009 21:57:32 +0000 (21:57 +0000)
commit422721748d4c1d9e544a42d496227fce0c54f52f
tree2fb68d2ec6f939ac8d956bc0e1ac77838b588b3d
parent66afccbaeb5211aabea244d2245f875e90d494cb
- Finish the work around for the Pentium cmpxchg8b lock errata: We detected the errata and allocated the 7 first IDT entries on a write protected page, but the final piece of the work around, detecting the write fault ti the Invalid Opcode handler, was missing. Implemented this in the page fault handler to detect and dispatch the write fault to the Invalid Opcode handler.
- Fix the "fix" of un-protecting the 7 IDT entries on P5 in HAL's BIOS call code when setting the custom Invalid Opcode handler. The IDT was unprotected but the write protection wasn't reapplied after the BIOS call, breaking the work around.

Other:
- KdDebuggerEnabled is a BOOLEAN, so don't do a dword compare in KeUpdateSystemTime.
- Use better comment for the hack where we always allow page faults to be handled, even if they the fault occured with interrupts disabled.

svn path=/trunk/; revision=43958
reactos/hal/halx86/generic/bios.c
reactos/hal/halx86/generic/reboot.c
reactos/ntoskrnl/ke/i386/systimer.S
reactos/ntoskrnl/ke/i386/trap.s