mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86: fix tboot after c/s 23013:65d26504e843 (ACPI cleanup)
TXT code calls acpi_parse_dmar() with a transient copy of the DMAR table, and hence storing the pointer for later reference was wrong. Obtain the pointer in acpi_dmar_init() instead. Signed-off-by: Jan Beulich <jbeulich@novell.com> Tested-by: Gang Wei <gang.wei@intel.com>
This commit is contained in:
1 parent
1b5efa212f
commit
5286eff673
1 file changed
+7
-1
@@ -673,7 +673,6 @@ static int __init acpi_parse_dmar(struct acpi_table_header *table)
|
||||
u8 dmar_host_address_width;
|
||||
int ret = 0;
|
||||
|
||||
dmar_table = table;
|
||||
dmar = (struct acpi_table_dmar *)table;
|
||||
|
||||
if ( !iommu_enabled )
|
||||
@@ -762,6 +761,13 @@ out:
|
||||
|
||||
int __init acpi_dmar_init(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
/* Disabling IRQs avoids cross-CPU TLB flush in map_pages_to_xen(). */
|
||||
local_irq_save(flags);
|
||||
acpi_get_table(ACPI_SIG_DMAR, 0, &dmar_table);
|
||||
local_irq_restore(flags);
|
||||
|
||||
return parse_dmar_table(acpi_parse_dmar);
|
||||
}
|
||||
|
||||
|
||||