summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdrivers/staging/cw1200/ap.c4
-rw-r--r--drivers/staging/cw1200/sta.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c
index 362a5560116..6fe254802c0 100755
--- a/drivers/staging/cw1200/ap.c
+++ b/drivers/staging/cw1200/ap.c
@@ -76,7 +76,9 @@ int cw1200_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
reset.link_id = sta_priv->link_id;
priv->link_id_map &= ~BIT(sta_priv->link_id);
sta_priv->link_id = 0;
+ wsm_lock_tx(priv);
WARN_ON(wsm_reset(priv, &reset));
+ wsm_unlock_tx(priv);
}
return 0;
}
@@ -676,10 +678,12 @@ static int cw1200_update_beaconing(struct cw1200_common *priv)
if (priv->join_status != CW1200_JOIN_STATUS_AP ||
priv->beacon_int != conf->beacon_int) {
ap_printk(KERN_DEBUG "ap restarting\n");
+ wsm_lock_tx(priv);
if (priv->join_status != CW1200_JOIN_STATUS_PASSIVE)
WARN_ON(wsm_reset(priv, &reset));
priv->join_status = CW1200_JOIN_STATUS_PASSIVE;
WARN_ON(cw1200_start_ap(priv));
+ wsm_unlock_tx(priv);
} else
ap_printk(KERN_DEBUG "ap started join_status: %d\n",
priv->join_status);
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index d6a25a27358..c1cedf6db52 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -230,11 +230,13 @@ void cw1200_remove_interface(struct ieee80211_hw *dev,
priv->mode = NL80211_IFTYPE_MONITOR;
memset(priv->mac_addr, 0, ETH_ALEN);
memset(priv->bssid, 0, ETH_ALEN);
+ wsm_lock_tx(priv);
WARN_ON(wsm_reset(priv, &reset));
cw1200_free_keys(priv);
cw1200_setup_mac(priv);
priv->listening = false;
priv->join_status = CW1200_JOIN_STATUS_PASSIVE;
+ wsm_unlock_tx(priv);
mutex_unlock(&priv->conf_mutex);
}
@@ -489,7 +491,9 @@ void cw1200_configure_filter(struct ieee80211_hw *dev,
FIF_PROBE_REQ)) ? 1 : 0;
if (priv->listening ^ listening) {
priv->listening = listening;
+ wsm_lock_tx(priv);
cw1200_update_listening(priv, listening);
+ wsm_unlock_tx(priv);
}
cw1200_update_filtering(priv);
mutex_unlock(&priv->conf_mutex);