[PATCH 3/4] accel/rocket: Fix the extra iommu_group_get call in rocket_job_handle_irq
Chaoyi Chen <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.comp.video.dri.devel,gmane.linux.ports.arm.rockchip,gmane.linux.ports.arm.kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Chaoyi Chen <[email protected]> The rocket attaches the IOMMU group in rocket_job_run() and detaches it in rocket_job_handle_irq(). Calling iommu_group_get() in rocket_job_handle_irq() causes the reference count to increase unexpectedly. And this causes rocket_core_fini() to fail to release the IOMMU group, leading to a resource leak. Fixes: 658ebeac3351 ("accel/rocket: Add IOCTL for BO creation") Signed-off-by: Chaoyi Chen <[email protected]> --- drivers/accel/rocket/rocket_job.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c index 2f1861f960cc..db10848926d8 100644 --- a/drivers/accel/rocket/rocket_job.c +++ b/drivers/accel/rocket/rocket_job.c @@ -340,7 +340,7 @@ static void rocket_job_handle_irq(struct rocket_core *core) return; } - iommu_detach_group(NULL, iommu_group_get(core->dev)); + iommu_detach_group(NULL, core->iommu_group); dma_fence_signal(core->in_flight_job->done_fence); pm_runtime_put_autosuspend(core->dev); core->in_flight_job = NULL; -- 2.53.0