linux/drivers/media/dvb
Oleg Nesterov 1e4597e8f0 V4L/DVB (5818): CinergyT2: fix flush_workqueue() vs work->func() deadlock
Spotted and tested by Thomas Sattler <tsattler@gmx.de>.

cinergyT2.c does cancel_delayed_work() + flush_scheduled_work() while
holding cinergyt2->sem. This leads to deadlock because work->func()
needs the same mutex to complete. Another bug is that this code in fact
can't reliably stop the re-arming delayed_work.

Convert this code to use cancel_rearming_delayed_work() and move it
out of ->sem. Another mutex, ->wq_sem, was added to protect against the
concurrent open/resume.

This patch is a horrible hack to fix the lockup which happens in practice.
As Dmitry Torokhov pointed out this driver has other problems and needs
further changes.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-07-03 15:11:19 -03:00
..
b2c2 V4L/DVB (5761): Fix broken b2c2 dependency on non x86 architectures 2007-06-08 08:54:39 -03:00
bt8xx V4L/DVB (5639a): Fix dst usage count 2007-05-22 16:00:14 -03:00
cinergyT2 V4L/DVB (5818): CinergyT2: fix flush_workqueue() vs work->func() deadlock 2007-07-03 15:11:19 -03:00
dvb-core V4L/DVB (5630): Dvb-core: Handle failures to create devices 2007-05-22 16:00:14 -03:00
dvb-usb Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb 2007-05-11 12:57:16 -07:00
frontends V4L/DVB (5716): Tda10086,tda826x: fix tuning, STR/SNR values 2007-06-08 08:21:13 -03:00
pluto2 V4L/DVB (5578): Workaround for bad hardare/firmware on some pluto2 devices 2007-05-09 10:12:35 -03:00
ttpci V4L/DVB (5593): Budget-ci: Fix tuning for TDM 1316 (160..200 MHz) 2007-05-09 10:12:42 -03:00
ttusb-budget V4L/DVB (5361): Dvb-pll: Fix Kconfig files and allow dvb-pll to be optional 2007-04-27 15:44:01 -03:00
ttusb-dec V4L/DVB (5164): Compat: Handle input_register_device() change and some others 2007-02-21 13:35:10 -02:00
Kconfig Fix Kconfig dependency problems wrt boolean menuconfigs 2007-06-28 11:34:53 -07:00
Makefile [PATCH] dvb: add Pluto2 driver 2005-07-07 18:23:55 -07:00