From: Hans Verkuil Date: Sat, 7 Jul 2012 19:11:11 +0000 (-0300) Subject: [media] v4l2-ioctl: Don't assume file->private_data always points to a v4l2_fh X-Git-Tag: v3.6-rc1~28^2~99 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a3ed2d95e9ef3032700c2e56f3369d8652a6e8b;p=pandora-kernel.git [media] v4l2-ioctl: Don't assume file->private_data always points to a v4l2_fh Commit efbceecd4522a41b8442c6b4f68b4508d57d1ccf, adds a number of helper functions for ctrl related ioctls to v4l2-ioctl.c, these helpers assume that if file->private_data != NULL, it points to a v4l2_fh, which is only the case for drivers which actually use v4l2_fh. This breaks for example bttv which use the "filedata" pointer for its own uses, and now all the ctrl ioctls try to use whatever its filedata points to as v4l2_fh and think it has a ctrl_handler, leading to: [ 142.499214] BUG: unable to handle kernel NULL pointer dereference at 0000000000000021 [ 142.499270] IP: [] v4l2_queryctrl+0x29/0x230 [videodev] [ 142.514649] [] v4l_queryctrl+0x47/0x90 [videodev] [ 142.517417] [] __video_do_ioctl+0x2c1/0x420 [videodev] [ 142.520116] [] video_usercopy+0x1a6/0x470 [videodev] ... This patch adds the missing test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags) tests to the ctrl ioctl helpers v4l2_fh paths, fixing the issues with for example the bttv driver. Signed-off-by: Hans Verkuil Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab --- Reading git-diff-tree failed