diff options
-rw-r--r-- | net/mac80211/ibss.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index e97fa7fac96e..a6ca56dfe0d7 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -753,12 +753,16 @@ static void ieee80211_csa_connection_drop_work(struct work_struct *work) | |||
753 | container_of(work, struct ieee80211_sub_if_data, | 753 | container_of(work, struct ieee80211_sub_if_data, |
754 | u.ibss.csa_connection_drop_work); | 754 | u.ibss.csa_connection_drop_work); |
755 | 755 | ||
756 | sdata_lock(sdata); | ||
757 | |||
756 | ieee80211_ibss_disconnect(sdata); | 758 | ieee80211_ibss_disconnect(sdata); |
757 | synchronize_rcu(); | 759 | synchronize_rcu(); |
758 | skb_queue_purge(&sdata->skb_queue); | 760 | skb_queue_purge(&sdata->skb_queue); |
759 | 761 | ||
760 | /* trigger a scan to find another IBSS network to join */ | 762 | /* trigger a scan to find another IBSS network to join */ |
761 | ieee80211_queue_work(&sdata->local->hw, &sdata->work); | 763 | ieee80211_queue_work(&sdata->local->hw, &sdata->work); |
764 | |||
765 | sdata_unlock(sdata); | ||
762 | } | 766 | } |
763 | 767 | ||
764 | static void ieee80211_ibss_csa_mark_radar(struct ieee80211_sub_if_data *sdata) | 768 | static void ieee80211_ibss_csa_mark_radar(struct ieee80211_sub_if_data *sdata) |