aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/dmar.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/dmar.c')
-rw-r--r--drivers/pci/dmar.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c
index 998f02d2ba42..47aa5938fb04 100644
--- a/drivers/pci/dmar.c
+++ b/drivers/pci/dmar.c
@@ -33,6 +33,7 @@
33#include <linux/timer.h> 33#include <linux/timer.h>
34#include <linux/irq.h> 34#include <linux/irq.h>
35#include <linux/interrupt.h> 35#include <linux/interrupt.h>
36#include <linux/tboot.h>
36 37
37#define PREFIX "DMAR: " 38#define PREFIX "DMAR: "
38 39
@@ -412,6 +413,12 @@ parse_dmar_table(void)
412 */ 413 */
413 dmar_table_detect(); 414 dmar_table_detect();
414 415
416 /*
417 * ACPI tables may not be DMA protected by tboot, so use DMAR copy
418 * SINIT saved in SinitMleData in TXT heap (which is DMA protected)
419 */
420 dmar_tbl = tboot_get_dmar_table(dmar_tbl);
421
415 dmar = (struct acpi_table_dmar *)dmar_tbl; 422 dmar = (struct acpi_table_dmar *)dmar_tbl;
416 if (!dmar) 423 if (!dmar)
417 return -ENODEV; 424 return -ENODEV;