diff options
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 5de1ca3f17b9..171e8ff8e028 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -577,6 +577,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
577 | struct sta_info *sta, | 577 | struct sta_info *sta, |
578 | struct station_parameters *params) | 578 | struct station_parameters *params) |
579 | { | 579 | { |
580 | unsigned long flags; | ||
580 | u32 rates; | 581 | u32 rates; |
581 | int i, j; | 582 | int i, j; |
582 | struct ieee80211_supported_band *sband; | 583 | struct ieee80211_supported_band *sband; |
@@ -585,7 +586,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
585 | 586 | ||
586 | sband = local->hw.wiphy->bands[local->oper_channel->band]; | 587 | sband = local->hw.wiphy->bands[local->oper_channel->band]; |
587 | 588 | ||
588 | spin_lock_bh(&sta->lock); | 589 | spin_lock_irqsave(&sta->flaglock, flags); |
589 | mask = params->sta_flags_mask; | 590 | mask = params->sta_flags_mask; |
590 | set = params->sta_flags_set; | 591 | set = params->sta_flags_set; |
591 | 592 | ||
@@ -612,7 +613,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
612 | if (set & BIT(NL80211_STA_FLAG_MFP)) | 613 | if (set & BIT(NL80211_STA_FLAG_MFP)) |
613 | sta->flags |= WLAN_STA_MFP; | 614 | sta->flags |= WLAN_STA_MFP; |
614 | } | 615 | } |
615 | spin_unlock_bh(&sta->lock); | 616 | spin_unlock_irqrestore(&sta->flaglock, flags); |
616 | 617 | ||
617 | /* | 618 | /* |
618 | * cfg80211 validates this (1-2007) and allows setting the AID | 619 | * cfg80211 validates this (1-2007) and allows setting the AID |