netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* calling request_firmware() from module init will not work with recent/future udev versions
@ 2012-01-14 15:25 Kay Sievers
  2012-01-14 17:58 ` John W. Linville
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Kay Sievers @ 2012-01-14 15:25 UTC (permalink / raw)
  To: netdev, linux-wireless; +Cc: Tom Gundersen, Andy Whitcroft

Hey,

just a heads-up, when bug reports are coming in now. The kernel log
might look like a kernel failure, but it's caused by recent userspace
changes.

We changed udev to strictly enforce sequence order and dependency
handling of events. This seems to break some netdev drivers which
block in modprobe until the firmware from userspace is loaded into the
driver.

I think it's out of question, that nothing must block in module init
and rely on a userspace transaction to be fulfilled to finish the
init_module() syscall. If userspace is not running properly, nothing
will work. Built-in drivers and the transition from initramfs to the
real root can't be handled properly that way.

These drivers need to be fixed to load their firmware during ifup,
which would be the most flexible solution. That way, it should also
work if the driver is built-in, or is loaded from initramfs and no
firmware is available.
Alternatively, the firmware request should be able to use the aync
firmware_request API and not the blocking one.

We might need to work around that in the current udev for now, but
these drivers will definitely break in future udev versions.
Userspace, these days, should not be in charge of papering over
obvious kernel bugs like this.

These are the drivers we received bug reports so far. We didn't look
into any of details of the drivers, but according to the logs, they
seem to block for 60 seconds in modprobe, when userspace is not
behaving like expected:
  bnx2/bnx2-mips-06-6.2.1.fw
  rtlwifi/rtl8192sefw.bin
  brcm/bcm43xx-0.fw

Any help here would be appreciated.

Thanks,
Kay

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-07-24 17:51 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-14 15:25 calling request_firmware() from module init will not work with recent/future udev versions Kay Sievers
2012-01-14 17:58 ` John W. Linville
2012-01-14 18:20   ` Larry Finger
     [not found]     ` <4F11C75F.9030105-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2012-01-14 19:59       ` Arend van Spriel
     [not found]         ` <4F11DEB8.7010708-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2012-01-14 20:13           ` Larry Finger
     [not found]             ` <4F11E1CE.2050008-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2012-01-14 20:15               ` Emmanuel Grumbach
2012-01-14 18:45 ` Larry Finger
2012-01-14 19:26   ` Tom Gundersen
2012-01-15 10:02 ` Johannes Berg
     [not found]   ` <1326621743.3448.1.camel-8upI4CBIZJIJvtFkdXX2HixXY32XiHfO@public.gmane.org>
2012-01-15 15:33     ` Kay Sievers
2012-01-16  8:57       ` Johannes Berg
2012-01-16 12:05         ` Kay Sievers
2012-01-16 12:16           ` Johannes Berg
2012-07-19 10:46             ` Kay Sievers
2012-07-24 14:16               ` Johannes Berg
2012-07-24 14:32                 ` Tom Gundersen
2012-07-24 17:50                   ` Kay Sievers
     [not found]         ` <1326704259.3510.3.camel-8upI4CBIZJIJvtFkdXX2HixXY32XiHfO@public.gmane.org>
2012-02-16 12:04           ` Arend van Spriel
2012-02-16 12:38             ` Johannes Berg
     [not found]               ` <1329395881.3915.7.camel-8upI4CBIZJIJvtFkdXX2HixXY32XiHfO@public.gmane.org>
2012-02-16 13:09                 ` Arend van Spriel
     [not found]                   ` <4F3D0012.9070808-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2012-02-16 14:39                     ` Johannes Berg
     [not found] ` <CAPXgP11iT9K2KcDCJvw_druf5qdNjs0jLfrbpS7CcYh5vXrz_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-20 17:43   ` Arend van Spriel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).