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/window... ============================================================================== --- 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?) //
//