[ros-diffs] [cgutman] 53247: [HALACPI] - Fix several bugs involving garbage data in a PHYSICAL_ADDRESS struct
cgutman at svn.reactos.org
cgutman at svn.reactos.org
Mon Aug 15 01:19:21 UTC 2011
Author: cgutman
Date: Mon Aug 15 01:19:20 2011
New Revision: 53247
URL: http://svn.reactos.org/svn/reactos?rev=53247&view=rev
Log:
[HALACPI]
- Fix several bugs involving garbage data in a PHYSICAL_ADDRESS struct
Modified:
trunk/reactos/hal/halx86/generic/acpi/halacpi.c
Modified: trunk/reactos/hal/halx86/generic/acpi/halacpi.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/acpi/halacpi.c?rev=53247&r1=53246&r2=53247&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/generic/acpi/halacpi.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/acpi/halacpi.c [iso-8859-1] Mon Aug 15 01:19:20 2011
@@ -166,6 +166,7 @@
if (Fadt)
{
/* Grab the DSDT address and assume 2 pages */
+ PhysicalAddress.HighPart = 0;
PhysicalAddress.LowPart = Fadt->dsdt;
TableLength = 2 * PAGE_SIZE;
@@ -263,6 +264,7 @@
{
/* Read the 32-bit physical address */
PhysicalAddress.LowPart = Rsdt->Tables[CurrentEntry];
+ PhysicalAddress.HighPart = 0;
}
else
{
@@ -603,6 +605,7 @@
PageCount = BYTES_TO_PAGES(NodeLength);
/* Allocate the memory */
+ PhysicalAddress.HighPart = 0;
PhysicalAddress.LowPart = HalpAllocPhysicalMemory(LoaderBlock,
0x1000000,
PageCount,
@@ -652,12 +655,13 @@
/* Find the RSDT */
Status = HalpAcpiFindRsdtPhase0(LoaderBlock, &AcpiMultiNode);
if (!NT_SUCCESS(Status)) return Status;
+
+ PhysicalAddress.QuadPart = AcpiMultiNode->RsdtAddress.QuadPart;
/* Map the RSDT */
if (LoaderBlock)
{
/* Phase0: Use HAL Heap to map the RSDT, we assume it's about 2 pages */
- PhysicalAddress.QuadPart = AcpiMultiNode->RsdtAddress.QuadPart;
MappedAddress = HalpMapPhysicalMemory64(PhysicalAddress, 2);
}
else
More information about the Ros-diffs
mailing list