linux_dsm_epyc7002/drivers/media/video
Trent Piepho 19c96e4b7d V4L/DVB (10811): videodev: only copy needed part of RW ioctl's parameter
There are many RW ioctls() in v4l2 where userspace only supplies one or two
of the first fields in the structure passed to the ioctl.  The driver then
fills in the rest of the fields.

Instead of copying the entire structure from userspace to the kernel we
only need to copy those fields that userspace is actually supposed to
supply.

What's more, the fields that are meant to be only be output from the driver
can be zeroed out in the videodev code, in case the driver doesn't fill
them all in.  Many of the ioctl handlers in v4l2_ioctl do this already, but
my patch does this at one common point and so all the memsets for each
ioctl can be deleted.

For VIDIOC_G_SLICED_VBI_CAP, which has one input field ('type') and other
output-only fields, the input field is near the end of the structure
instead of at the beginning.  So there is still a memset in it's ioctl
handler to zero out the beginning of the struct.

There were a couple mistakes with the existing code:
    For VIDIOC_G_AUDIO the index field was preserved, but G_AUDIO is a read
    only ioctl so nothing is copied from userspace to preserve.

    For VIDIOC_G_FREQUENCY the tuner field was not preserved like it should
    have been.  This would be a problem if there was any hardware with more
    than one tuner/modulator.

    For VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS, none of the
    fields were preserved even though each ioctl has several field that are
    supposed to be inputs to the driver!  Obviously these ioctls don't get
    used much.  The index field is needed if the driver has multiple
    discrete sizes/rates and other fields can be used too, e.g. if the size
    depends on pixel format or frame rate depends on image size for
    example.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:05 -03:00
