The following reply was made to PR kern/43125; it has been noted by GNATS.
From: Michael van Elst <mlelstv@xxxxxxxxxx>
To: Izumi Tsutsui <tsutsui@xxxxxxxxxxxxxxx>
Cc: gnats-bugs@xxxxxxxxxx, mlelstv@xxxxxxxxxx, kern-bug-people@xxxxxxxxxx,
netbsd-bugs@xxxxxxxxxx, gnats-admin@xxxxxxxxxx, gson@xxxxxxxx
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Sun, 13 Jun 2010 09:17:41 +0200
On Sun, Jun 13, 2010 at 12:31:25PM +0900, Izumi Tsutsui wrote:
> > Synopsis: zyd(4) crashes with Buffalo WLI-U2-KG54L
> > I can repeat the problem with a SMC USB2.0 WLAN and have a patch.
> Any progress on this?
zyd loads the firmware when the interface is put in UP state, but
you may call ioctl on the interface before this. The ioctl may end
in net80211 code that relies on initialized hardware.
So my patch just initializes the hardware on the first ioctl too.
Unfortunately this doesn't make zyd work on my network, there
seem to be other issues as I also see USB errors.
My assumption was that the deferred initialization was to avoid
consuming firmware ressources until the device is actually used
and not about availability of the firmware. It also lets you
load and unload the firmware by just putting the interface up
Moving initialization into a config_mountroot() looks interesting,
but it looks a bit like it may only happen once and leaves out
the possibility to reload the firmware. Or can you control this
If drvctl lets you detach and rescan USB devices, then maybe
a solution would be to not even attach the devices before the
firmware is available but to defer all this to an rc script?
Michael van Elst
"A potential Snark may lurk in every tree."