diff options
Diffstat (limited to 'drivers/pci/dmar.c')
| -rw-r--r-- | drivers/pci/dmar.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index 7b287cb38b7a..ab99783dccec 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 | #undef PREFIX | 38 | #undef PREFIX |
| 38 | #define PREFIX "DMAR:" | 39 | #define PREFIX "DMAR:" |
| @@ -413,6 +414,12 @@ parse_dmar_table(void) | |||
| 413 | */ | 414 | */ |
| 414 | dmar_table_detect(); | 415 | dmar_table_detect(); |
| 415 | 416 | ||
| 417 | /* | ||
| 418 | * ACPI tables may not be DMA protected by tboot, so use DMAR copy | ||
| 419 | * SINIT saved in SinitMleData in TXT heap (which is DMA protected) | ||
| 420 | */ | ||
| 421 | dmar_tbl = tboot_get_dmar_table(dmar_tbl); | ||
| 422 | |||
| 416 | dmar = (struct acpi_table_dmar *)dmar_tbl; | 423 | dmar = (struct acpi_table_dmar *)dmar_tbl; |
| 417 | if (!dmar) | 424 | if (!dmar) |
| 418 | return -ENODEV; | 425 | return -ENODEV; |
