This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: mediatek: vcodec: Fix VP8 stateless decoder smatch warning
Author:  Yunfei Dong <yunfei.d...@mediatek.com>
Date:    Thu Jun 13 17:33:56 2024 +0800

Fix a smatch static checker warning on vdec_vp8_req_if.c.
Which leads to a kernel crash when fb is NULL.

Fixes: 7a7ae26fd458 ("media: mediatek: vcodec: support stateless VP8 decoding")
Signed-off-by: Yunfei Dong <yunfei.d...@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno 
<angelogioacchino.delre...@collabora.com>
Signed-off-by: Sebastian Fricke <sebastian.fri...@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 .../platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c    | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

---

diff --git 
a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c 
b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
index e27e728f392e..232ef3bd246a 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
@@ -334,14 +334,18 @@ static int vdec_vp8_slice_decode(void *h_vdec, struct 
mtk_vcodec_mem *bs,
        src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
 
        fb = inst->ctx->dev->vdec_pdata->get_cap_buffer(inst->ctx);
-       dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer);
+       if (!fb) {
+               mtk_vdec_err(inst->ctx, "fb buffer is NULL");
+               return -ENOMEM;
+       }
 
-       y_fb_dma = fb ? (u64)fb->base_y.dma_addr : 0;
+       dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer);
+       y_fb_dma = fb->base_y.dma_addr;
        if (inst->ctx->q_data[MTK_Q_DATA_DST].fmt->num_planes == 1)
                c_fb_dma = y_fb_dma +
                        inst->ctx->picinfo.buf_w * inst->ctx->picinfo.buf_h;
        else
-               c_fb_dma = fb ? (u64)fb->base_c.dma_addr : 0;
+               c_fb_dma = fb->base_c.dma_addr;
 
        inst->vsi->dec.bs_dma = (u64)bs->dma_addr;
        inst->vsi->dec.bs_sz = bs->size;

Reply via email to