diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2009-05-10 12:16:06 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-05-10 14:49:52 -0400 |
commit | 4c25a2c1b90bf785fc2e2f0f0c74a80b3e070d39 (patch) | |
tree | 2784fbbf4d6782db300b92870d2bf6111ef26627 /drivers/pci/dmar.c | |
parent | fa3b6dcd5298db2e7b63c17795c9e5570d3df8d9 (diff) |
intel-iommu: Clean up handling of "caching mode" vs. context flushing.
It really doesn't make a lot of sense to have some of the logic to
handle caching vs. non-caching mode duplicated in qi_flush_context() and
__iommu_flush_context(), while the return value indicates whether the
caller should take other action which depends on the same thing.
Especially since qi_flush_context() thought it was returning something
entirely different anyway.
This patch makes qi_flush_context() and __iommu_flush_context() both
return void, removes the 'non_present_entry_flush' argument and makes
the only call site which _set_ that argument to 1 do the right thing.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/pci/dmar.c')
-rw-r--r-- | drivers/pci/dmar.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index d3d86b749eee..10a071ba3232 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c | |||
@@ -723,23 +723,16 @@ void qi_global_iec(struct intel_iommu *iommu) | |||
723 | qi_submit_sync(&desc, iommu); | 723 | qi_submit_sync(&desc, iommu); |
724 | } | 724 | } |
725 | 725 | ||
726 | int qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, | 726 | void qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, |
727 | u64 type, int non_present_entry_flush) | 727 | u64 type) |
728 | { | 728 | { |
729 | struct qi_desc desc; | 729 | struct qi_desc desc; |
730 | 730 | ||
731 | if (non_present_entry_flush) { | ||
732 | if (!cap_caching_mode(iommu->cap)) | ||
733 | return 1; | ||
734 | else | ||
735 | did = 0; | ||
736 | } | ||
737 | |||
738 | desc.low = QI_CC_FM(fm) | QI_CC_SID(sid) | QI_CC_DID(did) | 731 | desc.low = QI_CC_FM(fm) | QI_CC_SID(sid) | QI_CC_DID(did) |
739 | | QI_CC_GRAN(type) | QI_CC_TYPE; | 732 | | QI_CC_GRAN(type) | QI_CC_TYPE; |
740 | desc.high = 0; | 733 | desc.high = 0; |
741 | 734 | ||
742 | return qi_submit_sync(&desc, iommu); | 735 | qi_submit_sync(&desc, iommu); |
743 | } | 736 | } |
744 | 737 | ||
745 | int qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, | 738 | int qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, |