..
au0828 V4L/DVB (9252): au0828: Checkpatch compliance 2008-10-17 17:27:26 -03:00
bt8xx V4L/DVB (10568): bttv: dynamically allocate device data 2009-03-30 12:42:47 -03:00
cpia2 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cx18 V4L/DVB (10764): cx18: Disable AC3 controls as the firmware doesn't support AC3 2009-03-30 12:43:02 -03:00
cx88 V4L/DVB (10792): cx88: remove unnecessary forward declaration of cx88_core 2009-03-30 12:43:03 -03:00
cx23885 V4L/DVB (10805): Add support for NetUP Dual DVB-S2 CI card 2009-03-30 12:43:05 -03:00
cx25840 V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
em28xx V4L/DVB (10741): em28xx: Add Kaiser Baas Video to DVD maker support 2009-03-30 12:43:00 -03:00
et61x251 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
gspca V4L/DVB (10788): gspca - vc032x: Bad matrix for sensor mi1310_soc. 2009-03-30 12:43:03 -03:00
ivtv V4L/DVB (10544): v4l2-common: add comments warning that about the sort order 2009-03-30 12:42:46 -03:00
ovcamchip i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
pvrusb2 V4L/DVB (10303): pvrusb2: Use usb_make_path() to determine device bus location 2009-03-30 12:42:26 -03:00
pwc V4L/DVB (10242): pwc: add support for webcam snapshot button 2009-03-30 12:42:22 -03:00
saa7134 V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
sn9c102 V4L/DVB (10679): gspca - sonixj: Handle the webcam 0c45:613c instead of sn9c102. 2009-03-30 12:42:53 -03:00
usbvideo V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc 2009-01-07 22:18:56 -02:00
usbvision V4L/DVB (10794): v4l2: Move code to zero querybuf output struct to v4l2_ioctl 2009-03-30 12:43:04 -03:00
uvc V4L/DVB (10652): uvcvideo: Add quirk to override wrong bandwidth value for Vimicro devices 2009-03-30 12:42:51 -03:00
zc0301 V4L/DVB (10343): gspca - zc3xx / zc0301: Handle the 0ac8:303b instead of zc0301. 2009-03-30 12:42:30 -03:00
zoran V4L/DVB (10794): v4l2: Move code to zero querybuf output struct to v4l2_ioctl 2009-03-30 12:43:04 -03:00
adv7170.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
adv7175.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
arv.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
bt819.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
bt856.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
bt866.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
btcx-risc.c
btcx-risc.h
bw-qcam.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
bw-qcam.h
c-qcam.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cafe_ccic-regs.h
cafe_ccic.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
cpia_pp.c
cpia_usb.c
cpia.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cpia.h
cs53l32a.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
cs5345.c V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
cs8420.h
cx2341x.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
dabusb.c V4L/DVB (10298): remove err macro from few usb devices 2009-03-30 12:42:26 -03:00
dabusb.h
font.h
hexium_gemini.c V4L/DVB (10271): saa7146: convert to video_ioctl2. 2009-03-30 12:42:24 -03:00
hexium_orion.c V4L/DVB (10271): saa7146: convert to video_ioctl2. 2009-03-30 12:42:24 -03:00
ibmmpeg2.h
indycam.c
indycam.h
ir-kbd-i2c.c V4L/DVB (10632): Added support for AVerMedia Cardbus Hybrid remote control 2009-03-30 12:42:49 -03:00
Kconfig V4L/DVB (10769): Update dependencies of the modules converted to V4L2 2009-03-30 12:43:02 -03:00
ks0127.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
ks0127.h V4L/DVB (10730): v4l-dvb: cleanup obsolete references to v4l1 headers. 2009-03-30 12:42:59 -03:00
m52790.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
Makefile V4L/DVB (10714): zoran et al: convert zoran i2c modules to V4L2. 2009-03-30 12:42:57 -03:00
meye.c V4L/DVB (10794): v4l2: Move code to zero querybuf output struct to v4l2_ioctl 2009-03-30 12:43:04 -03:00
meye.h
msp3400-driver.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
msp3400-driver.h V4L/DVB (9825): msp3400: convert to v4l2_subdev. 2008-12-30 09:38:39 -02:00
msp3400-kthreads.c V4L/DVB (9825): msp3400: convert to v4l2_subdev. 2008-12-30 09:38:39 -02:00
mt9m001.c V4L/DVB (10665): soc-camera: add data signal polarity flags to drivers 2009-03-30 12:42:52 -03:00
mt9m111.c V4L/DVB (10676): mt9m111: Call icl->reset() on mt9m111_reset(). 2009-03-30 12:42:53 -03:00
mt9t031.c V4L/DVB (10673): mt9t031: fix gain and hflip controls, register update, and scaling 2009-03-30 12:42:53 -03:00
mt9v022.c V4L/DVB (10665): soc-camera: add data signal polarity flags to drivers 2009-03-30 12:42:52 -03:00
mx3_camera.c V4L/DVB (10674): soc-camera: camera host driver for i.MX3x SoCs 2009-03-30 12:42:53 -03:00
mxb.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
mxb.h
omap24xxcam-dma.c V4L/DVB (9815): omap2: add OMAP2 camera driver. 2008-12-30 09:38:35 -02:00
omap24xxcam.c [ARM] omap: omap24xxcam: use short connection IDs for omap2 clocks 2009-02-08 17:50:22 +00:00
omap24xxcam.h V4L/DVB (9815): omap2: add OMAP2 camera driver. 2008-12-30 09:38:35 -02:00
ov511.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
ov511.h V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
ov772x.c V4L/DVB (10669): ov772x: Add image flip support 2009-03-30 12:42:52 -03:00
ov7670.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
pms.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
pxa_camera.c V4L/DVB (10665): soc-camera: add data signal polarity flags to drivers 2009-03-30 12:42:52 -03:00
s2255drv.c V4L/DVB (10309): s2255drv: use usb_make_path to report bus info 2009-03-30 12:42:27 -03:00
saa711x_regs.h
saa717x.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
saa5246a.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
saa5249.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
saa6588.c V4L/DVB (10730): v4l-dvb: cleanup obsolete references to v4l1 headers. 2009-03-30 12:42:59 -03:00
saa7110.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
saa7115.c V4L/DVB (10702): saa7115: add querystd and g_input_status support for zoran. 2009-03-30 12:42:54 -03:00
saa7121.h
saa7127.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
saa7146.h
saa7146reg.h
saa7185.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
saa7191.c
saa7191.h
se401.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
se401.h
sh_mobile_ceu_camera.c V4L/DVB (10672): sh_mobile_ceu_camera: include NV* formats into the format list only once. 2009-03-30 12:42:52 -03:00
soc_camera_platform.c V4L/DVB (10080): soc-camera: readability improvements, more strict operations checks 2008-12-30 09:40:21 -02:00
soc_camera.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
stk-sensor.c
stk-webcam.c V4L/DVB (10794): v4l2: Move code to zero querybuf output struct to v4l2_ioctl 2009-03-30 12:43:04 -03:00
stk-webcam.h V4L/DVB (9193): stk-webcam: minor cleanup 2008-10-17 17:14:57 -03:00
stradis.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
stv680.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
stv680.h
tcm825x.c V4L/DVB (10628): V4L: Storage class should be before const qualifier 2009-03-30 12:42:48 -03:00
tcm825x.h V4L/DVB (10628): V4L: Storage class should be before const qualifier 2009-03-30 12:42:48 -03:00
tda7432.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
tda9840.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tda9875.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
tea6415c.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tea6415c.h V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tea6420.c V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tea6420.h V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tlv320aic23b.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
tuner-core.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
tvaudio.c V4L/DVB (10730): v4l-dvb: cleanup obsolete references to v4l1 headers. 2009-03-30 12:42:59 -03:00
tveeprom.c V4L/DVB (10416): tveeprom: update to include Hauppauge tuners 151-155 2009-03-30 12:42:36 -03:00
tvp514x_regs.h V4L/DVB (9817): v4l: add new tvp514x I2C video decoder driver 2008-12-30 09:38:36 -02:00
tvp514x.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
tvp5150_reg.h
tvp5150.c V4L/DVB (10738): Get rid of video_decoder.h header were uneeded 2009-03-30 12:42:59 -03:00
tw9910.c V4L/DVB (10670): tw9910: bit mask operation fix on tw9910_mask_set. 2009-03-30 12:42:52 -03:00
upd64031a.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
upd64083.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
v4l1-compat.c poll: allow f_op->poll to sleep 2009-01-06 15:59:12 -08:00
v4l2-common.c V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std 2009-03-30 12:42:54 -03:00
v4l2-compat-ioctl32.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
v4l2-dev.c V4L/DVB (10791): videodev: not possible to register NULL video_device 2009-03-30 12:43:03 -03:00
v4l2-device.c V4L/DVB (10644): v4l2-subdev: rename dev field to v4l2_dev 2009-03-30 12:42:50 -03:00
v4l2-int-device.c V4L/DVB (9322): v4l2-int-if: Export more interfaces to modules 2008-10-21 14:31:20 -02:00
v4l2-ioctl.c V4L/DVB (10811): videodev: only copy needed part of RW ioctl's parameter 2009-03-30 12:43:05 -03:00
v4l2-subdev.c V4L/DVB (10542): v4l2-subdev: add querystd and g_input_status 2009-03-30 12:42:46 -03:00
videobuf-core.c
videobuf-dma-contig.c V4L/DVB (10304): buf-dma-contig: fix USERPTR free handling 2009-03-30 12:42:27 -03:00
videobuf-dma-sg.c V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage 2009-01-07 22:18:54 -02:00
videobuf-dvb.c V4L/DVB (9335): videobuf: split unregister bus creating self-contained frontend de-allocator 2008-10-21 14:32:08 -02:00
videobuf-vmalloc.c V4L/DVB (10305): videobuf-vmalloc: Fix: videobuf memory were never freed 2009-03-30 12:42:27 -03:00
vino.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
vino.h
vivi.c V4L/DVB (10647): vivi: add slider flag to controls. 2009-03-30 12:42:51 -03:00
vp27smpx.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
vpx3220.c V4L/DVB (10731): zoran i2c modules: remove i2c autoprobing support. 2009-03-30 12:42:59 -03:00
w9966.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
w9968cf_decoder.h
w9968cf_vpp.h
w9968cf.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
w9968cf.h
wm8739.c V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs. 2009-03-30 12:42:36 -03:00
wm8775.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
zr364xx.c V4L/DVB (10263): zr364xx: add support for Aiptek DV T300 2009-03-30 12:42:23 -03:00