diff options
author | Christian Lamparter <chunkeey@googlemail.com> | 2010-10-23 09:02:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-25 14:45:56 -0400 |
commit | dafeac387d7f10d12d4fa9cc626af43c805540f7 (patch) | |
tree | 263ab2bc2c5fbf20780cf85cbaab8adc21471206 /drivers | |
parent | c8716d9dc13c7f6ee92f2bfc6cc3b723b417bff8 (diff) |
carl9170: fix scheduling while atomic
This patch fixes the following mishap:
BUG: scheduling while atomic: wpa_supplicant/4164/0x00000002
Modules linked in: carl9170 mac80211 [...]
Pid: 4164, comm: wpa_supplicant Not tainted 2.6.36-wl+ #119
Call Trace:
[<c13779a9>] ? schedule+0x349/0x4c0
[<c13780d6>] ? schedule_timeout+0x106/0x1e0
[<c1037f50>] ? process_timeout+0x0/0x10
[<c1377e8d>] ? wait_for_common+0x9d/0x140
[<c1029110>] ? default_wake_function+0x0/0x10
[<f80c6080>] ? carl9170_exec_cmd+0xf0/0x250 [carl9170]
[<f80c695e>] ? carl9170_set_mac_reg+0x5e/0x70 [carl9170]
[<f80c3f76>] ? carl9170_op_add_interface+0x176/0x310 [carl9170]
[...]
rcu_read_unlock() call was erroneously placed after the
sync. function carl9170_mod_virtual_mac.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c index 3cc99f3f7ab5..980ae70ea424 100644 --- a/drivers/net/wireless/ath/carl9170/main.c +++ b/drivers/net/wireless/ath/carl9170/main.c | |||
@@ -639,8 +639,8 @@ init: | |||
639 | if (err) | 639 | if (err) |
640 | goto unlock; | 640 | goto unlock; |
641 | } else { | 641 | } else { |
642 | err = carl9170_mod_virtual_mac(ar, vif_id, vif->addr); | ||
643 | rcu_read_unlock(); | 642 | rcu_read_unlock(); |
643 | err = carl9170_mod_virtual_mac(ar, vif_id, vif->addr); | ||
644 | 644 | ||
645 | if (err) | 645 | if (err) |
646 | goto unlock; | 646 | goto unlock; |