Comment 6 for bug 1008905

Revision history for this message
Seth Forshee (sforshee) wrote :

I've reproduced this bug on a Mac Mini, and I'm currently building with a patch sent to the b43-dev list which purports to fix the issue.

I suspect the following commit introduced the issue, which would make 3.4-rc1 the first version to have this bug. The commit moves requesting firmware to a workqueue. Previously failure to find the firmware would cause probe to fail. Now it's done after probe, but the device isn't registered with ieee80211 unless the firmware is successfully loaded. b43's remove callback doesn't take this into account and calls ieee80211_unregister_hw() even though the device was never registered.

commit 6b6fa5868eec26bdc6a83543cebb8cf832a2645a
Author: Larry Finger <email address hidden>
Date: Thu Mar 8 22:27:46 2012 -0600

    b43: Load firmware from a work queue and not from the probe routine

    Recent changes in udev are causing problems for drivers that load firmware
    from the probe routine. As b43 has such a structure, it must be changed.
    As this driver loads more than 1 firmware file, changing to the asynchronous routine
    request_firmware_nowait() would be complicated. In this implementation, the probe
    routine starts a queue that calls the firmware loading routines.