android_kernel_samsung_msm8976/include/media
Sakari Ailus 0daf8a201b media: v4l: event: Prevent freeing event subscriptions while accessed
commit ad608fbcf166fec809e402d548761768f602702c upstream.

The event subscriptions are added to the subscribed event list while
holding a spinlock, but that lock is subsequently released while still
accessing the subscription object. This makes it possible to unsubscribe
the event --- and freeing the subscription object's memory --- while
the subscription object is simultaneously accessed.

Prevent this by adding a mutex to serialise the event subscription and
unsubscription. This also gives a guarantee to the callback ops that the
add op has returned before the del op is called.

This change also results in making the elems field less special:
subscriptions are only added to the event list once they are fully
initialised.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: stable@vger.kernel.org # for 4.14 and up
Fixes: c3b5b0241f ("V4L/DVB: V4L: Events: Add backend")
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-27 21:51:55 +02:00
..
blackfin
davinci
ad9389b.h
adp1653.h
adv7183.h
adv7343.h
adv7393.h
adv7604.h
ak881x.h
as3645a.h
atmel-isi.h
bt819.h
camera2.h msm: camera: add logic for sensor compatibility issue 2015-05-19 19:40:50 +08:00
cs53l32a.h
cs5345.h
cx2341x.h
cx25840.h
gpio-ir-recv.h Update copyright to The Linux Foundation 2013-09-04 15:53:09 -07:00
i2c-addr.h
ir-kbd-i2c.h
ir-rx51.h
lirc.h
lirc_dev.h
m5mols.h
m52790.h
media-device.h
media-devnode.h
media-entity.h
mmp-camera.h
msm_cam_sensor.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
msm_camera.h msm: camera: reimplement camera sensor driver 2013-09-04 15:49:07 -07:00
msm_camsensor_sdk.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
msm_fd.h msm: camera: MSM FD face detection driver 2014-04-22 13:21:13 +03:00
msm_jpeg.h camera_v2:jpeg_10: Multiple porting changes 2013-12-18 14:45:54 +02:00
msm_media_info.h Revert "msm: vidc: Increase extradata size to 16k" 2015-07-20 00:32:28 -07:00
msm_vidc.h msm: vidc: free registered buffers when closing session 2015-08-24 00:00:07 -07:00
msmb_camera.h msm: camera: Return correct code when camera open fails 2015-06-11 18:08:30 -07:00
msmb_isp.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
msmb_ispif.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
msmb_pproc.h Merge tag 'LA.BR.1.3.6-03510-8976.0' into HEAD 2017-04-18 12:11:50 +02:00
msp3400.h
mt9m032.h
mt9p031.h
mt9t001.h
mt9t112.h
mt9v011.h
mt9v022.h
mt9v032.h
noon010pc30.h
omap1_camera.h
omap3isp.h
ov772x.h
ov7670.h
ov9650.h
radio-si4713.h
rc-core.h
rc-map.h
rj54n1cb0c.h
s3c_camif.h
s5c73m3.h
s5k4ecgx.h
s5k6aa.h
s5p_fimc.h
s5p_hdmi.h
saa6588.h
saa6752hs.h
saa7115.h
saa7127.h
saa7146.h
saa7146_vv.h
sh_mobile_ceu.h
sh_mobile_csi2.h
sh_vou.h
si476x.h
si4713.h
sii9234.h
smiapp.h
soc_camera.h
soc_camera_platform.h
soc_mediabus.h
sr030pc30.h
ths7303.h
timb_radio.h
timb_video.h
tuner-types.h
tuner.h
tvaudio.h
tveeprom.h
tvp514x.h
tvp5150.h
tvp7002.h
tw9910.h
uda1342.h
upd64031a.h
upd64083.h
v4l2-chip-ident.h
v4l2-common.h
v4l2-ctrls.h Merge upstream linux-stable v3.10.28 into msm-3.10 2014-03-24 14:28:34 -07:00
v4l2-dev.h
v4l2-device.h
v4l2-event.h
v4l2-fh.h media: v4l: event: Prevent freeing event subscriptions while accessed 2019-07-27 21:51:55 +02:00
v4l2-image-sizes.h
v4l2-int-device.h
v4l2-ioctl.h v4l2-ioctl: Initialize the dqbuf function pointer 2013-10-24 12:00:17 -07:00
v4l2-mediabus.h
v4l2-mem2mem.h
v4l2-of.h
v4l2-subdev.h
videobuf-core.h
videobuf-dma-contig.h
videobuf-dma-sg.h
videobuf-dvb.h
videobuf-vmalloc.h
videobuf2-core.h This is the 3.10.67 stable release 2015-04-24 18:04:40 -07:00
videobuf2-dma-contig.h
videobuf2-dma-sg.h
videobuf2-memops.h
videobuf2-msm-mem.h iommu: msm: Move iommu_domains out of mach-msm 2013-12-10 18:18:45 -08:00
videobuf2-vmalloc.h
wm8775.h