linux_old1/drivers/media/dvb/dvb-core
Matthias Dahl d7e43844e4 V4L/DVB (9054): implement proper locking in the dvb ca en50221 driver
Concurrent access to a single DVB CA 50221 interface slot is generally
discouraged. The underlying drivers (budget-av, budget-ci) do not implement
proper locking and thus two transactions could (and do) interfere with on
another.

This fixes the following problems seen by others and myself:

 - sudden i/o errors when writing to the ci device which usually would
   result in an undefined state of the hw and require a software restart

 - errors about the CAM trying to send a buffer larger than the agreed size
   usually also resulting in an undefined state of the hw

Due the to design of the DVB CA 50221 driver, implementing the locks in the
underlying drivers would not be enough and still leave some race conditions,
even though they were harder to trigger.

Signed-off-by: Matthias Dahl <devel@mortal-soul.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-29 08:35:37 -02:00
..
Makefile V4L/DVB (4411): Fix minor errors in build files 2006-08-08 15:53:03 -03:00
demux.h V4L/DVB (8131): dmx_write: memcpy from user-supplied pointer 2008-07-20 07:13:27 -03:00
dmxdev.c V4L/DVB (9029): Fix deadlock in demux code 2008-10-04 22:59:55 -03:00
dmxdev.h V4L/DVB (5511): Fix 2/3 for bug 7819: demux and dvr 2007-04-27 15:45:31 -03:00
dvb_ca_en50221.c V4L/DVB (9054): implement proper locking in the dvb ca en50221 driver 2009-01-29 08:35:37 -02:00
dvb_ca_en50221.h V4L/DVB (9054): implement proper locking in the dvb ca en50221 driver 2009-01-29 08:35:37 -02:00
dvb_demux.c V4L/DVB (9029): Fix deadlock in demux code 2008-10-04 22:59:55 -03:00
dvb_demux.h V4L/DVB (5512): Fix 3/3 for bug 7819: fixed hotplugging for dvbnet 2007-04-27 15:45:32 -03:00
dvb_filter.c
dvb_filter.h
dvb_frontend.c V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols 2009-01-07 22:18:55 -02:00
dvb_frontend.h V4L/DVB (9344): DVB-Core update 2008-12-29 17:53:12 -02:00
dvb_math.c V4L/DVB (3996): Make the table static 2006-06-25 02:00:11 -03:00
dvb_math.h V4L/DVB (3988): Add math routines required by DVB demods 2006-06-25 02:00:08 -03:00
dvb_net.c dvb: update network device to current API 2009-01-07 18:02:53 -08:00
dvb_net.h V4L/DVB (5512): Fix 3/3 for bug 7819: fixed hotplugging for dvbnet 2007-04-27 15:45:32 -03:00
dvb_ringbuffer.c V4L/DVB (8130): split dvb_ringbuffer dual-use functions 2008-07-20 07:13:23 -03:00
dvb_ringbuffer.h V4L/DVB (8130): split dvb_ringbuffer dual-use functions 2008-07-20 07:13:23 -03:00
dvbdev.c Check fops_get() return value 2009-01-06 15:59:11 -08:00
dvbdev.h V4L/DVB (9361): Dynamic DVB minor allocation 2008-12-29 17:53:12 -02:00