mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
media: amphion: Set video drvdata before register video device
commit 8cbb1a7bd5973b57898b26eb804fe44af440bb63 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: 3cd084519c ("media: amphion: add vpu v4l2 m2m support")
Cc: <stable@vger.kernel.org>
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: TaoJiang <tao.jiang_2@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6ca8299aa7
commit
cfe96c7c33
@@ -740,6 +740,7 @@ int vpu_add_func(struct vpu_dev *vpu, struct vpu_func *func)
|
|||||||
vfd->fops = vdec_get_fops();
|
vfd->fops = vdec_get_fops();
|
||||||
vfd->ioctl_ops = vdec_get_ioctl_ops();
|
vfd->ioctl_ops = vdec_get_ioctl_ops();
|
||||||
}
|
}
|
||||||
|
video_set_drvdata(vfd, vpu);
|
||||||
|
|
||||||
ret = video_register_device(vfd, VFL_TYPE_VIDEO, -1);
|
ret = video_register_device(vfd, VFL_TYPE_VIDEO, -1);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@@ -747,7 +748,6 @@ int vpu_add_func(struct vpu_dev *vpu, struct vpu_func *func)
|
|||||||
v4l2_m2m_release(func->m2m_dev);
|
v4l2_m2m_release(func->m2m_dev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
video_set_drvdata(vfd, vpu);
|
|
||||||
func->vfd = vfd;
|
func->vfd = vfd;
|
||||||
|
|
||||||
ret = v4l2_m2m_register_media_controller(func->m2m_dev, func->vfd, func->function);
|
ret = v4l2_m2m_register_media_controller(func->m2m_dev, func->vfd, func->function);
|
||||||
|
|||||||
Reference in New Issue
Block a user