diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index b7f23ab2dec7..07c97e495629 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -202,7 +202,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_mem_abort); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sp_pc_abort); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_setup_dma_ops); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_alloc_iova); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_alloc_iova); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_free_iova); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_free_iova); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_alloc_start); diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 7bbccb680c2b..3a6deab3144c 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -488,6 +488,7 @@ static dma_addr_t iommu_dma_alloc_iova(struct iommu_domain *domain, true); trace_android_vh_iommu_alloc_iova(dev, (dma_addr_t)iova << shift, size); + trace_android_vh_iommu_iovad_alloc_iova(dev, iovad, (dma_addr_t)iova << shift, size); return (dma_addr_t)iova << shift; } @@ -508,6 +509,7 @@ static void iommu_dma_free_iova(struct iommu_dma_cookie *cookie, size >> iova_shift(iovad)); trace_android_vh_iommu_free_iova(iova, size); + trace_android_vh_iommu_iovad_free_iova(iovad, iova, size); } static void __iommu_dma_unmap(struct device *dev, dma_addr_t dma_addr, diff --git a/include/trace/hooks/iommu.h b/include/trace/hooks/iommu.h index b53d0b8769ac..dd54a50b3aa4 100644 --- a/include/trace/hooks/iommu.h +++ b/include/trace/hooks/iommu.h @@ -20,10 +20,20 @@ DECLARE_HOOK(android_vh_iommu_alloc_iova, TP_PROTO(struct device *dev, dma_addr_t iova, size_t size), TP_ARGS(dev, iova, size)); +struct iova_domain; + +DECLARE_HOOK(android_vh_iommu_iovad_alloc_iova, + TP_PROTO(struct device *dev, struct iova_domain *iovad, dma_addr_t iova, size_t size), + TP_ARGS(dev, iovad, iova, size)); + DECLARE_HOOK(android_vh_iommu_free_iova, TP_PROTO(dma_addr_t iova, size_t size), TP_ARGS(iova, size)); +DECLARE_HOOK(android_vh_iommu_iovad_free_iova, + TP_PROTO(struct iova_domain *iovad, dma_addr_t iova, size_t size), + TP_ARGS(iovad, iova, size)); + #endif /* _TRACE_HOOK_IOMMU_H */