Re: [PATCH 1/1] introduce __cancel_delayed_work()

From: Dmitry Torokhov
Date: Tue Sep 01 2009 - 12:40:46 EST

On Tuesday 01 September 2009 09:09:36 am Roland Dreier wrote:
> > 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
> >
> > 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?)

I wonder if Linus would not just take it in 31 - it is a completely
new function with no current users (but users will surely follow) so
introducing regression is highly unlikely... That would resolve all
inter-tree dependencies.

Otherwise we'll have to leave our fate in the hands of git ;)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at