Fix page fault when trying to find ACPI table
This commit is contained in:
parent
47219585d4
commit
3f10e1b59e
@ -385,9 +385,13 @@ XTSTATUS
|
|||||||
HlpQueryAcpiCache(IN ULONG Signature,
|
HlpQueryAcpiCache(IN ULONG Signature,
|
||||||
OUT PACPI_DESCRIPTION_HEADER *AcpiTable)
|
OUT PACPI_DESCRIPTION_HEADER *AcpiTable)
|
||||||
{
|
{
|
||||||
|
PACPI_DESCRIPTION_HEADER TableHeader;
|
||||||
PACPI_CACHE_LIST AcpiCache;
|
PACPI_CACHE_LIST AcpiCache;
|
||||||
PLIST_ENTRY ListEntry;
|
PLIST_ENTRY ListEntry;
|
||||||
|
|
||||||
|
/* Initialize variables */
|
||||||
|
TableHeader = NULL;
|
||||||
|
|
||||||
/* Iterate through ACPI tables cache list */
|
/* Iterate through ACPI tables cache list */
|
||||||
ListEntry = HlpAcpiCacheList.Flink;
|
ListEntry = HlpAcpiCacheList.Flink;
|
||||||
while(ListEntry != &HlpAcpiCacheList)
|
while(ListEntry != &HlpAcpiCacheList)
|
||||||
@ -399,7 +403,7 @@ HlpQueryAcpiCache(IN ULONG Signature,
|
|||||||
if(AcpiCache->Header.Signature == Signature)
|
if(AcpiCache->Header.Signature == Signature)
|
||||||
{
|
{
|
||||||
/* ACPI table found in cache, return it */
|
/* ACPI table found in cache, return it */
|
||||||
*AcpiTable = &AcpiCache->Header;
|
TableHeader = &AcpiCache->Header;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,13 +412,14 @@ HlpQueryAcpiCache(IN ULONG Signature,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check if the requested ACPI table was found in the cache */
|
/* Check if the requested ACPI table was found in the cache */
|
||||||
if(*AcpiTable == NULL)
|
if(TableHeader == NULL)
|
||||||
{
|
{
|
||||||
/* ACPI table not found in cache, return error */
|
/* ACPI table not found in cache, return error */
|
||||||
return STATUS_NOT_FOUND;
|
return STATUS_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return success */
|
/* Return table header and status code */
|
||||||
|
*AcpiTable = TableHeader;
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user