On 3/25/20 5:54 PM, Hans Verkuil wrote: > On 3/23/20 3:30 AM, Seungchul Kim wrote: > > 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@xxxxxxxxxxx> > > --- > > include/media/v4l2-fh.h | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h index > > 53b4dbb..b5b3e00 100644 > > --- a/include/media/v4l2-fh.h > > +++ b/include/media/v4l2-fh.h > > @@ -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 > > This is a good change, but please also remove the same #if from > v4l2_ioctl_get_lock() in drivers/media/v4l2-core/v4l2-ioctl.c. That is now > no longer needed there either and without removing that those vendor > drivers would be using the wrong lock. > > Regards, > > Hans Thank you for your comment. I worried about the same thing with you. But vfh->m2m_ctx on v4l2_ioctl_get_lock() is always null without CONFIG_V4L2_MEM2MEM_DEV, because m2m_ctx of v4l2-fh is initialized only in v4l2_mem2mem.c. Therefore it doesn't have a problem using an wrong lock regardless of modification, so I did not fix it. Regards, Seungchul Kim