video: rockchip: rga3: fix request cannot be released after job_alloc failed

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I9560e1ea2d5edbee2dbfa7adb95e7fa9680e9fda
This commit is contained in:
Yu Qiaowei
2024-04-29 11:33:21 +08:00
committed by Tao Huang
parent 5776643dfd
commit 2d094ea88b

View File

@@ -626,7 +626,7 @@ static int rga_request_scheduler_job_abort(struct rga_request *request)
int i;
unsigned long flags;
enum rga_scheduler_status scheduler_status;
int running_abort_count = 0, todo_abort_count = 0;
int running_abort_count = 0, todo_abort_count = 0, all_task_count = 0;
struct rga_scheduler_t *scheduler = NULL;
struct rga_job *job, *job_q;
LIST_HEAD(list_to_free);
@@ -679,8 +679,12 @@ static int rga_request_scheduler_job_abort(struct rga_request *request)
rga_job_cleanup(job);
}
all_task_count = request->finished_task_count + request->failed_task_count +
running_abort_count + todo_abort_count;
/* This means it has been cleaned up. */
if (running_abort_count + todo_abort_count == 0)
if (running_abort_count + todo_abort_count == 0 &&
all_task_count == request->task_count)
return 1;
pr_err("request[%d] abort! finished %d failed %d running_abort %d todo_abort %d\n",