diff --git a/drivers/video/rockchip/mpp/mpp_common.c b/drivers/video/rockchip/mpp/mpp_common.c index f63de545f362..3b3d02a5cf24 100644 --- a/drivers/video/rockchip/mpp/mpp_common.c +++ b/drivers/video/rockchip/mpp/mpp_common.c @@ -1805,9 +1805,9 @@ static int mpp_iommu_handle(struct iommu_domain *iommu, unsigned long iova, int status, void *arg) { - struct mpp_taskqueue *queue = (struct mpp_taskqueue *)arg; + struct mpp_dev *mpp = (struct mpp_dev *)arg; + struct mpp_taskqueue *queue = mpp->queue; struct mpp_task *task = mpp_taskqueue_get_running_task(queue); - struct mpp_dev *mpp; /* * NOTE: In link mode, this task may not be the task of the current @@ -1823,7 +1823,7 @@ static int mpp_iommu_handle(struct iommu_domain *iommu, mpp_task_dump_hw_reg(mpp, task); if (mpp->iommu_info->hdl) - mpp->iommu_info->hdl(iommu, iommu_dev, iova, status, arg); + mpp->iommu_info->hdl(iommu, iommu_dev, iova, status, mpp); return 0; } @@ -1924,7 +1924,7 @@ int mpp_dev_probe(struct mpp_dev *mpp, /* set iommu fault handler */ if (!IS_ERR(mpp->iommu_info)) iommu_set_fault_handler(mpp->iommu_info->domain, - mpp_iommu_handle, mpp->queue); + mpp_iommu_handle, mpp); /* read hardware id */ if (hw_info->reg_id >= 0) {