diff options
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index bd7529363193..c80c4490351c 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -150,13 +150,11 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) | |||
150 | 150 | ||
151 | if (test_bit(SCAN_SW_SCANNING, &local->scanning) || | 151 | if (test_bit(SCAN_SW_SCANNING, &local->scanning) || |
152 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) || | 152 | test_bit(SCAN_ONCHANNEL_SCANNING, &local->scanning) || |
153 | test_bit(SCAN_HW_SCANNING, &local->scanning)) | 153 | test_bit(SCAN_HW_SCANNING, &local->scanning) || |
154 | !local->ap_power_level) | ||
154 | power = chan->max_power; | 155 | power = chan->max_power; |
155 | else | 156 | else |
156 | power = local->power_constr_level ? | 157 | power = min(chan->max_power, local->ap_power_level); |
157 | min(chan->max_power, | ||
158 | (chan->max_reg_power - local->power_constr_level)) : | ||
159 | chan->max_power; | ||
160 | 158 | ||
161 | if (local->user_power_level >= 0) | 159 | if (local->user_power_level >= 0) |
162 | power = min(power, local->user_power_level); | 160 | power = min(power, local->user_power_level); |
@@ -366,9 +364,7 @@ static void ieee80211_recalc_smps_work(struct work_struct *work) | |||
366 | struct ieee80211_local *local = | 364 | struct ieee80211_local *local = |
367 | container_of(work, struct ieee80211_local, recalc_smps); | 365 | container_of(work, struct ieee80211_local, recalc_smps); |
368 | 366 | ||
369 | mutex_lock(&local->iflist_mtx); | ||
370 | ieee80211_recalc_smps(local); | 367 | ieee80211_recalc_smps(local); |
371 | mutex_unlock(&local->iflist_mtx); | ||
372 | } | 368 | } |
373 | 369 | ||
374 | #ifdef CONFIG_INET | 370 | #ifdef CONFIG_INET |