[ros-diffs] [fireball] 32540: - The bootloader must zero user shared data page before passing control to the kernel. This fixes the "invalid timer state", "assert(SharedUserData->NumberOfPages == 0" family of bugs after warm reboot. See issue #3085 for more details.

fireball at svn.reactos.org fireball at svn.reactos.org
Sun Mar 9 12:32:43 CET 2008


Author: fireball
Date: Sun Mar  2 11:26:59 2008
New Revision: 32540

URL: http://svn.reactos.org/svn/reactos?rev=3D32540&view=3Drev
Log:
- The bootloader must zero user shared data page before passing control to =
the kernel. This fixes the "invalid timer state", "assert(SharedUserData->N=
umberOfPages =3D=3D 0" family of bugs after warm reboot.
See issue #3085 for more details.

Modified:
    trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c

Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/=
arch/i386/loader.c?rev=3D32540&r1=3D32539&r2=3D32540&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/i386/loader.c Sun Mar  2 11:26:=
59 2008
@@ -202,5 +202,8 @@
     PageDir->Pde[0x1FF].Valid =3D 1;
     PageDir->Pde[0x1FF].Write =3D 1;
     PageDir->Pde[0x1FF].PageFrameNumber =3D 1;
+
+    /* Zero shared data */
+    RtlZeroMemory((PVOID)(2 << MM_PAGE_SHIFT), PAGE_SIZE);
 }
 =





More information about the Ros-diffs mailing list