V4L/DVB (9029): Fix deadlock in demux code
authorAndreas Oberritter <obi@linuxtv.org>
Wed, 24 Sep 2008 08:00:37 +0000 (05:00 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sun, 5 Oct 2008 01:59:55 +0000 (22:59 -0300)
commitdda06a8e4610757def753ee3a541a0b1a1feb36b
tree54e2b56b4c46b90100b9b00493497ee389887eae
parent3d843c92da5a1f1ab2cbc2b2e04f84d5ecedf5aa
V4L/DVB (9029): Fix deadlock in demux code

The functions dvb_dmxdev_section_callback, dvb_dmxdev_ts_callback,
dvb_dmx_swfilter_packet, dvb_dmx_swfilter_packets, dvb_dmx_swfilter and
dvb_dmx_swfilter_204 may be called from both interrupt and process
context. Therefore they need to be protected by spin_lock_irqsave()
instead of spin_lock().

This fixes a deadlock discovered by lockdep.

Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-core/dmxdev.c
drivers/media/dvb/dvb-core/dvb_demux.c