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 29ac8e1a509e..2095602dcc3a 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -634,6 +634,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
634 | struct sta_info *sta, | 634 | struct sta_info *sta, |
635 | struct station_parameters *params) | 635 | struct station_parameters *params) |
636 | { | 636 | { |
637 | unsigned long flags; | ||
637 | u32 rates; | 638 | u32 rates; |
638 | int i, j; | 639 | int i, j; |
639 | struct ieee80211_supported_band *sband; | 640 | struct ieee80211_supported_band *sband; |
@@ -642,7 +643,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
642 | 643 | ||
643 | sband = local->hw.wiphy->bands[local->oper_channel->band]; | 644 | sband = local->hw.wiphy->bands[local->oper_channel->band]; |
644 | 645 | ||
645 | spin_lock_bh(&sta->lock); | 646 | spin_lock_irqsave(&sta->flaglock, flags); |
646 | mask = params->sta_flags_mask; | 647 | mask = params->sta_flags_mask; |
647 | set = params->sta_flags_set; | 648 | set = params->sta_flags_set; |
648 | 649 | ||
@@ -669,7 +670,7 @@ static void sta_apply_parameters(struct ieee80211_local *local, | |||
669 | if (set & BIT(NL80211_STA_FLAG_MFP)) | 670 | if (set & BIT(NL80211_STA_FLAG_MFP)) |
670 | sta->flags |= WLAN_STA_MFP; | 671 | sta->flags |= WLAN_STA_MFP; |
671 | } | 672 | } |
672 | spin_unlock_bh(&sta->lock); | 673 | spin_unlock_irqrestore(&sta->flaglock, flags); |
673 | 674 | ||
674 | /* | 675 | /* |
675 | * cfg80211 validates this (1-2007) and allows setting the AID | 676 | * cfg80211 validates this (1-2007) and allows setting the AID |