2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-10 14:43:54 +08:00
linux-next/drivers/media/video
Hans Verkuil 5126f2590b [media] v4l2-dev: add flag to have the core lock all file operations
This used to be the default if the lock pointer was set, but now that lock is by
default only used for ioctl serialization. Those drivers that already used
core locking have this flag set explicitly, except for some drivers where
it was obvious that there was no need to serialize any file operations other
than ioctl.

The drivers that didn't need this flag were:

drivers/media/radio/dsbr100.c
drivers/media/radio/radio-isa.c
drivers/media/radio/radio-keene.c
drivers/media/radio/radio-miropcm20.c
drivers/media/radio/radio-mr800.c
drivers/media/radio/radio-tea5764.c
drivers/media/radio/radio-timb.c
drivers/media/video/vivi.c
sound/i2c/other/tea575x-tuner.c

The other drivers that use core locking and where it was not immediately
obvious that this flag wasn't needed were changed so that the flag is set
together with a comment that that driver needs work to avoid having to
set that flag. This will often involve taking the core lock in the fops
themselves.

Eventually this flag should go and it should not be used in new drivers.

There are a few reasons why we want to avoid core locking of non-ioctl
fops: in the case of mmap this can lead to a deadlock in rare situations
since when mmap is called the mmap_sem is held and it is possible for
other parts of the code to take that lock as well (copy_from_user()/copy_to_user()
perform a down_read(&mm->mmap_sem) when a page fault occurs).

It is very unlikely that that happens since the core lock serializes all
fops, but the kernel warns about it if lock validation is turned on.

For poll it is also undesirable to take the core lock as that can introduce
increased latency. The same is true for read/write.

While it was possible to make flags or something to turn on/off taking the
core lock for each file operation, in practice it is much simpler to just
not take it at all except for ioctl and leave it to the driver to take the
lock. There are only a handful fops compared to the zillion ioctls we have.

