[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTikiGeSfae3guWRMp_hsh61JibacPpwGZVbgSy7h@mail.gmail.com>
Date: Fri, 14 Jan 2011 08:05:22 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Michael Tokarev <mjt@....msk.ru>,
David Woodhouse <dwmw2@...radead.org>,
Johannes Berg <johannes.berg@...el.com>,
Greg Kroah-Hartman <gregkh@...e.de>,
"Rafael J. Wysocki" <rjw@...k.pl>
Cc: Francois Romieu <romieu@...zoreil.com>,
David Miller <davem@...emloft.net>, netdev@...r.kernel.org,
Jarek Kamiński <jarek@...o.eu.org>,
Hayes <hayeswang@...ltek.com>, Ben Hutchings <benh@...ian.org>
Subject: Re: [PATCH] r8169: keep firmware in memory.
[ background for new people in discussion: once more, a driver resume
didn't get a working firmware load. ]
On Thu, Jan 13, 2011 at 10:52 PM, Michael Tokarev <mjt@....msk.ru> wrote:
>
> Given all this I think this is somewhat clumsy still. How
> does other NIC drivers handles this situation - e.g. tg3?
> Maybe this needs to be a generic solution instead of per-driver?
We've had this bug several times - and not just for network drivers
either. It's almost universal that drivers just load their firmware at
initialization, and then don't realize that they need to do it at
resume too and have no filesystems accessible. I think the firmware
access interface is partly to blame, because I suspect both the
documentation and the code (and probably any examples: as mentioned,
this is very common) tends to be about that initial one-shot "bring
the device up" rather than thinking about "oh, resume is a bootup too,
and unlike initial boot, it needs to come up in a configured state".
Maybe the firmware loader could be made more useful to automatically
handle the caching (it already knows about built-in firmware) for the
case where CONFIG_PM is enabled. So that drivers _could_ just
basically do "request_firmware()" in their resume functions, and it
would get satisfied from RAM for the re-request case.
Or maybe we could have some honking big comments, at least ;)
Added some device core/fw-class people to the discussion for comments.
Clearly the fw loading _works_, but it does end up being a common bug
that it's messed up at resume. This time it was the "oh, I moved the
firmware loading around so now it's done at a different stage", but
quite often it's literally just "oh, it never worked, I had just
forgotten about resume".
Linus
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists