diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index d4cb5666ee69..d41c18cc3407 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -6,6 +6,10 @@ * Copyright 2020 Google LLC */ +#ifndef __GENKSYSMS__ +#include +#endif + #define CREATE_TRACE_POINTS #include #include @@ -83,6 +87,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_iommu_setup_dma_ops); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_alloc_iova); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_free_iova); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_iommu_iovad_init_alloc_algo); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ptype_head); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_allow_domain_state); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_enter); diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 851bfc2cf074..7ac6dc205984 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -579,6 +579,9 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base, } init_iova_domain(iovad, 1UL << order, base_pfn); + + trace_android_rvh_iommu_iovad_init_alloc_algo(dev, iovad); + ret = iova_domain_init_rcaches(iovad); if (ret) goto done_unlock; diff --git a/include/trace/hooks/iommu.h b/include/trace/hooks/iommu.h index 6357a6bc8f96..86b12dbb6d59 100644 --- a/include/trace/hooks/iommu.h +++ b/include/trace/hooks/iommu.h @@ -23,6 +23,10 @@ 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)); +DECLARE_RESTRICTED_HOOK(android_rvh_iommu_iovad_init_alloc_algo, + TP_PROTO(struct device *dev, struct iova_domain *iovad), + TP_ARGS(dev, iovad), 1); + #endif /* _TRACE_HOOK_IOMMU_H */ /* This part must be outside protection */