I also wanted to make it obvious which drivers still take the lock for all
fops, so that's why I chose to have drivers set it explicitly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-14 09:19:38 -03:00
..
au0828 [media] drivers/media/video/au0828/au0828-video.c: add missing video_device_release 2012-05-02 09:09:10 -03:00
blackfin [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
bt8xx [media] Default bt878 contrast value 2012-04-11 07:55:35 -03:00
cpia2 [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
cx18 [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
cx88 Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-01-18 12:53:54 -08:00
cx231xx [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
cx23885 [media] cx23885: Don't duplicate xc4000 entry for radio 2012-01-16 11:55:12 -02:00
cx25821 [media] cx25821: Add a card definition for "No brand" cards that have: subvendor = 0x0000 subdevice = 0x0000 2012-03-08 12:42:28 -03:00
cx25840 [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
davinci [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
em28xx [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
gspca [media] gspca_pac7302: Improve the gain control 2012-05-07 16:15:48 -03:00
hdpvr Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-02-24 12:32:51 -08:00
ivtv [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
m5mols [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
marvell-ccic [media] marvell-cam: Demote the "release" print to debug level 2012-03-19 22:17:06 -03:00
omap [media] omap_vout: fix section mismatch 2012-01-23 15:27:17 -02:00
omap3isp [media] omap3isp: Move CCDC link validation to ccdc_link_validate() 2012-05-14 08:53:28 -03:00
pvrusb2 [media] pvrusb2: For querystd, start with list of hardware-supported standards 2012-05-07 16:58:00 -03:00
pwc pwc: Add support for control events 2012-04-09 08:28:33 -03:00
s5p-fimc [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
s5p-g2d [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
s5p-jpeg [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
s5p-mfc [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
s5p-tv [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
saa7134 [media] Add support for KWorld PC150-U ATSC hybrid tuner card 2012-03-08 11:01:25 -03:00
saa7164 [media] saa7164: saa7164_vbi_stop_port() returns linux error codes 2012-04-26 15:28:31 -03:00
smiapp [media] smiapp: Add driver 2012-05-14 09:06:00 -03:00
sn9c102 module_param: check type correctness for module_param_array 2012-01-13 09:32:16 +10:30
tlg2300 [media] tlg2300: Remove usage of KERNEL_VERSION() 2012-04-19 16:47:07 -03:00
tm6000 [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
usbvision [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
uvc [media] uvcvideo: Use videobuf2 .get_unmapped_area() implementation 2012-05-08 13:46:19 -03:00
zoran [media] zoran: fix integer overflow in setup_window() 2012-04-19 09:11:25 -03:00
adp1653.c [media] v4l: Allow changing control handler lock 2012-05-14 08:46:27 -03:00
adv7170.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7175.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7180.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
adv7183_regs.h [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7183.c [media] adv7183: add adv7183 decoder driver 2012-03-19 15:04:10 -03:00
adv7343_regs.h
adv7343.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ak881x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
aptina-pll.c [media] v4l: aptina-pll: Round up minimum multiplier factor value properly 2012-05-08 14:26:41 -03:00
aptina-pll.h [media] v4l: Aptina-style sensor PLL support 2012-03-19 18:53:39 -03:00
arv.c
as3645a.c [media] as3645a: move relevant code under __devinit/__devexit 2012-05-08 14:28:41 -03:00
atmel-isi.c [media] V4L: atmel-isi: add clk_prepare()/clk_unprepare() functions 2012-01-23 18:13:21 -02:00
bt819.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
bt856.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
bt866.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
btcx-risc.c
btcx-risc.h
bw-qcam.c
c-qcam.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
cs53l32a.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
cs5345.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
cs8420.h
cx2341x.c
fsl-viu.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
hexium_gemini.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
hexium_orion.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
ibmmpeg2.h
imx074.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
indycam.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
indycam.h
ir-kbd-i2c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
Kconfig [media] smiapp: Add driver 2012-05-14 09:06:00 -03:00
ks0127.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ks0127.h
m52790.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
Makefile [media] smiapp: Add driver 2012-05-14 09:06:00 -03:00
mem2mem_testdev.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
meye.c [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
meye.h
msp3400-driver.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
msp3400-driver.h module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
msp3400-kthreads.c [media] msp3400: Add standards detection to the driver 2011-10-08 08:01:34 -03:00
mt9m001.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9m032.c [media] v4l: Add driver for Micron MT9M032 camera sensor 2012-03-19 18:56:33 -03:00
mt9m111.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9p031.c [media] mt9p031: Use generic PLL setup code 2012-03-19 18:54:22 -03:00
mt9t001.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9t031.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9t112.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v011.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v022.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mt9v032.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
mx1_camera.c [media] soc-camera: remove redundant parameter from .set_bus_param() 2012-01-06 11:00:23 -02:00
mx2_camera.c [media] media: i.MX27 camera: Add resizing support 2012-03-08 10:06:44 -03:00
mx2_emmaprp.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
mx3_camera.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
mxb.c [media] V4L2: drivers implementing vidioc_default should also return -ENOTTY 2012-04-19 17:23:55 -03:00
mxb.h
noon010pc30.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
omap1_camera.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
omap24xxcam-dma.c [media] [trivial] omap24xxcam-dma: Fix logical test 2011-12-09 20:28:42 -02:00
omap24xxcam.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
omap24xxcam.h
ov772x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov2640.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov5642.c [media] V4L: OV5642:remove redundant code to set cropping w/h 2012-04-10 21:31:19 -03:00
ov6650.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov7670.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov9640.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
ov9640.h [media] ov9640: convert to the control framework 2011-11-03 18:28:36 -02:00
ov9740.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
pms.c
pxa_camera.c [media] V4L: pxa_camera: add clk_prepare/clk_unprepare calls 2012-03-19 22:11:07 -03:00
rj54n1cb0c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
s5k6aa.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
s2255drv.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
saa711x_regs.h
saa717x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa6588.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7110.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7115.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7121.h
saa7127.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7146.h
saa7146reg.h
saa7185.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7191.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
saa7191.h
sh_mobile_ceu_camera.c [media] V4L: sh_mobile_ceu_camera: maximum image size depends on the hardware version 2012-03-19 22:11:06 -03:00
sh_mobile_csi2.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
sh_vou.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
smiapp-pll.c [media] smiapp: Add driver 2012-05-14 09:06:00 -03:00
smiapp-pll.h [media] smiapp: Generic SMIA++/SMIA PLL calculator 2012-05-14 08:57:02 -03:00
soc_camera_platform.c [media] convert drivers/media/* to use module_platform_driver() 2012-01-10 23:27:13 -02:00
soc_camera.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
soc_mediabus.c [media] V4L: soc-camera: add helper functions for new bus configuration type 2011-11-03 18:27:13 -02:00
sr030pc30.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
stk-sensor.c
stk-webcam.c [media] stk-webcam: Don't flip the image by default 2012-05-07 16:11:03 -03:00
stk-webcam.h
tcm825x.c drivers/media: Add module.h to all files using it implicitly 2011-10-31 19:31:51 -04:00
tcm825x.h
tda7432.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tda9840.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6415c.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6415c.h
tea6420.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tea6420.h
ths7303.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
timblogiw.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
tlv320aic23b.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tuner-core.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tvaudio.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tveeprom.c [media] tveeprom: update hauppauge tuner list thru 181 2012-02-28 18:46:53 -03:00
tvp514x_regs.h
tvp514x.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tvp5150_reg.h [media] tvp5150: Add video format registers configuration values 2011-10-08 08:01:52 -03:00
tvp5150.c [media] media: tvp5150: support g_mbus_fmt callback 2012-03-08 12:07:14 -03:00
tvp7002_reg.h
tvp7002.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
tw9910.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
upd64031a.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
upd64083.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
v4l2-common.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
v4l2-compat-ioctl32.c [media] v4l2: use __u32 rather than enums in ioctl() structs 2012-05-14 08:09:02 -03:00
v4l2-ctrls.c [media] v4l: Allow changing control handler lock 2012-05-14 08:46:27 -03:00
v4l2-dev.c [media] v4l2-dev: add flag to have the core lock all file operations 2012-05-14 09:19:38 -03:00
v4l2-device.c [media] media: fix truncated entity specification 2011-12-20 09:31:50 -02:00
v4l2-event.c [media] v4l2-ctrls: Use v4l2_subscribed_event_ops 2012-05-07 16:29:35 -03:00
v4l2-fh.c drivers/media: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:31:51 -04:00
v4l2-int-device.c drivers/media: Add module.h to all files using it implicitly 2011-10-31 19:31:51 -04:00
v4l2-ioctl.c [media] v4l2-ioctl: handle priority handling based on a table lookup 2012-05-14 09:18:38 -03:00
v4l2-mem2mem.c [media] media: mem2mem: eliminate possible NULL pointer dereference 2011-09-06 15:03:26 -03:00
v4l2-subdev.c [media] v4l: Implement v4l2_subdev_link_validate() 2012-05-14 08:45:31 -03:00
via-camera.c Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-01-15 12:49:56 -08:00
via-camera.h
videobuf2-core.c [media] videobuf2-core: also test for pending events 2012-03-27 11:41:48 -03:00
videobuf2-dma-contig.c [media] media: videobuf2-dma-contig: quiet sparse noise about plain integer as NULL pointer 2012-05-08 14:35:14 -03:00
videobuf2-dma-sg.c [media] media: vb2: fix potential deadlock in mmap vs. get_userptr handling 2011-12-30 16:06:49 -02:00
videobuf2-memops.c [media] media: vb2: fix potential deadlock in mmap vs. get_userptr handling 2011-12-30 16:06:49 -02:00
videobuf2-vmalloc.c [media] media: vb2: support userptr for PFN mappings 2012-03-08 07:42:17 -03:00
videobuf-core.c [media] videobuf: only start streaming in poll() if so requested by the poll mask 2012-03-27 11:41:33 -03:00
videobuf-dma-contig.c
videobuf-dma-sg.c
videobuf-dvb.c [media] videobuf-dvb: avoid spurious ENOMEM when CONFIG_DVB_NET=n 2012-01-06 12:42:19 -02:00
videobuf-vmalloc.c
vino.c [media] v4l: Casting (void *) value returned by kmalloc is useless 2011-11-24 21:06:57 -02:00
vino.h
vivi.c [media] v4l: Allow changing control handler lock 2012-05-14 08:46:27 -03:00
vp27smpx.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
vpx3220.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
vs6624_regs.h [media] vs6624: add vs6624 sensor driver 2012-03-19 15:04:26 -03:00
vs6624.c [media] vs6624: add vs6624 sensor driver 2012-03-19 15:04:26 -03:00
w9966.c [media] /w9966: Fix a build warning 2012-03-19 15:37:59 -03:00
wm8739.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
wm8775.c [media] convert drivers/media/* to use module_i2c_driver() 2012-03-08 08:48:01 -03:00
zr364xx.c USB: convert drivers/media/* to use module_usb_driver() 2011-11-18 09:46:12 -08:00