Author: fireball
Date: Tue Jan 29 13:08:18 2008
New Revision: 32040
URL:
http://svn.reactos.org/svn/reactos?rev=32040&view=rev
Log:
- Fix a typo in the if branch, which resulted in marking almost all memory above the
bootloader as "FirmwareTemporary", even reserved ACPI pages. This should fix the
ACPI BSOD Windows 2003 and XP show up.
- If a memory is marked as "free", leave it so, without transferring to
FirmwareTemporary.
Modified:
trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c
Modified: trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windo…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c Tue Jan 29 13:08:18 2008
@@ -363,9 +363,12 @@
//
if (BasePage + PageCount > LOADER_HIGH_ZONE)
{
- if (Mad[MadCount].MemoryType != LoaderSpecialMemory ||
- Mad[MadCount].MemoryType != LoaderFirmwarePermanent)
- {
+ if (Mad[MadCount].MemoryType != LoaderSpecialMemory &&
+ Mad[MadCount].MemoryType != LoaderFirmwarePermanent &&
+ Mad[MadCount].MemoryType != LoaderFree)
+ {
+ DbgPrint((DPRINT_WINDOWS, "Setting page %x %x to Temporary from %d\n",
+ BasePage, PageCount, Mad[MadCount].MemoryType));
Mad[MadCount].MemoryType = LoaderFirmwareTemporary;
}
@@ -466,7 +469,7 @@
// 2) Memory descriptors must map *the whole* physical memory
// showing any memory above 16/24/32 as FirmwareTemporary
//
- // 3) Overall memory blocks count must not exceed 30
+ // 3) Overall memory blocks count must not exceed 30 (?? why?)
//
//