summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge <george0505@realtek.com>2011-09-03 10:58:48 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-09-13 14:18:38 -0400
commitbac2555c6d86387132930af4d14cb47c4dd3f4f7 (patch)
treed92bb034f31fee862284686540125dd1da462c0f
parent3401dc6eba788ebc7c14ce51018d775b1c263399 (diff)
downloadlinux-stable-bac2555c6d86387132930af4d14cb47c4dd3f4f7.tar.gz
linux-stable-bac2555c6d86387132930af4d14cb47c4dd3f4f7.tar.bz2
linux-stable-bac2555c6d86387132930af4d14cb47c4dd3f4f7.zip
rtlwifi: Fix problem when switching connections
The driver fails to clear encryption keys making it impossible to switch connections. Signed-off-by: George <george0505@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@kernel.org> [2.6.39+] Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rtlwifi/core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index 1bdc1aa305c0..04c4e9eb6ee6 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -610,6 +610,11 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
mac->link_state = MAC80211_NOLINK;
memset(mac->bssid, 0, 6);
+
+ /* reset sec info */
+ rtl_cam_reset_sec_info(hw);
+
+ rtl_cam_reset_all_entry(hw);
mac->vendor = PEER_UNKNOWN;
RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
@@ -1063,6 +1068,9 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
*or clear all entry here.
*/
rtl_cam_delete_one_entry(hw, mac_addr, key_idx);
+
+ rtl_cam_reset_sec_info(hw);
+
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,