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);
}
=