mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 22:44:27 +08:00
media: mediatek: vcodec: Only free buffer VA that is not NULL
In the MediaTek vcodec driver, while mtk_vcodec_mem_free() is mostly called only when the buffer to free exists, there are some instances that didn't do the check and triggered warnings in practice. We believe those checks were forgotten unintentionally. Add the checks back to fix the warnings. Signed-off-by: Fei Shao <fshao@chromium.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
f19a771ac1
commit
eb005c801e
@ -1023,18 +1023,26 @@ static void vdec_av1_slice_free_working_buffer(struct vdec_av1_slice_instance *i
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(instance->mv); i++)
|
||||
mtk_vcodec_mem_free(ctx, &instance->mv[i]);
|
||||
if (instance->mv[i].va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->mv[i]);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(instance->seg); i++)
|
||||
mtk_vcodec_mem_free(ctx, &instance->seg[i]);
|
||||
if (instance->seg[i].va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->seg[i]);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(instance->cdf); i++)
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf[i]);
|
||||
if (instance->cdf[i].va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf[i]);
|
||||
|
||||
mtk_vcodec_mem_free(ctx, &instance->tile);
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf_temp);
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf_table);
|
||||
mtk_vcodec_mem_free(ctx, &instance->iq_table);
|
||||
|
||||
if (instance->tile.va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->tile);
|
||||
if (instance->cdf_temp.va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf_temp);
|
||||
if (instance->cdf_table.va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->cdf_table);
|
||||
if (instance->iq_table.va)
|
||||
mtk_vcodec_mem_free(ctx, &instance->iq_table);
|
||||
|
||||
instance->level = AV1_RES_NONE;
|
||||
}
|
||||
|
@ -301,11 +301,12 @@ static void h264_enc_free_work_buf(struct venc_h264_inst *inst)
|
||||
* other buffers need to be freed by AP.
|
||||
*/
|
||||
for (i = 0; i < VENC_H264_VPU_WORK_BUF_MAX; i++) {
|
||||
if (i != VENC_H264_VPU_WORK_BUF_SKIP_FRAME)
|
||||
if (i != VENC_H264_VPU_WORK_BUF_SKIP_FRAME && inst->work_bufs[i].va)
|
||||
mtk_vcodec_mem_free(inst->ctx, &inst->work_bufs[i]);
|
||||
}
|
||||
|
||||
mtk_vcodec_mem_free(inst->ctx, &inst->pps_buf);
|
||||
if (inst->pps_buf.va)
|
||||
mtk_vcodec_mem_free(inst->ctx, &inst->pps_buf);
|
||||
}
|
||||
|
||||
static int h264_enc_alloc_work_buf(struct venc_h264_inst *inst, bool is_34bit)
|
||||
|
Loading…
Reference in New Issue
Block a user