Skip to content

Commit

Permalink
mac80211: use station mutex in configuration
Browse files Browse the repository at this point in the history
There's no need to use RCU here, we can just lock
the station mutex instead. This allows the code
to sleep, which is necessary for later patches.

Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
  • Loading branch information
jmberg-intel authored and linvjw committed Dec 15, 2011
1 parent 92b62f2 commit 87be1e1
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions net/mac80211/cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -954,19 +954,19 @@ static int ieee80211_change_station(struct wiphy *wiphy,
struct sta_info *sta;
struct ieee80211_sub_if_data *vlansdata;

rcu_read_lock();
mutex_lock(&local->sta_mtx);

sta = sta_info_get_bss(sdata, mac);
if (!sta) {
rcu_read_unlock();
mutex_unlock(&local->sta_mtx);
return -ENOENT;
}

/* in station mode, supported rates are only valid with TDLS */
if (sdata->vif.type == NL80211_IFTYPE_STATION &&
params->supported_rates &&
!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) {
rcu_read_unlock();
mutex_unlock(&local->sta_mtx);
return -EINVAL;
}

Expand All @@ -975,13 +975,13 @@ static int ieee80211_change_station(struct wiphy *wiphy,

if (vlansdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
vlansdata->vif.type != NL80211_IFTYPE_AP) {
rcu_read_unlock();
mutex_unlock(&local->sta_mtx);
return -EINVAL;
}

if (params->vlan->ieee80211_ptr->use_4addr) {
if (vlansdata->u.vlan.sta) {
rcu_read_unlock();
mutex_unlock(&local->sta_mtx);
return -EBUSY;
}

Expand All @@ -997,7 +997,7 @@ static int ieee80211_change_station(struct wiphy *wiphy,
if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && params->supported_rates)
rate_control_rate_init(sta);

rcu_read_unlock();
mutex_unlock(&local->sta_mtx);

if (sdata->vif.type == NL80211_IFTYPE_STATION &&
params->sta_flags_mask & BIT(NL80211_STA_FLAG_AUTHORIZED))
Expand Down

0 comments on commit 87be1e1

Please sign in to comment.