media: v4l2-fh: define v4l2_fh struct regardless of condition
authorSeungchul Kim <sc377.kim@samsung.com>
Thu, 26 Mar 2020 09:09:46 +0000 (10:09 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 21 Apr 2020 11:40:06 +0000 (13:40 +0200)
v4l2_fh struct define differently by CONFIG_V4L2_MEM2MEM_DEV.
If some vendors use CONFIG_V4L2_MEM2MEM_DEV by module,
it can make the mismatch of v4l2_fh sturct.

By the mismatch, the following error occurs.
===============================
[    7.533506] v4l2_mem2mem: disagrees about version of symbol video_devdata
[    7.533594] v4l2_mem2mem: Unknown symbol video_devdata (err -22)
[    7.535319] v4l2_mem2mem: disagrees about version of symbol v4l2_event_pending
[    7.542532] v4l2_mem2mem: Unknown symbol v4l2_event_pending (err -22)
===============================

So v4l2_fh struct is modified to does not have dependency
for CONFIG_V4L2_MEM2MEM_DEV.

Signed-off-by: Seungchul Kim <sc377.kim@samsung.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/v4l2-core/v4l2-ioctl.c
include/media/v4l2-fh.h

index b2ef8e6..833e79a 100644 (file)
@@ -2805,13 +2805,11 @@ static struct mutex *v4l2_ioctl_get_lock(struct video_device *vdev,
 {
        if (_IOC_NR(cmd) >= V4L2_IOCTLS)
                return vdev->lock;
-#if IS_ENABLED(CONFIG_V4L2_MEM2MEM_DEV)
        if (vfh && vfh->m2m_ctx &&
            (v4l2_ioctls[_IOC_NR(cmd)].flags & INFO_FL_QUEUE)) {
                if (vfh->m2m_ctx->q_lock)
                        return vfh->m2m_ctx->q_lock;
        }
-#endif
        if (vdev->queue && vdev->queue->lock &&
                        (v4l2_ioctls[_IOC_NR(cmd)].flags & INFO_FL_QUEUE))
                return vdev->queue->lock;
index 53b4dbb..b5b3e00 100644 (file)
@@ -53,9 +53,7 @@ struct v4l2_fh {
        unsigned int            navailable;
        u32                     sequence;
 
-#if IS_ENABLED(CONFIG_V4L2_MEM2MEM_DEV)
        struct v4l2_m2m_ctx     *m2m_ctx;
-#endif
 };
 
 /**