aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/iommu/iommu.c6
-rw-r--r--include/linux/iommu.h6
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 3a072596b1b2..bd2d4d2764dd 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -43,6 +43,12 @@ EXPORT_SYMBOL_GPL(iommu_found);
43 * iommu_set_fault_handler() - set a fault handler for an iommu domain 43 * iommu_set_fault_handler() - set a fault handler for an iommu domain
44 * @domain: iommu domain 44 * @domain: iommu domain
45 * @handler: fault handler 45 * @handler: fault handler
46 *
47 * This function should be used by IOMMU users which want to be notified
48 * whenever an IOMMU fault happens.
49 *
50 * The fault handler itself should return 0 on success, and an appropriate
51 * error code otherwise.
46 */ 52 */
47void iommu_set_fault_handler(struct iommu_domain *domain, 53void iommu_set_fault_handler(struct iommu_domain *domain,
48 iommu_fault_handler_t handler) 54 iommu_fault_handler_t handler)
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index d084e8777e0e..ddad0ae0a433 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -98,11 +98,15 @@ extern void iommu_set_fault_handler(struct iommu_domain *domain,
98 * Returns 0 on success and an appropriate error code otherwise (if dynamic 98 * Returns 0 on success and an appropriate error code otherwise (if dynamic
99 * PTE/TLB loading will one day be supported, implementations will be able 99 * PTE/TLB loading will one day be supported, implementations will be able
100 * to tell whether it succeeded or not according to this return value). 100 * to tell whether it succeeded or not according to this return value).
101 *
102 * Specifically, -ENOSYS is returned if a fault handler isn't installed
103 * (though fault handlers can also return -ENOSYS, in case they want to
104 * elicit the default behavior of the IOMMU drivers).
101 */ 105 */
102static inline int report_iommu_fault(struct iommu_domain *domain, 106static inline int report_iommu_fault(struct iommu_domain *domain,
103 struct device *dev, unsigned long iova, int flags) 107 struct device *dev, unsigned long iova, int flags)
104{ 108{
105 int ret = 0; 109 int ret = -ENOSYS;
106 110
107 /* 111 /*
108 * if upper layers showed interest and installed a fault handler, 112 * if upper layers showed interest and installed a fault handler,