Commit 5e14f993 authored by Ming Qian's avatar Ming Qian Committed by Huang Xiaojia
Browse files

media: imx-jpeg: Set video drvdata before register video device

stable inclusion
from stable-v6.6.64
commit 68efeff2f7fccdfedc55f92e92be32997127d16e
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBEANU
CVE: CVE-2024-56578

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=68efeff2f7fccdfedc55f92e92be32997127d16e



--------------------------------

commit d2b7ecc26bd5406d5ba927be1748aa99c568696c upstream.

The video drvdata should be set before the video device is registered,
otherwise video_drvdata() may return NULL in the open() file ops, and led
to oops.

Fixes: 2db16c6e ("media: imx-jpeg: Add V4L2 driver for i.MX8 JPEG Encoder/Decoder")
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarMing Qian <ming.qian@nxp.com>
Reviewed-by: default avatarTaoJiang <tao.jiang_2@nxp.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarHuang Xiaojia <huangxiaojia2@huawei.com>
parent 218f4d98
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2837,6 +2837,7 @@ static int mxc_jpeg_probe(struct platform_device *pdev)
	jpeg->dec_vdev->vfl_dir = VFL_DIR_M2M;
	jpeg->dec_vdev->device_caps = V4L2_CAP_STREAMING |
					V4L2_CAP_VIDEO_M2M_MPLANE;
	video_set_drvdata(jpeg->dec_vdev, jpeg);
	if (mode == MXC_JPEG_ENCODE) {
		v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_DECODER_CMD);
		v4l2_disable_ioctl(jpeg->dec_vdev, VIDIOC_TRY_DECODER_CMD);
@@ -2849,7 +2850,6 @@ static int mxc_jpeg_probe(struct platform_device *pdev)
		dev_err(dev, "failed to register video device\n");
		goto err_vdev_register;
	}
	video_set_drvdata(jpeg->dec_vdev, jpeg);
	if (mode == MXC_JPEG_ENCODE)
		v4l2_info(&jpeg->v4l2_dev,
			  "encoder device registered as /dev/video%d (%d,%d)\n",