Messages in this thread | | | From | Roland Dreier <> | Subject | Re: [PATCH 1/1] introduce __cancel_delayed_work() | Date | Tue, 01 Sep 2009 09:09:36 -0700 |
| |
> cancel_delayed_work() has to use del_timer_sync() to guarantee the > timer function is not running after return. But most users doesn't > actually need this, and del_timer_sync() has problems: it is not > useable from interrupt, and it depends on every lock which could > be taken from irq. > > Introduce __cancel_delayed_work() which calls del_timer() instead. > > The immediate reason for this patch is > http://bugzilla.kernel.org/show_bug.cgi?id=13757 > but hopefully this helper makes sense anyway.
Thanks, Oleg!
Andrew -- how do you want to handle this? This seems to be useful for the bug with IB that Oleg linked to, as well as by Dmitry in input, so I'm not sure what the best way to merge all this into 2.6.32 is.
I could take Oleg's patch and the corresponding fix to drivers/infiniband through my tree, and merge as early I as I see Linus open 2.6.32. That leaves Dmitry to wait on it (and possibly causes problems in -next with tree ordering) though. But I don't see any way to get the number of cross-tree dependencies below 1... (unless maybe Dmitry can take the identical workqueue patch into his tree and trust git to sort it out?)
- R.
| |