video: rockchip: rga3: fix 'Use of memory after it is freed' with rga_job

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I9685372fafd84dcb8528f20eeac944ae8c31241c
This commit is contained in:
Yu Qiaowei
2024-05-27 17:24:35 +08:00
committed by Tao Huang
parent 7be687eb5d
commit f78e431d62

View File

@@ -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;
}