Re: [PATCH] Add to_delayed_work helper function

Jean Delvare
2009-03-03T13:29:47Z

On Tue, 3 Mar 2009 13:11:38 +0100, Ingo Molnar wrote:
>
> * Jean Delvare <khali@linux-fr.org> wrote:
>
> > It is a fairly common operation to have a pointer to a work and to
> > need a pointer to the delayed work it is contained in. In particular,
> > all delayed works which want to rearm themselves will have to do that.
> > So it would seem fair to offer a helper function for this operation.
> >
> > Signed-off-by: Jean Delvare <khali@linux-fr.org>
> > ---
> > Andrew, does this variant please you better?
> >
> > arch/powerpc/kernel/vio.c | 2 +-
> > drivers/crypto/hifn_795x.c | 2 +-
> > drivers/input/mouse/hgpk.c | 2 +-
> > drivers/net/dm9000.c | 2 +-
> > drivers/net/mlx4/en_netdev.c | 2 +-
> > drivers/net/mlx4/en_rx.c | 2 +-
> > drivers/s390/scsi/zfcp_fc.c | 2 +-
> > drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c | 8 ++++----
> > drivers/staging/rtl8187se/r8180_core.c | 8 ++++----
> > drivers/staging/rtl8187se/r8180_dm.c | 6 +++---
> > drivers/usb/wusbcore/devconnect.c | 2 +-
> > include/linux/workqueue.h | 5 +++++
> > mm/slab.c | 3 +--
> > 13 files changed, 25 insertions(+), 21 deletions(-)
>
> looks good,
>
> Acked-by: Ingo Molnar <mingo@elte.hu>

Thanks for the review.

> one small detail:
>
> > --- linux-2.6.29-rc6.orig/include/linux/workqueue.h 2009-01-29 08:27:20.000000000 +0100
> > +++ linux-2.6.29-rc6/include/linux/workqueue.h 2009-03-03 10:36:53.000000000 +0100
> > @@ -41,6 +41,11 @@ struct delayed_work {
> > struct timer_list timer;
> > };
> >
> > +static inline struct delayed_work *to_delayed_work(struct work_struct *_work)
> > +{
> > + return container_of(_work, struct delayed_work, work);
> > +}
> > +
>
> there's no need to name it _work i think and '*work' should be
> just fine - this isnt a macro so there's no danger of namespace
> interactions.

I was too chicken to do it because container_of itself is a macro. But
I tried it and you are correct. Updated patch follows.

--
Jean Delvare