summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
new file mode 100644
index 00000000..c3de0fdc
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
@@ -0,0 +1,48 @@
1From 9edb0f56a8e94b830ce7a97706689fbe8d362066 Mon Sep 17 00:00:00 2001
2From: Seth Forshee <seth.forshee@canonical.com>
3Date: Wed, 25 Apr 2012 17:28:00 -0500
4Subject: [PATCH 138/165] b43: only reload config after successful
5 initialization
6
7commit dbdedbdf4fbff3d4962a0786f37aa86dfdc48a7e upstream.
8
9Commit 2a19032 (b43: reload phy and bss settings after core restarts)
10introduced an unconditional call to b43_op_config() at the end of
11b43_op_start(). When firmware fails to load this can wedge the system.
12There's no need to reload the configuration after a failed
13initialization anyway, so only make the call if initialization was
14successful.
15
16BugLink: http://bugs.launchpad.net/bugs/950295
17Cc: Felix Fietkau <nbd@openwrt.org>
18Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
19Signed-off-by: John W. Linville <linville@tuxdriver.com>
20Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
21---
22 drivers/net/wireless/b43/main.c | 10 ++++++++--
23 1 files changed, 8 insertions(+), 2 deletions(-)
24
25diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
26index 5634d9a..680709c 100644
27--- a/drivers/net/wireless/b43/main.c
28+++ b/drivers/net/wireless/b43/main.c
29@@ -4820,8 +4820,14 @@ static int b43_op_start(struct ieee80211_hw *hw)
30 out_mutex_unlock:
31 mutex_unlock(&wl->mutex);
32
33- /* reload configuration */
34- b43_op_config(hw, ~0);
35+ /*
36+ * Configuration may have been overwritten during initialization.
37+ * Reload the configuration, but only if initialization was
38+ * successful. Reloading the configuration after a failed init
39+ * may hang the system.
40+ */
41+ if (!err)
42+ b43_op_config(hw, ~0);
43
44 return err;
45 }
46--
471.7.7.6
48