[ros-dev] Boot broken, trunk locked

Matthias Kupfer mkupfer at reactos.org
Thu Dec 4 00:02:51 CET 2008


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

-- 
Matthias Kupfer          phone +49 (0) 371 236 46 52
Wilhelm-Firl-Straße 21   mobile +49 (0) 160 859 43 54
09122 Chemnitz



More information about the Ros-dev mailing list