]> git.baikalelectronics.ru Git - kernel.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)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 10 Dec 2012 20:47:29 +0000 (15:47 -0500)
commite0ae645fdaaaa37cf52ea2df7cbc7b29d2072983
tree9d74550687b6fa12bb92a005aee042ba71500f6c
parent7a09b4f49e77faba898ef6823dcedac0236f42df
b43legacy: Fix firmware loading when driver is built into the kernel

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 a21ca13) 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>
Cc: Stable <stable@vger.kernel.org> (V3.4+)
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43legacy/b43legacy.h
drivers/net/wireless/b43legacy/main.c