diff options
| author | Keshavamurthy, Anil S <[email protected]> | 2007-10-21 16:41:54 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-10-22 08:13:19 -0700 |
| commit | 3460a6d9cef9ac2aa997da7eff7ff1c8291b361c (patch) | |
| tree | 3cf7eb916456d781d2edb135f9069f7c94d10085 /include/linux | |
| parent | 7d3b03ce7bff9d39ebaee1bb8de1968c4434b883 (diff) | |
Intel IOMMU: DMAR fault handling support
MSI interrupt handler registrations and fault handling support for Intel-IOMMU
hadrware.
This patch enables the MSI interrupts for the DMA remapping units and in the
interrupt handler read the fault cause and outputs the same on to the console.
Signed-off-by: Anil S Keshavamurthy <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Muli Ben-Yehuda <[email protected]>
Cc: "Siddha, Suresh B" <[email protected]>
Cc: Arjan van de Ven <[email protected]>
Cc: Ashok Raj <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: Greg KH <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/dmar.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/dmar.h b/include/linux/dmar.h index 7d683dc8ed1e..ffb6439cb5e6 100644 --- a/include/linux/dmar.h +++ b/include/linux/dmar.h @@ -28,6 +28,18 @@ #ifdef CONFIG_DMAR struct intel_iommu; +extern char *dmar_get_fault_reason(u8 fault_reason); + +/* Can't use the common MSI interrupt functions + * since DMAR is not a pci device + */ +extern void dmar_msi_unmask(unsigned int irq); +extern void dmar_msi_mask(unsigned int irq); +extern void dmar_msi_read(int irq, struct msi_msg *msg); +extern void dmar_msi_write(int irq, struct msi_msg *msg); +extern int dmar_set_interrupt(struct intel_iommu *iommu); +extern int arch_setup_dmar_msi(unsigned int irq); + /* Intel IOMMU detection and initialization functions */ extern void detect_intel_iommu(void); extern int intel_iommu_init(void); |