diff --git a/drivers/video/rockchip/mpp/mpp_iommu.c b/drivers/video/rockchip/mpp/mpp_iommu.c index 4f50641e34f5..2e035aa5f8af 100644 --- a/drivers/video/rockchip/mpp/mpp_iommu.c +++ b/drivers/video/rockchip/mpp/mpp_iommu.c @@ -20,6 +20,7 @@ #include #include #include +#include "../../../base/base.h" #include "mpp_debug.h" #include "mpp_iommu.h" @@ -459,12 +460,12 @@ int mpp_iommu_remove(struct mpp_iommu_info *info) int mpp_iommu_refresh(struct mpp_iommu_info *info, struct device *dev) { - int i; + int idx, i; int usage_count; struct device_link *link; struct device *iommu_dev = &info->pdev->dev; - rcu_read_lock(); + idx = device_links_read_lock(); usage_count = atomic_read(&iommu_dev->power.usage_count); list_for_each_entry_rcu(link, &dev->links.suppliers, c_node) { @@ -477,7 +478,7 @@ int mpp_iommu_refresh(struct mpp_iommu_info *info, struct device *dev) pm_runtime_get_sync(link->supplier); } - rcu_read_unlock(); + device_links_read_unlock(idx); return 0; }