From: Jeff Garzik <jeff@garzik.org>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Theodore Tso <tytso@mit.edu>, Hugh Dickins <hugh@veritas.com>,
Andrew Morton <akpm@linux-foundation.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
mchan@broadcom.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, netdev@vger.kernel.org
Subject: Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin"
Date: Thu, 03 Jul 2008 18:22:18 -0400 [thread overview]
Message-ID: <486D511A.9020405@garzik.org> (raw)
In-Reply-To: <486D4596.60005@infradead.org>
David Woodhouse wrote:
> Jeff Garzik wrote:
>> David Woodhouse wrote:
>>> Although it does make me wonder if it was better the way I had it
>>> originally, with individual options like TIGON3_FIRMWARE_IN_KERNEL
>>> attached to each driver, rather than a single FIRMWARE_IN_KERNEL option
>>> which controls them all.
>>
>> IMO, individual options would be better.
>
> They had individual options for a long time, but the consensus was that
> I should remove them -- a consensus which was probably right. It was
> moderately inconvenient going back through it all and recommitting it
> without that, but it was worth it to get it right...
>
>> Plus, unless I am misunderstanding, the firmware is getting built into
>> the kernel image not the tg3 module?
>
> That's right, although it doesn't really matter when they're both in the
> vmlinux.
>
> When it's actually a module, there really is no good reason not to let
> request_firmware() get satisfied from userspace. If you can load
> modules, then you can load firmware too -- the required udev stuff has
> been there as standard for a _long_ time, as most modern drivers
> _require_ it without even giving you the built-in-firmware option at all.
>
> It makes no more sense to object to that than it does to object to the
> module depending on _other_ modules. Both those other modules, and the
> required firmware, are _installed_ by the kernel Makefiles, after all.
>
> It wouldn't be _impossible_ to put firmware blobs into the foo.ko files
> themselves and find them there. The firmware blobs in the kernel are
> done in a separate section (like initcalls, exceptions tables, pci
> fixups, and a bunch of other stuff). It'd just take some work in
> module.c to link them into a global list, and some locking shenanigans
> in the lookups (and lifetime issues to think about). But it just isn't
> worth the added complexity, given that userspace is known to be alive
> and working. It's pointless not to just use request_firmware() normally,
> from a module.
It is pointless -- if you assume everybody wants to run their distro and
universe your way.
If a firmware is built-in, then 'make firmware_install' is clearly
optional and may be omitted. That invalidates several of your
assumptions above.
Further, all current kernel build and test etc. scripts are unaware of
'make firmware_install', and it is unfair to everybody to force a
flag-day build process change on people, just to keep their drivers in
the same working state today as it was yesterday.
Conclusion - kernel build process must produce a working driver after
your changes are applied, even in absence of 'make firmware_install'.
That does not, repeat /not/ exclude the desired end goal of course --
separating the firmware from the driver, installing in /lib/firmware via
'make firmware_install', etc.
I support your end goal, I really do. But I continue to feel there is a
lack of regard for breakage and regressions. You are either ignoring or
apparently just not seeing
* how many new ways this can produce a non-working driver
* how important it is in this specific case to fail-safe,
and avoid a broken driver at all costs.
As a concrete example, in the above quoted text you assume that a user
will never copy kernel modules around. I can tell you that, with tg3.ko
being nice and self-contained, yes it does get copied around (to
multiple machines, etc.). With the firmware newly separated from
tg3.ko, you have introduced breakage for any user that is unaware of
this new requirement (kernel module == requires additional file now).
Scripts that build install disks must be updated, otherwise a script
that builds a boot image will include the drivers it knows about, but
/not/ include the crucial firmware.
None of this stuff is "pointless", none of this stuff may be dismissed
as "making no sense". All these are real world examples where users
FOLLOWING THEIR NORMAL, PROSCRIBED KERNEL PROCESSES will produce
non-working drivers.
The only valid assumption here is to assume that the user is /unaware/
of these new steps they must take in order to continue to have a working
system.
Regards,
Jeff
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-07-03 22:22 UTC|newest]
Thread overview: 168+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-03 9:02 2.6.26-rc8-mm1 Andrew Morton
2008-07-03 11:22 ` [BUILD-FAILURE] 2.6.26-rc8-mm1 - build failure at drivers/char/hvc_rtas.c Kamalesh Babulal
2008-07-03 11:59 ` [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" KOSAKI Motohiro
2008-07-03 12:21 ` Jeff Garzik
2008-07-03 13:04 ` Hugh Dickins
2008-07-03 13:11 ` Jeff Garzik
2008-07-03 13:33 ` David Woodhouse
2008-07-03 13:38 ` Jeff Garzik
2008-07-03 13:52 ` David Woodhouse
2008-07-03 17:30 ` Theodore Tso
2008-07-03 18:56 ` David Woodhouse
2008-07-03 19:31 ` Valdis.Kletnieks
2008-07-03 19:49 ` David Woodhouse
2008-07-03 20:52 ` Rafael J. Wysocki
2008-07-03 21:03 ` Jeff Garzik
2008-07-03 21:33 ` David Woodhouse
2008-07-03 21:42 ` Rafael J. Wysocki
2008-07-03 21:43 ` David Woodhouse
2008-07-03 21:52 ` Rafael J. Wysocki
2008-07-03 21:54 ` David Woodhouse
2008-07-03 22:27 ` Rafael J. Wysocki
2008-07-03 22:22 ` Jeff Garzik [this message]
2008-07-03 22:25 ` Alan Cox
2008-07-03 23:14 ` Jeff Garzik
2008-07-03 23:02 ` Alan Cox
2008-07-04 2:31 ` Mikael Pettersson
2008-07-03 23:21 ` David Miller, David Woodhouse
2008-07-04 0:18 ` Theodore Tso
2008-07-04 1:09 ` David Woodhouse
2008-07-04 1:47 ` Theodore Tso
2008-07-04 0:24 ` David Woodhouse
2008-07-04 1:28 ` Grant Coady
2008-07-04 2:42 ` david
2008-07-04 10:07 ` David Woodhouse
2008-07-04 10:09 ` Andi Kleen
2008-07-04 13:10 ` David Woodhouse
2008-07-04 13:15 ` Jeff Garzik
2008-07-04 13:27 ` David Woodhouse
2008-07-04 13:39 ` Jeff Garzik
2008-07-04 13:27 ` Alan Cox
2008-07-04 13:48 ` David Woodhouse
2008-07-04 14:06 ` Jeff Garzik
2008-07-04 20:43 ` David Miller, Alan Cox
2008-07-04 21:04 ` Alan Cox
2008-07-06 20:17 ` david
2008-07-06 20:27 ` David Woodhouse
2008-07-06 20:51 ` Jeff Garzik
2008-07-06 20:52 ` david
2008-07-06 20:56 ` David Woodhouse
2008-07-06 21:03 ` david
2008-07-06 21:38 ` Jeff Garzik
2008-07-06 22:10 ` David Woodhouse
2008-07-06 23:22 ` Jeff Garzik
2008-07-05 6:05 ` Jeff Garzik
2008-07-07 17:52 ` Rick Jones
2008-07-04 13:46 ` David Woodhouse
2008-07-04 14:07 ` Jeff Garzik
2008-07-04 14:38 ` Alan Cox
2008-07-06 23:40 ` Jeff Garzik
2008-07-07 15:53 ` Alan Cox
2008-07-07 17:24 ` Jeff Garzik
2008-07-07 18:13 ` Alan Cox
2008-07-07 18:57 ` Jeff Garzik
2008-07-07 18:30 ` Alan Cox
2008-07-07 19:16 ` Jeff Garzik
2008-07-07 18:45 ` Alan Cox
2008-07-07 19:48 ` Jeff Garzik
2008-07-07 20:48 ` David Miller, Alan Cox
2008-07-07 20:42 ` Alan Cox
2008-07-07 21:45 ` David Miller, Alan Cox
2008-07-07 21:14 ` Alan Cox
2008-07-07 21:58 ` David Miller, Alan Cox
2008-07-08 6:36 ` Alan Cox
2008-07-08 8:57 ` David Miller, Alan Cox
2008-07-04 14:30 ` Theodore Tso
2008-07-04 14:37 ` David Woodhouse
2008-07-04 18:01 ` David Woodhouse
2008-07-04 20:28 ` Sam Ravnborg
2008-07-05 4:35 ` Jeff Garzik
2008-07-04 20:39 ` David Miller, Jeff Garzik
2008-07-04 14:10 ` Theodore Tso
2008-07-04 14:23 ` Takashi Iwai
2008-07-04 14:39 ` Hannes Reinecke
2008-07-04 14:42 ` David Woodhouse
2008-07-04 21:34 ` Grant Coady
2008-07-04 22:08 ` David Woodhouse
2008-07-04 23:13 ` Olivier Galibert
2008-07-04 23:58 ` Henrique de Moraes Holschuh
2008-07-05 0:51 ` Trent Piepho
2008-07-05 3:52 ` Henrique de Moraes Holschuh
2008-07-05 6:01 ` Bill Fink
2008-07-05 13:08 ` Henrique de Moraes Holschuh
2008-07-05 4:10 ` Jeff Garzik
2008-07-05 7:41 ` Takashi Iwai
2008-07-05 8:50 ` David Woodhouse
2008-07-05 10:53 ` Olivier Galibert
2008-07-05 11:22 ` Andi Kleen
2008-07-05 12:02 ` Olivier Galibert
2008-07-05 12:09 ` Andi Kleen
2008-07-05 12:16 ` David Woodhouse
2008-07-05 12:23 ` Andi Kleen
2008-07-05 12:42 ` David Woodhouse
2008-07-05 13:57 ` Andi Kleen
2008-07-05 14:44 ` Olivier Galibert
2008-07-05 15:10 ` David Woodhouse
2008-07-05 17:13 ` Christoph Hellwig
2008-07-05 20:55 ` David Woodhouse
2008-07-06 10:02 ` Christoph Hellwig
2008-07-06 10:55 ` David Woodhouse
2008-07-06 11:50 ` Andi Kleen
2008-07-06 12:22 ` David Woodhouse
2008-07-04 14:44 ` Takashi Iwai
2008-07-04 14:24 ` maximilian attems
2008-07-04 14:36 ` Theodore Tso
2008-07-05 10:26 ` maximilian attems
2008-07-04 14:31 ` David Woodhouse
2008-07-04 20:37 ` David Miller, David Woodhouse
2008-07-04 20:42 ` Arjan van de Ven
2008-07-04 20:43 ` David Woodhouse
2008-07-04 20:52 ` David Miller, David Woodhouse
2008-07-04 21:05 ` David Woodhouse
2008-07-05 4:05 ` Valdis.Kletnieks
2008-07-04 20:51 ` David Miller, Arjan van de Ven
2008-07-04 20:59 ` Arjan van de Ven
2008-07-04 21:12 ` David Woodhouse
2008-07-04 21:10 ` Alan Cox
2008-07-04 20:53 ` David Woodhouse
2008-07-05 4:04 ` Jeff Garzik
2008-07-04 13:42 ` Andi Kleen
2008-07-03 20:34 ` David Miller, Jeff Garzik
2008-07-03 20:54 ` David Woodhouse
2008-07-09 20:43 ` Alexandre Oliva
2008-07-04 11:06 ` Takashi Iwai
2008-07-04 13:17 ` David Woodhouse
2008-07-04 13:26 ` Takashi Iwai
2008-07-04 13:28 ` David Woodhouse
2008-07-04 13:42 ` Jeff Garzik
2008-07-04 13:45 ` David Woodhouse
2008-07-04 14:10 ` Jeff Garzik
2008-07-04 14:13 ` David Woodhouse
2008-07-05 6:14 ` Jeff Garzik
2008-07-04 13:28 ` Jeff Garzik
2008-07-03 16:10 ` Chuck Lever
2008-07-03 14:26 ` WARNING at acpi/.../utmisc.c:1043 [Was: 2.6.26-rc8-mm1] Jiri Slaby
2008-07-03 14:38 ` Andi Kleen
2008-07-03 15:24 ` Jiri Slaby
2008-07-03 23:35 ` 2.6.26-rc8-mm1--No e100 :( logs say missing formware Grant Coady
2008-07-04 0:40 ` Andrew Morton
2008-07-03 23:42 ` 2.6.26-rc8-mm1--No e100 :( logs say missing firmware Grant Coady
2008-07-04 2:48 ` Question: split-lur // Re: 2.6.26-rc8-mm1 KAMEZAWA Hiroyuki
2008-07-04 9:02 ` memcg: lru scan fix (Was: 2.6.26-rc8-mm1 KAMEZAWA Hiroyuki
2008-07-04 19:16 ` Rik van Riel
2008-07-04 19:24 ` Andrew Morton
2008-07-05 3:59 ` KAMEZAWA Hiroyuki
2008-07-04 9:09 ` [PATCH] memcg: handle shmem's swap cache (Was 2.6.26-rc8-mm1 KAMEZAWA Hiroyuki
2008-07-05 5:41 ` Balbir Singh
2008-07-05 6:11 ` KAMEZAWA Hiroyuki
2008-07-05 6:49 ` Balbir Singh
2008-07-05 8:16 ` kamezawa.hiroyu
2008-07-04 22:49 ` 2.6.26-rc8-mm1: unable to mount nfs shares Mariusz Kozlowski
2008-07-04 23:07 ` Andrew Morton
2008-07-08 14:42 ` [BUG] 2.6.26-rc8-mm1 - sleeping function called from invalid context at include/linux/pagemap.h:291 Kamalesh Babulal
2008-07-12 7:15 ` KOSAKI Motohiro
2008-07-09 21:33 ` 2.6.26-rc8-mm1 - Missing AC97 power save Kconfig? Zan Lynx
2008-07-09 22:05 ` Randy Dunlap
2008-07-09 22:34 ` Zan Lynx
2008-07-05 5:49 [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" Jaswinder Singh
2008-07-05 6:37 Jaswinder Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=486D511A.9020405@garzik.org \
--to=jeff@garzik.org \
--cc=akpm@linux-foundation.org \
--cc=dwmw2@infradead.org \
--cc=hugh@veritas.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox