Re: [PATCH v2 2/2] media: meson: vdec: add HEVC decode codec

From: Dan Carpenter
Date: Mon Mar 13 2023 - 00:36:52 EST


Hi Christian,

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Christian-Hewitt/media-meson-vdec-implement-10bit-bitstream-handling/20230124-114201
base: git://linuxtv.org/media_tree.git master
patch link: https://lore.kernel.org/r/20230124034058.3407235-3-christianshewitt%40gmail.com
patch subject: [PATCH v2 2/2] media: meson: vdec: add HEVC decode codec
config: s390-randconfig-m031-20230310 (https://download.01.org/0day-ci/archive/20230312/202303120441.YFGHDOya-lkp@xxxxxxxxx/config)
compiler: s390-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <error27@xxxxxxxxx>
| Link: https://lore.kernel.org/r/202303120441.YFGHDOya-lkp@xxxxxxxxx/

smatch warnings:
drivers/staging/media/meson/vdec/codec_hevc.c:734 codec_hevc_prepare_new_frame() warn: possible memory leak of 'new_frame'

vim +/new_frame +734 drivers/staging/media/meson/vdec/codec_hevc.c

015f7814a5a991 Maxime Jourdan 2023-01-24 718 static struct hevc_frame *
015f7814a5a991 Maxime Jourdan 2023-01-24 719 codec_hevc_prepare_new_frame(struct amvdec_session *sess)
015f7814a5a991 Maxime Jourdan 2023-01-24 720 {
015f7814a5a991 Maxime Jourdan 2023-01-24 721 struct amvdec_core *core = sess->core;
015f7814a5a991 Maxime Jourdan 2023-01-24 722 struct hevc_frame *new_frame = NULL;
015f7814a5a991 Maxime Jourdan 2023-01-24 723 struct codec_hevc *hevc = sess->priv;
015f7814a5a991 Maxime Jourdan 2023-01-24 724 struct vb2_v4l2_buffer *vbuf;
015f7814a5a991 Maxime Jourdan 2023-01-24 725 union rpm_param *params = &hevc->rpm_param;
015f7814a5a991 Maxime Jourdan 2023-01-24 726
015f7814a5a991 Maxime Jourdan 2023-01-24 727 new_frame = kzalloc(sizeof(*new_frame), GFP_KERNEL);
015f7814a5a991 Maxime Jourdan 2023-01-24 728 if (!new_frame)
015f7814a5a991 Maxime Jourdan 2023-01-24 729 return NULL;
015f7814a5a991 Maxime Jourdan 2023-01-24 730
015f7814a5a991 Maxime Jourdan 2023-01-24 731 vbuf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx);
015f7814a5a991 Maxime Jourdan 2023-01-24 732 if (!vbuf) {
015f7814a5a991 Maxime Jourdan 2023-01-24 733 dev_err(sess->core->dev, "No dst buffer available\n");
015f7814a5a991 Maxime Jourdan 2023-01-24 @734 return NULL;

kfree(new_frame);

015f7814a5a991 Maxime Jourdan 2023-01-24 735 }
015f7814a5a991 Maxime Jourdan 2023-01-24 736
015f7814a5a991 Maxime Jourdan 2023-01-24 737 new_frame->vbuf = vbuf;
015f7814a5a991 Maxime Jourdan 2023-01-24 738 new_frame->referenced = 1;
015f7814a5a991 Maxime Jourdan 2023-01-24 739 new_frame->show = 1;
015f7814a5a991 Maxime Jourdan 2023-01-24 740 new_frame->poc = hevc->curr_poc;
015f7814a5a991 Maxime Jourdan 2023-01-24 741 new_frame->cur_slice_type = params->p.slice_type;
015f7814a5a991 Maxime Jourdan 2023-01-24 742 new_frame->num_reorder_pic = params->p.sps_num_reorder_pics_0;
015f7814a5a991 Maxime Jourdan 2023-01-24 743 new_frame->offset = amvdec_read_dos(core, HEVC_SHIFT_BYTE_COUNT);
015f7814a5a991 Maxime Jourdan 2023-01-24 744
015f7814a5a991 Maxime Jourdan 2023-01-24 745 list_add_tail(&new_frame->list, &hevc->ref_frames_list);
015f7814a5a991 Maxime Jourdan 2023-01-24 746 hevc->frames_num++;
015f7814a5a991 Maxime Jourdan 2023-01-24 747
015f7814a5a991 Maxime Jourdan 2023-01-24 748 return new_frame;
015f7814a5a991 Maxime Jourdan 2023-01-24 749 }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests