From f78e431d620aeb91542accd445845960834d5c6a Mon Sep 17 00:00:00 2001 From: Yu Qiaowei Date: Mon, 27 May 2024 17:24:35 +0800 Subject: [PATCH] video: rockchip: rga3: fix 'Use of memory after it is freed' with rga_job Signed-off-by: Yu Qiaowei Change-Id: I9685372fafd84dcb8528f20eeac944ae8c31241c --- drivers/video/rockchip/rga3/rga_job.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/video/rockchip/rga3/rga_job.c b/drivers/video/rockchip/rga3/rga_job.c index ae241515172b..180de856f765 100644 --- a/drivers/video/rockchip/rga3/rga_job.c +++ b/drivers/video/rockchip/rga3/rga_job.c @@ -44,13 +44,13 @@ static void rga_job_get(struct rga_job *job) static int rga_job_cleanup(struct rga_job *job) { - rga_job_put(job); - if (DEBUGGER_EN(TIME)) pr_info("request[%d], job cleanup total cost time %lld us\n", job->request_id, ktime_us_delta(ktime_get(), job->timestamp)); + rga_job_put(job); + return 0; } @@ -234,15 +234,14 @@ next_job: pr_err("some error on rga_job_run before hw start, %s(%d)\n", __func__, __LINE__); spin_lock_irqsave(&scheduler->irq_lock, flags); - scheduler->running_job = NULL; - rga_job_put(job); - spin_unlock_irqrestore(&scheduler->irq_lock, flags); job->ret = ret; rga_request_release_signal(scheduler, job); + rga_job_put(job); + goto next_job; }