Skip to content
Browse files

wlcore: always set default wep key idx (INTERNAL)

The driver doesn't configure the FW default wep key
in case it thinks it's identical to what was set. However,
the FW clears the default tx wep key index as part of removing
that key. This leads to key index 0 being used instead of
the correct key index in case of disconnect and reconnect
to the same network. This of course prevents any TX to the
reconnected network.
Fix it by always configuring the default wep key requested
by mac80211.
Also add a debug log for op_set_default_key_idx like the
rest of mac80211 ops.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
  • Loading branch information...
1 parent b94686e commit be67e9330e56c26b8fa60ad52e5c196fe20d1f7f @eyalsh eyalsh committed with ariknem Jul 4, 2012
Showing with 4 additions and 3 deletions.
  1. +4 −3 drivers/net/wireless/ti/wlcore/main.c
View
7 drivers/net/wireless/ti/wlcore/main.c
@@ -3220,10 +3220,11 @@ static int wl1271_op_set_default_key_idx(struct ieee80211_hw *hw,
struct wl1271 *wl = hw->priv;
struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
int ret = 0;
- mutex_lock(&wl->mutex);
- if (wlvif->default_key == key_idx)
- goto out_unlock;
+ wl1271_debug(DEBUG_MAC80211, "mac80211 set default key idx %d",
+ key_idx);
+
+ mutex_lock(&wl->mutex);
ret = wl1271_ps_elp_wakeup(wl);
if (ret < 0)

0 comments on commit be67e93

Please sign in to comment.
Something went wrong with that request. Please try again.