Re: lockdep trace from rc2.

David Miller
2008-02-27T06:40:10Z

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 26 Feb 2008 19:54:00 -0800

> > This has come up before in other drivers,
> > you can't call flush_scheduled_work under RTNL.
>
> Correct link: http://kerneltrap.org/mailarchive/linux-kernel/2007/4/11/76312

Ok.

When I first looked at Dave's lockdep trace I grepped around and there
are a bunch of drivers that call flush_scheduled_work like this.

It seems that the common case is a driver that shares a lot of code
between the suspend and ->stop paths. Tulip is just such a case.

I can't tell if it's legal to just move the flush_scheduled_work()
call out of tulip_down() and into it's suspend function. If it
needs this for suspend it probably needs it for ->stop() too.

Maybe it could do something similar to the 8139too fix at the above
URL, but this is quite cumbersome if you ask me.

Anyways, could someone please work on a fix for this stuff?