[NTOS] Allocate the trap frame on the stack by decreasing esp before modifying any...
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 15 Feb 2010 20:16:15 +0000 (20:16 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 15 Feb 2010 20:16:15 +0000 (20:16 +0000)
commit690fd6eb6d7495aa41a94451cd1053ac9ee9c72c
tree183693da615c7604950d3ce9b4de85c690b2ee12
parenta7994c98a596a4a35f49bc891e650e4f262e82c9
[NTOS] Allocate the trap frame on the stack by decreasing esp before modifying any members.
While doing it after is a tiny optimization (no need to wait for esp to be ready) and would work with all real traps (which clear cli), it doesn't work with Zw calls that directly call KiSystemService with interrupts enabled. This caused random trap frame corruption when an interrupt fired after members of the trap frame have been set but before esp was adjusted. Should hopefully fix most random failures on real hardware and qemu.

svn path=/trunk/; revision=45598
reactos/ntoskrnl/include/internal/i386/asmmacro.S