On Mon, 2 Mar 2009, Jean Delvare wrote: > On Mon, 2 Mar 2009 17:03:49 +0100, Jean Delvare wrote: > > As far as I can see the key difference between bttv-input and > > cx88-input is that bttv-input only uses a simple self-rearming timer, > > while cx88-input uses a timer and a separate workqueue. The timer runs > > the workqueue, which rearms the timer, etc. When you flush the timer, > > the separate workqueue can be still active. I presume this is what > > happens on my system. I guess the reason for the separate workqueue is > > that the processing may take some time and we don't want to hurt the > > system's performance? > > > > So we need to flush both the event workqueue (with > > flush_scheduled_work) and the separate workqueue (with > > flush_workqueue), at the same time, otherwise the active one may rearm What are the two work queues are you talking about? I don't see any actual work queues created. Just one work function that is scheduled on the system work queue. The timer is a softirq and doesn't run on a work queue. > Switching to delayed_work seems to do the trick (note this is a 2.6.28 > patch): Makes the most sense to me. I was just about to make a patch to do the same thing when I got your email. Though I was going to patch the v4l-dvb sources to avoid porting work. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html