[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20061210200040.99790.qmail@web52905.mail.yahoo.com>
Date: Sun, 10 Dec 2006 20:00:40 +0000 (GMT)
From: Chris Rankin <rankincj@...oo.com>
To: v4l-dvb-maintainer@...uxtv.org
Cc: linux-kernel@...r.kernel.org, akpm@...l.org
Subject: [OOPS] [PATCH] Avoid race when deregistering the IR control for dvb-usb
Hi,
Does anyone plan on fixing this oops any time soon? I first reported it back with 2.6.16.2!
http://lkml.org/lkml/2006/4/14/58
Basically, the work item function is dvb_usb_read_remote_control():
INIT_WORK(&d->rc_query_work, dvb_usb_read_remote_control, d);
and the last piece of work it does is:
schedule_delayed_work(&d->rc_query_work,msecs_to_jiffies(d->props.rc_interval));
Hence you need to call "cancel_rearming_delayed_work()" and not "cancel_delayed_work()", correct?
I certainly haven't seen this oops reoccur since I applied this patch.
Cheers,
Chris
--- linux-2.6.16/drivers/media/dvb/dvb-usb/dvb-usb-remote.c.orig 2006-01-03
20:04:51.000000000 +0000
+++ linux-2.6.16/drivers/media/dvb/dvb-usb/dvb-usb-remote.c 2006-05-08 20:44:44.000000000
+0100
@@ -138,7 +138,7 @@
int dvb_usb_remote_exit(struct dvb_usb_device *d)
{
if (d->state & DVB_USB_STATE_REMOTE) {
- cancel_delayed_work(&d->rc_query_work);
+ cancel_rearming_delayed_work(&d->rc_query_work);
flush_scheduled_work();
input_unregister_device(d->rc_input_dev);
}
Send instant messages to your online friends http://uk.messenger.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists