mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
video: rockchip: mpp: fix access null task issue
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com> Change-Id: Ie5f6b38f4be0276cca6f982205e59428f79650ce
This commit is contained in:
@@ -973,6 +973,7 @@ static void rkvdec2_link_try_dequeue(struct mpp_dev *mpp)
|
||||
|
||||
list_move_tail(&task->table->link, &link_dec->unused_list);
|
||||
list_del_init(&mpp_task->queue_link);
|
||||
link_dec->task_running--;
|
||||
|
||||
set_bit(TASK_STATE_HANDLE, &mpp_task->state);
|
||||
set_bit(TASK_STATE_PROC_DONE, &mpp_task->state);
|
||||
@@ -981,13 +982,10 @@ static void rkvdec2_link_try_dequeue(struct mpp_dev *mpp)
|
||||
if (test_bit(TASK_STATE_ABORT, &mpp_task->state))
|
||||
set_bit(TASK_STATE_ABORT_READY, &mpp_task->state);
|
||||
|
||||
wake_up(&mpp_task->wait);
|
||||
kref_put(&mpp_task->ref, rkvdec2_link_free_task);
|
||||
link_dec->task_running--;
|
||||
|
||||
mpp_dbg_link("session %d task %d irq_status %#08x timeout %d abort %d\n",
|
||||
mpp_task->session->index, mpp_task->task_index,
|
||||
irq_status, timeout_flag, abort_flag);
|
||||
|
||||
if (irq_status & RKVDEC_INT_ERROR_MASK) {
|
||||
dev_err(mpp->dev,
|
||||
"session %d task %d irq_status %#08x timeout %u abort %u\n",
|
||||
@@ -996,6 +994,9 @@ static void rkvdec2_link_try_dequeue(struct mpp_dev *mpp)
|
||||
if (!reset_flag)
|
||||
atomic_inc(&mpp->reset_request);
|
||||
}
|
||||
|
||||
wake_up(&mpp_task->wait);
|
||||
kref_put(&mpp_task->ref, rkvdec2_link_free_task);
|
||||
}
|
||||
|
||||
/* resend running task after reset */
|
||||
|
||||
Reference in New Issue
Block a user