diff options
Diffstat (limited to 'net/wireless/core.c')
| -rw-r--r-- | net/wireless/core.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index eb297e1015e0..3a54c8e6b6c6 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -545,6 +545,10 @@ use_default_name:  	INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work);  	INIT_WORK(&rdev->conn_work, cfg80211_conn_work);  	INIT_WORK(&rdev->event_work, cfg80211_event_work); +	INIT_WORK(&rdev->background_cac_abort_wk, +		  cfg80211_background_cac_abort_wk); +	INIT_DELAYED_WORK(&rdev->background_cac_done_wk, +			  cfg80211_background_cac_done_wk);  	init_waitqueue_head(&rdev->dev_wait); @@ -733,6 +737,7 @@ int wiphy_register(struct wiphy *wiphy)  	if (wiphy->interface_modes & ~(BIT(NL80211_IFTYPE_STATION) |  				       BIT(NL80211_IFTYPE_P2P_CLIENT) |  				       BIT(NL80211_IFTYPE_AP) | +				       BIT(NL80211_IFTYPE_MESH_POINT) |  				       BIT(NL80211_IFTYPE_P2P_GO) |  				       BIT(NL80211_IFTYPE_ADHOC) |  				       BIT(NL80211_IFTYPE_P2P_DEVICE) | @@ -1054,11 +1059,13 @@ void wiphy_unregister(struct wiphy *wiphy)  	cancel_work_sync(&rdev->conn_work);  	flush_work(&rdev->event_work);  	cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); +	cancel_delayed_work_sync(&rdev->background_cac_done_wk);  	flush_work(&rdev->destroy_work);  	flush_work(&rdev->sched_scan_stop_wk);  	flush_work(&rdev->propagate_radar_detect_wk);  	flush_work(&rdev->propagate_cac_done_wk);  	flush_work(&rdev->mgmt_registrations_update_wk); +	flush_work(&rdev->background_cac_abort_wk);  #ifdef CONFIG_PM  	if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup) @@ -1207,6 +1214,8 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev,  	cfg80211_pmsr_wdev_down(wdev); +	cfg80211_stop_background_radar_detection(wdev); +  	switch (wdev->iftype) {  	case NL80211_IFTYPE_ADHOC:  		__cfg80211_leave_ibss(rdev, dev, true);  |