|
@@ -629,6 +629,8 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len,
|
|
|
INIT_WORK(&local->sched_scan_stopped_work,
|
|
|
ieee80211_sched_scan_stopped_work);
|
|
|
|
|
|
+ INIT_WORK(&local->tdls_chsw_work, ieee80211_tdls_chsw_work);
|
|
|
+
|
|
|
spin_lock_init(&local->ack_status_lock);
|
|
|
idr_init(&local->ack_status_frames);
|
|
|
|
|
@@ -645,6 +647,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len,
|
|
|
|
|
|
skb_queue_head_init(&local->skb_queue);
|
|
|
skb_queue_head_init(&local->skb_queue_unreliable);
|
|
|
+ skb_queue_head_init(&local->skb_queue_tdls_chsw);
|
|
|
|
|
|
ieee80211_alloc_led_names(local);
|
|
|
|
|
@@ -1161,6 +1164,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
|
|
|
|
|
|
cancel_work_sync(&local->restart_work);
|
|
|
cancel_work_sync(&local->reconfig_filter);
|
|
|
+ cancel_work_sync(&local->tdls_chsw_work);
|
|
|
flush_work(&local->sched_scan_stopped_work);
|
|
|
|
|
|
ieee80211_clear_tx_pending(local);
|
|
@@ -1171,6 +1175,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
|
|
|
wiphy_warn(local->hw.wiphy, "skb_queue not empty\n");
|
|
|
skb_queue_purge(&local->skb_queue);
|
|
|
skb_queue_purge(&local->skb_queue_unreliable);
|
|
|
+ skb_queue_purge(&local->skb_queue_tdls_chsw);
|
|
|
|
|
|
destroy_workqueue(local->workqueue);
|
|
|
wiphy_unregister(local->hw.wiphy);
|