diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-06 14:26:05 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-06 14:26:05 -0700 |
commit | ffa009c366e33f3eae48bba2547051fe15795f64 (patch) | |
tree | 78736a4ee7c16819830a32a313867e3a88ac6aff /include/linux/dmar.h | |
parent | 8e320d02718d2872d52ef88a69a493e420494269 (diff) | |
parent | 46f06b72378d3187f0d12f7a60d020676bfbf332 (diff) |
Merge git://git.infradead.org/iommu-2.6
* git://git.infradead.org/iommu-2.6:
drivers/pci/intr_remapping.c: include acpi.h
intel-iommu: Fix oops in device_to_iommu() when devices not found.
intel-iommu: Handle PCI domains appropriately.
intel-iommu: Fix device-to-iommu mapping for PCI-PCI bridges.
x2apic/intr-remap: decouple interrupt remapping from x2apic
x86, dmar: check if it's initialized before disable queue invalidation
intel-iommu: set compatibility format interrupt
Intel IOMMU Suspend/Resume Support - Interrupt Remapping
Intel IOMMU Suspend/Resume Support - Queued Invalidation
Intel IOMMU Suspend/Resume Support - DMAR
intel-iommu: Add for_each_iommu() and for_each_active_iommu() macros
Diffstat (limited to 'include/linux/dmar.h')
-rw-r--r-- | include/linux/dmar.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/dmar.h b/include/linux/dmar.h index 2f342746895..e397dc342cd 100644 --- a/include/linux/dmar.h +++ b/include/linux/dmar.h @@ -34,6 +34,7 @@ struct dmar_drhd_unit { u64 reg_base_addr; /* register base address*/ struct pci_dev **devices; /* target device array */ int devices_cnt; /* target device count */ + u16 segment; /* PCI domain */ u8 ignored:1; /* ignore drhd */ u8 include_all:1; struct intel_iommu *iommu; @@ -44,6 +45,14 @@ extern struct list_head dmar_drhd_units; #define for_each_drhd_unit(drhd) \ list_for_each_entry(drhd, &dmar_drhd_units, list) +#define for_each_active_iommu(i, drhd) \ + list_for_each_entry(drhd, &dmar_drhd_units, list) \ + if (i=drhd->iommu, drhd->ignored) {} else + +#define for_each_iommu(i, drhd) \ + list_for_each_entry(drhd, &dmar_drhd_units, list) \ + if (i=drhd->iommu, 0) {} else + extern int dmar_table_init(void); extern int dmar_dev_scope_init(void); @@ -100,6 +109,8 @@ struct irte { #ifdef CONFIG_INTR_REMAP extern int intr_remapping_enabled; extern int enable_intr_remapping(int); +extern void disable_intr_remapping(void); +extern int reenable_intr_remapping(int); extern int get_irte(int irq, struct irte *entry); extern int modify_irte(int irq, struct irte *irte_modified); |