Deleted Added
full compact
131d130
< ACPI_TABLE_HEADER *OverrideTable = NULL;
244a244,245
> * NOTE: the table is fully mapped at this point, and the mapping will
> * be deleted by TbTableOverride if the table is actually overridden.
246,252c247
< Status = AcpiOsTableOverride (TableDesc->Pointer, &OverrideTable);
< if (ACPI_SUCCESS (Status) && OverrideTable)
< {
< ACPI_INFO ((AE_INFO,
< "%4.4s @ 0x%p Table override, replaced with:",
< TableDesc->Pointer->Signature,
< ACPI_CAST_PTR (void, TableDesc->Address)));
---
> (void) AcpiTbTableOverride (TableDesc->Pointer, TableDesc);
254,265d248
< /* We can delete the table that was passed as a parameter */
<
< AcpiTbDeleteTable (TableDesc);
<
< /* Setup descriptor for the new table */
<
< TableDesc->Address = ACPI_PTR_TO_PHYSADDR (OverrideTable);
< TableDesc->Pointer = OverrideTable;
< TableDesc->Length = OverrideTable->Length;
< TableDesc->Flags = ACPI_TABLE_ORIGIN_OVERRIDE;
< }
<
285a269,360
> * FUNCTION: AcpiTbTableOverride
> *
> * PARAMETERS: TableHeader - Header for the original table
> * TableDesc - Table descriptor initialized for the
> * original table. May or may not be mapped.
> *
> * RETURN: Pointer to the entire new table. NULL if table not overridden.
> * If overridden, installs the new table within the input table
> * descriptor.
> *
> * DESCRIPTION: Attempt table override by calling the OSL override functions.
> * Note: If the table is overridden, then the entire new table
> * is mapped and returned by this function.
> *
> ******************************************************************************/
>
> ACPI_TABLE_HEADER *
> AcpiTbTableOverride (
> ACPI_TABLE_HEADER *TableHeader,
> ACPI_TABLE_DESC *TableDesc)
> {
> ACPI_STATUS Status;
> ACPI_TABLE_HEADER *NewTable = NULL;
> ACPI_PHYSICAL_ADDRESS NewAddress = 0;
> UINT32 NewTableLength = 0;
> UINT8 NewFlags;
> char *OverrideType;
>
>
> /* (1) Attempt logical override (returns a logical address) */
>
> Status = AcpiOsTableOverride (TableHeader, &NewTable);
> if (ACPI_SUCCESS (Status) && NewTable)
> {
> NewAddress = ACPI_PTR_TO_PHYSADDR (NewTable);
> NewTableLength = NewTable->Length;
> NewFlags = ACPI_TABLE_ORIGIN_OVERRIDE;
> OverrideType = "Logical";
> goto FinishOverride;
> }
>
> /* (2) Attempt physical override (returns a physical address) */
>
> Status = AcpiOsPhysicalTableOverride (TableHeader,
> &NewAddress, &NewTableLength);
> if (ACPI_SUCCESS (Status) && NewAddress && NewTableLength)
> {
> /* Map the entire new table */
>
> NewTable = AcpiOsMapMemory (NewAddress, NewTableLength);
> if (!NewTable)
> {
> ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
> "%4.4s %p Attempted physical table override failed",
> TableHeader->Signature,
> ACPI_CAST_PTR (void, TableDesc->Address)));
> return (NULL);
> }
>
> OverrideType = "Physical";
> NewFlags = ACPI_TABLE_ORIGIN_MAPPED;
> goto FinishOverride;
> }
>
> return (NULL); /* There was no override */
>
>
> FinishOverride:
>
> ACPI_INFO ((AE_INFO,
> "%4.4s %p %s table override, new table: %p",
> TableHeader->Signature,
> ACPI_CAST_PTR (void, TableDesc->Address),
> OverrideType, NewTable));
>
> /* We can now unmap/delete the original table (if fully mapped) */
>
> AcpiTbDeleteTable (TableDesc);
>
> /* Setup descriptor for the new table */
>
> TableDesc->Address = NewAddress;
> TableDesc->Pointer = NewTable;
> TableDesc->Length = NewTableLength;
> TableDesc->Flags = NewFlags;
>
> return (NewTable);
> }
>
>
> /*******************************************************************************
> *