> On 11/12/17(Mon) 10:01, Theo de Raadt wrote: > > > On 11/12/17(Mon) 17:44, Stefan Sperling wrote: > > > > When the root filesystem is mounted, the iwm(4) driver will try to > > > > load firmware from the root filesystem in order to read the MAC > > > > address. > > > > > > > > This has never worked in bsd.rd and results in a bogus "could not > > > > load firmware" error being displayed during every upgrade. > > > > > > > > With this diff, when the driver runs in bsd.rd it will try to > > > > load firmware when the interface comes up for the first time > > > > which avoids the pointless error. > > > > > > > > Personally, I think this change is long overdue... > > > > > > Why not load the firmware in iwm_init()/init_hw() like other wireless > > > drivers do? > > > > That does get done. But the ramdisk doesn't contain the firmware. > > No that doesn't get done. The driver uses a hook to load the firmware. > I'm asking why it uses a hook and not load the firmware when bringing > the interface UP like any other wireless interface.
Because then you'll see basically nothing in dmesg about the device when you boot the machine Also, ifconfig up will boot the chip in real-time, for the first time, rather than the current situation where it gets started in the background. > The only difference I see is that the MAC address has to be read from > the EEPROM. It's not clear to me if Linux does that for all models, > hence my question. Only difference? I don't think so, you haven't timed how long that ifconfig will now take, since the chip booted up while rc scripts ran. I suspect the change you propose will be noticeable.
