[media] Mantis: append tasklet maintenance for DVB stream delivery
authorMarko Ristola <marko.ristola@kolumbus.fi>
Sun, 14 Nov 2010 17:09:04 +0000 (14:09 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 29 Dec 2010 10:16:48 +0000 (08:16 -0200)
commit9c81496a88b04206d0607b23b298b6529da1fcb0
tree4b8abc23a2d2976129c6837461b207fd98cb85b7
parent116d588ea21cf0278a4de1e3272e9c3220a647e7
[media] Mantis: append tasklet maintenance for DVB stream delivery

After dvb-core has called mantis-fe->stop_feed(dvbdmxfeed)
the last time (count to zero), no data should ever be copied
with dvb_dmx_swfilter() by a tasklet: the target structure
might be in an unusable state. Caller of mantis_fe->stop_feed()
assumes that feeding is stopped after stop_feed() has been
called, ie. dvb_dmx_swfilter() isn't running, and won't be called.

There is a risk that dvb_dmx_swfilter() references freed resources
(memory or spinlocks or ???) causing instabilities. Thus
tasklet_disable(&mantis->tasklet) must be called inside of
mantis-fe->stop_feed(dvbdmxfeed) when necessary.

Signed-off-by: Marko Ristola <marko.ristola@kolumbus.fi>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/mantis/mantis_dvb.c