]> git.karo-electronics.de Git - karo-tx-linux.git/commit
b43legacy: Fix firmware loading when driver is built into the kernel
authorLarry Finger <Larry.Finger@lwfinger.net>
Fri, 7 Dec 2012 03:55:16 +0000 (21:55 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Jan 2013 17:18:16 +0000 (09:18 -0800)
commit6a9c6804719aa5c6e17037b947875ed614c2e7b2
tree20b2a68a2f64aff9733f81fb46eb327e3939b066
parent235db1e98f49a39427b87b491388cf645406e5fc
b43legacy: Fix firmware loading when driver is built into the kernel

commit 576d28a7c73013717311cfcb514dbcae27c82eeb upstream.

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 a3ea2c7) 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: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/b43legacy/b43legacy.h
drivers/net/wireless/b43legacy/main.c