1
0
Fork 0
alistair23-linux/drivers/media/dvb-core
Soeren Moch 414abbd2cd [media] media: dmxdev: remove dvb_ringbuffer_flush() on writer side
In dvb_ringbuffer lock-less synchronizationof reader and writer threads is done
with separateread and write pointers. Sincedvb_ringbuffer_flush() modifies the
read pointer, this function must not be called from the writer thread.
This patch removes the dvb_ringbuffer_flush() calls in the dmxdev ringbuffer
write functions, this fixes Oopses "Unable to handle kernel paging request"
I could observe for the call chaindvb_demux_read ->dvb_dmxdev_buffer_read ->
dvb_ringbuffer_read_user -> __copy_to_user (the reader side of the ringbuffer).
The flush calls at the write side are not necessary anyway since ringbuffer_flush
is also called in dvb_dmxdev_buffer_read() when an error condition is set in the
ringbuffer.
This patch should also be applied to stable kernels.

Signed-off-by: Soeren Moch <smoch@web.de>
CC: <stable@vger.kernel.org>
Reviewed-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-06-19 11:48:09 -03:00
..
Kconfig [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
Makefile [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
demux.h [media] demux.h: Remove duplicated enum 2013-04-08 06:53:15 -03:00
dmxdev.c [media] media: dmxdev: remove dvb_ringbuffer_flush() on writer side 2013-06-19 11:48:09 -03:00
dmxdev.h [media] remove include/linux/dvb/dmx.h 2012-10-19 07:29:17 -03:00
dvb-usb-ids.h [media] Add support for Crypto Redi PC50A device (rtl2832u + FC0012 tuner) 2013-06-08 21:59:59 -03:00
dvb_ca_en50221.c [media] dvb: unlock on error in dvb_ca_en50221_io_do_ioctl() 2013-01-06 10:44:45 -02:00
dvb_ca_en50221.h [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_demux.c [media] demux.h: Remove duplicated enum 2013-04-08 06:53:15 -03:00
dvb_demux.h [media] demux.h: Remove duplicated enum 2013-04-08 06:53:15 -03:00
dvb_filter.c [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_filter.h [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_frontend.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
dvb_frontend.h [media] tuner-core/simple: get_rf_strength can be tuner mode specific 2013-04-14 19:44:50 -03:00
dvb_math.c [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_math.h [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_net.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
dvb_net.h [media] dvb: push down ioctl lock in dvb_usercopy 2012-12-27 15:44:21 -02:00
dvb_ringbuffer.c [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvb_ringbuffer.h [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00
dvbdev.c [media] dvb: push down ioctl lock in dvb_usercopy 2012-12-27 15:44:21 -02:00
dvbdev.h [media] dvb: move the dvb core one level up 2012-08-13 23:08:14 -03:00