diff options
author | Josh Boyer <jwboyer@redhat.com> | 2013-01-29 11:45:45 -0500 |
---|---|---|
committer | Josh Boyer <jwboyer@redhat.com> | 2013-01-29 11:53:49 -0500 |
commit | 1a1f3b0695c84dc925b62af6398fcb4798f5c2fd (patch) | |
tree | 248d47a64d220ca48886f29c2f31f0fb8bebd8d7 /iwlegacy-fix-IBSS-cleanup.patch | |
parent | 655567cad9234701704192050d2fbf2b11e55803 (diff) | |
download | kernel-1a1f3b0695c84dc925b62af6398fcb4798f5c2fd.tar.gz kernel-1a1f3b0695c84dc925b62af6398fcb4798f5c2fd.tar.xz kernel-1a1f3b0695c84dc925b62af6398fcb4798f5c2fd.zip |
Linux v3.8-rc5-150-g6abb7c2
Diffstat (limited to 'iwlegacy-fix-IBSS-cleanup.patch')
-rw-r--r-- | iwlegacy-fix-IBSS-cleanup.patch | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/iwlegacy-fix-IBSS-cleanup.patch b/iwlegacy-fix-IBSS-cleanup.patch deleted file mode 100644 index 5533aed75..000000000 --- a/iwlegacy-fix-IBSS-cleanup.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 658f1bd2dd632209df00ec66349e15941ffdd83b Mon Sep 17 00:00:00 2001 -From: Stanislaw Gruszka <sgruszka@redhat.com> -Date: Wed, 16 Jan 2013 10:28:09 +0000 -Subject: [PATCH 3.8] iwlegacy: fix IBSS cleanup - -We do not correctly change interface type when switching from -IBSS mode to STA mode, that results in microcode errors. - -Resolves: -https://bugzilla.redhat.com/show_bug.cgi?id=886946 - -Reported-by: Jaroslav Skarvada <jskarvad@redhat.com> -Cc: stable@vger.kernel.org -Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> ---- - drivers/net/wireless/iwlegacy/common.c | 35 ++++++++++++++-------------------- - 1 file changed, 14 insertions(+), 21 deletions(-) - -diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c -index 7e16d10..90b8970 100644 ---- a/drivers/net/wireless/iwlegacy/common.c -+++ b/drivers/net/wireless/iwlegacy/common.c -@@ -3958,17 +3958,21 @@ il_connection_init_rx_config(struct il_priv *il) - - memset(&il->staging, 0, sizeof(il->staging)); - -- if (!il->vif) { -+ switch (il->iw_mode) { -+ case NL80211_IFTYPE_UNSPECIFIED: - il->staging.dev_type = RXON_DEV_TYPE_ESS; -- } else if (il->vif->type == NL80211_IFTYPE_STATION) { -+ break; -+ case NL80211_IFTYPE_STATION: - il->staging.dev_type = RXON_DEV_TYPE_ESS; - il->staging.filter_flags = RXON_FILTER_ACCEPT_GRP_MSK; -- } else if (il->vif->type == NL80211_IFTYPE_ADHOC) { -+ break; -+ case NL80211_IFTYPE_ADHOC: - il->staging.dev_type = RXON_DEV_TYPE_IBSS; - il->staging.flags = RXON_FLG_SHORT_PREAMBLE_MSK; - il->staging.filter_flags = - RXON_FILTER_BCON_AWARE_MSK | RXON_FILTER_ACCEPT_GRP_MSK; -- } else { -+ break; -+ default: - IL_ERR("Unsupported interface type %d\n", il->vif->type); - return; - } -@@ -4550,8 +4554,7 @@ out: - EXPORT_SYMBOL(il_mac_add_interface); - - static void --il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif, -- bool mode_change) -+il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif) - { - lockdep_assert_held(&il->mutex); - -@@ -4560,9 +4563,7 @@ il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif, - il_force_scan_end(il); - } - -- if (!mode_change) -- il_set_mode(il); -- -+ il_set_mode(il); - } - - void -@@ -4575,8 +4576,8 @@ il_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) - - WARN_ON(il->vif != vif); - il->vif = NULL; -- -- il_teardown_interface(il, vif, false); -+ il->iw_mode = NL80211_IFTYPE_UNSPECIFIED; -+ il_teardown_interface(il, vif); - memset(il->bssid, 0, ETH_ALEN); - - D_MAC80211("leave\n"); -@@ -4685,18 +4686,10 @@ il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - } - - /* success */ -- il_teardown_interface(il, vif, true); - vif->type = newtype; - vif->p2p = false; -- err = il_set_mode(il); -- WARN_ON(err); -- /* -- * We've switched internally, but submitting to the -- * device may have failed for some reason. Mask this -- * error, because otherwise mac80211 will not switch -- * (and set the interface type back) and we'll be -- * out of sync with it. -- */ -+ il->iw_mode = newtype; -+ il_teardown_interface(il, vif); - err = 0; - - out: --- -1.8.0.2 - |