Re: [PATCH] Export current_is_keventd() for libphy

Steve Fox
2006-12-04T19:17:34Z

On Sun, 2006-12-03 at 01:16 -0800, Andrew Morton wrote:
> On Sun, 03 Dec 2006 00:50:55 -0500
> Ben Collins <ben.collins@ubuntu.com> wrote:
>
> > Fixes this problem when libphy is compiled as module:
> >
> > WARNING: "current_is_keventd" [drivers/net/phy/libphy.ko] undefined!
> >
> > diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> > index 17c2f03..1cf226b 100644
> > --- a/kernel/workqueue.c
> > +++ b/kernel/workqueue.c
> > @@ -608,6 +608,7 @@ int current_is_keventd(void)
> > return ret;
> >
> > }
> > +EXPORT_SYMBOL_GPL(current_is_keventd);
> >
> > #ifdef CONFIG_HOTPLUG_CPU
> > /* Take the work from this (downed) CPU. */
>
> wtf? That code was merged? This bug has been known for months and after
> several unsuccessful attempts at trying to understand what on earth that
> hackery is supposed to be doing I gave up on it and asked Jeff to look after
> it.
>
> Maciej, please, in very small words written in a very large font, explain to
> us what is going on in phy_stop_interrupts()? Include pictures.

Unfortunately Maciej didn't get cc'ed correctly on your mail. Hopefully
I've added the right person to this post as well as Andy who has also
recently changed this code.

We're also hitting this on one of the test.kernel.org machines, bl6-13.

--

Steve Fox
IBM Linux Technology Center