diff options
author | George <george0505@realtek.com> | 2011-09-03 15:58:48 (GMT) |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-13 18:18:38 (GMT) |
commit | bac2555c6d86387132930af4d14cb47c4dd3f4f7 (patch) | |
tree | d92bb034f31fee862284686540125dd1da462c0f /drivers/net/wireless/rtlwifi/core.c | |
parent | 3401dc6eba788ebc7c14ce51018d775b1c263399 (diff) | |
download | linux-bac2555c6d86387132930af4d14cb47c4dd3f4f7.tar.xz |
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>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/core.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/core.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c index 1bdc1aa..04c4e9e 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, |