Hello, booting bootcd leads to a stackfault of VMWare, build server experiences similar problems.
Trunk is locked with write access available to Dmitry Gorbachev to fix the issue, and to anyone by request who has the fix.
WBR, Aleksey Bragin.
Hi all,
booting bootcd leads to a stackfault of VMWare, build server experiences similar problems.
we figured out the problem appeared with revision 37825: If you apply the following change trunk is working again:
Index: ntoskrnl/ke/i386/kiinit.c =================================================================== --- ntoskrnl/ke/i386/kiinit.c (Revision 37839) +++ ntoskrnl/ke/i386/kiinit.c (Arbeitskopie) @@ -611,7 +611,7 @@ IN PKIPCR *Pcr, IN PKTSS *Tss) { - KDESCRIPTOR GdtDescriptor = { 0, 0, 0 }, IdtDescriptor = { 0, 0, 0 }; + KDESCRIPTOR GdtDescriptor = { 0 }, IdtDescriptor = { 0 }; KGDTENTRY TssSelector, PcrSelector; USHORT Tr = 0, Fs;
Trunk is locked with write access available to Dmitry Gorbachev to fix the issue, and to anyone by request who has the fix.
My personal remarks:
- I can't see any reason, why the original change break trunk. - I figured out, it doesn't depend on number spezifiers e.g. "0UL" or something like this - In general I think it's not a good idea to fill more then one field of a struct during one assembler statement (in this case sgdt/sldt), because we have no information about alignment, and so it may lead to unexpected results.
Regards
Matthias