lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20221210073218.17350-6-yunfei.dong@mediatek.com> Date: Sat, 10 Dec 2022 15:32:18 +0800 From: Yunfei Dong <yunfei.dong@...iatek.com> To: Yunfei Dong <yunfei.dong@...iatek.com>, Chen-Yu Tsai <wenst@...omium.org>, Nicolas Dufresne <nicolas@...fresne.ca>, Hans Verkuil <hverkuil-cisco@...all.nl>, AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, Benjamin Gaignard <benjamin.gaignard@...labora.com>, Tiffany Lin <tiffany.lin@...iatek.com> CC: Mauro Carvalho Chehab <mchehab@...nel.org>, Matthias Brugger <matthias.bgg@...il.com>, Hsin-Yi Wang <hsinyi@...omium.org>, Fritz Koenig <frkoenig@...omium.org>, Daniel Vetter <daniel@...ll.ch>, Steve Cho <stevecho@...omium.org>, <linux-media@...r.kernel.org>, <devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>, <linux-mediatek@...ts.infradead.org>, <Project_Global_Chrome_Upstream_Group@...iatek.com> Subject: [PATCH 5/5] media: mediatek: vcodec: remove unused lat_buf Remove unused lat_buf from core list, or leading to core list access NULL point. Fixes: 365e4ba01df4 ("media: mtk-vcodec: Add work queue for core hardware decode") Signed-off-by: Yunfei Dong <yunfei.dong@...iatek.com> --- .../platform/mediatek/vcodec/vdec_msg_queue.c | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c index 9bbbd3fa20eb..3f18eca7dbdd 100644 --- a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c +++ b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c @@ -185,7 +185,7 @@ bool vdec_msg_queue_wait_lat_buf_full(struct vdec_msg_queue *msg_queue) struct vdec_lat_buf *buf, *tmp; struct vdec_msg_queue_ctx *core_ctx; long timeout_jiff; - int ret; + int ret, count = 0; core_ctx = &msg_queue->ctx->dev->msg_queue_core_ctx; spin_lock(&core_ctx->ready_lock); @@ -209,8 +209,22 @@ bool vdec_msg_queue_wait_lat_buf_full(struct vdec_msg_queue *msg_queue) msg_queue->lat_ctx.ready_num); return true; } - mtk_v4l2_err("failed with lat buf isn't full: %d", - msg_queue->lat_ctx.ready_num); + + spin_lock(&core_ctx->ready_lock); + list_for_each_entry_safe(buf, tmp, &core_ctx->ready_queue, core_list) { + if (buf && buf->ctx == msg_queue->ctx) { + count++; + spin_lock(&msg_queue->lat_ctx.ready_lock); + list_del(&buf->core_list); + spin_unlock(&msg_queue->lat_ctx.ready_lock); + } + } + spin_unlock(&core_ctx->ready_lock); + + mtk_v4l2_err("failed with lat buf isn't full: list(%d %d) count:%d", + atomic_read(&msg_queue->lat_list_cnt), + atomic_read(&msg_queue->core_list_cnt), count); + return false; } -- 2.18.0
Powered by blists - more mailing lists