|
@@ -330,46 +330,9 @@ extern int iommu_domain_window_enable(struct iommu_domain *domain, u32 wnd_nr,
|
|
|
phys_addr_t offset, u64 size,
|
|
|
int prot);
|
|
|
extern void iommu_domain_window_disable(struct iommu_domain *domain, u32 wnd_nr);
|
|
|
-/**
|
|
|
- * report_iommu_fault() - report about an IOMMU fault to the IOMMU framework
|
|
|
- * @domain: the iommu domain where the fault has happened
|
|
|
- * @dev: the device where the fault has happened
|
|
|
- * @iova: the faulting address
|
|
|
- * @flags: mmu fault flags (e.g. IOMMU_FAULT_READ/IOMMU_FAULT_WRITE/...)
|
|
|
- *
|
|
|
- * This function should be called by the low-level IOMMU implementations
|
|
|
- * whenever IOMMU faults happen, to allow high-level users, that are
|
|
|
- * interested in such events, to know about them.
|
|
|
- *
|
|
|
- * This event may be useful for several possible use cases:
|
|
|
- * - mere logging of the event
|
|
|
- * - dynamic TLB/PTE loading
|
|
|
- * - if restarting of the faulting device is required
|
|
|
- *
|
|
|
- * Returns 0 on success and an appropriate error code otherwise (if dynamic
|
|
|
- * PTE/TLB loading will one day be supported, implementations will be able
|
|
|
- * to tell whether it succeeded or not according to this return value).
|
|
|
- *
|
|
|
- * Specifically, -ENOSYS is returned if a fault handler isn't installed
|
|
|
- * (though fault handlers can also return -ENOSYS, in case they want to
|
|
|
- * elicit the default behavior of the IOMMU drivers).
|
|
|
- */
|
|
|
-static inline int report_iommu_fault(struct iommu_domain *domain,
|
|
|
- struct device *dev, unsigned long iova, int flags)
|
|
|
-{
|
|
|
- int ret = -ENOSYS;
|
|
|
|
|
|
- /*
|
|
|
- * if upper layers showed interest and installed a fault handler,
|
|
|
- * invoke it.
|
|
|
- */
|
|
|
- if (domain->handler)
|
|
|
- ret = domain->handler(domain, dev, iova, flags,
|
|
|
- domain->handler_token);
|
|
|
-
|
|
|
- trace_io_page_fault(dev, iova, flags);
|
|
|
- return ret;
|
|
|
-}
|
|
|
+extern int report_iommu_fault(struct iommu_domain *domain, struct device *dev,
|
|
|
+ unsigned long iova, int flags);
|
|
|
|
|
|
static inline size_t iommu_map_sg(struct iommu_domain *domain,
|
|
|
unsigned long iova, struct scatterlist *sg,
|