• Larry Finger's avatar
    b43legacy: Fix firmware loading when driver is built into the kernel · 576d28a7
    Larry Finger authored
    Recent versions of udev cause synchronous firmware loading from the
    probe routine to fail because the request to user space times out.
    The original fix for b43legacy (commit a3ea2c76) moved the firmware
    load from the probe routine to a work queue, but it still used synchronous
    firmware loading. This method is OK when b43legacy is built as a module;
    however, it fails when the driver is compiled into the kernel.
    
    This version changes the code to load the initial firmware file
    using request_firmware_nowait(). A completion event is used to
    hold the work queue until that file is available. The remaining
    firmware files are read synchronously.
    Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@vger.kernel.org>  (V3.4+)
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    576d28a7
b43legacy.h 26.6 KB