1
linux/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
..
demux.h
dmxdev.c V4L/DVB (9029): Fix deadlock in demux code 2008-10-04 22:59:55 -03:00
dmxdev.h
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
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
dvb_math.h
dvb_net.c dvb: update network device to current API 2009-01-07 18:02:53 -08:00
dvb_net.h
dvb_ringbuffer.c
dvb_ringbuffer.h
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
Makefile