diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2009-03-16 20:04:57 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2009-03-17 18:39:58 -0400 |
commit | 1531a6a6b81a4e6f9eec9a5608758a6ea14b96e0 (patch) | |
tree | 3b1523516192fdd19b286879376b4d3d7c827b0d /drivers/pci/dmar.c | |
parent | eba67e5da6e971993b2899d2cdf459ce77d3dbc5 (diff) |
x86, dmar: start with sane state while enabling dma and interrupt-remapping
Impact: cleanup/sanitization
Start from a sane state while enabling dma and interrupt-remapping, by
clearing the previous recorded faults and disabling previously
enabled queued invalidation and interrupt-remapping.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'drivers/pci/dmar.c')
-rw-r--r-- | drivers/pci/dmar.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index 932e5e3930fc..f1805002e436 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c | |||
@@ -982,7 +982,7 @@ static int dmar_fault_do_one(struct intel_iommu *iommu, int type, | |||
982 | } | 982 | } |
983 | 983 | ||
984 | #define PRIMARY_FAULT_REG_LEN (16) | 984 | #define PRIMARY_FAULT_REG_LEN (16) |
985 | static irqreturn_t dmar_fault(int irq, void *dev_id) | 985 | irqreturn_t dmar_fault(int irq, void *dev_id) |
986 | { | 986 | { |
987 | struct intel_iommu *iommu = dev_id; | 987 | struct intel_iommu *iommu = dev_id; |
988 | int reg, fault_index; | 988 | int reg, fault_index; |
@@ -1074,9 +1074,6 @@ int dmar_set_interrupt(struct intel_iommu *iommu) | |||
1074 | return 0; | 1074 | return 0; |
1075 | } | 1075 | } |
1076 | 1076 | ||
1077 | /* Force fault register is cleared */ | ||
1078 | dmar_fault(irq, iommu); | ||
1079 | |||
1080 | ret = request_irq(irq, dmar_fault, 0, iommu->name, iommu); | 1077 | ret = request_irq(irq, dmar_fault, 0, iommu->name, iommu); |
1081 | if (ret) | 1078 | if (ret) |
1082 | printk(KERN_ERR "IOMMU: can't request irq\n"); | 1079 | printk(KERN_ERR "IOMMU: can't request irq\n"); |