diff options
Diffstat (limited to 'net/mac80211/main.c')
| -rw-r--r-- | net/mac80211/main.c | 25 | 
1 files changed, 23 insertions, 2 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 38b3468bc51..f9747689d60 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -501,6 +501,11 @@ static const struct ieee80211_ht_cap mac80211_ht_capa_mod_mask = {  	},  }; +static const u8 extended_capabilities[] = { +	0, 0, 0, 0, 0, 0, 0, +	WLAN_EXT_CAPA8_OPMODE_NOTIF, +}; +  struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,  					const struct ieee80211_ops *ops)  { @@ -557,14 +562,17 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,  			WIPHY_FLAG_REPORTS_OBSS |  			WIPHY_FLAG_OFFCHAN_TX; +	wiphy->extended_capabilities = extended_capabilities; +	wiphy->extended_capabilities_mask = extended_capabilities; +	wiphy->extended_capabilities_len = ARRAY_SIZE(extended_capabilities); +  	if (ops->remain_on_channel)  		wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;  	wiphy->features |= NL80211_FEATURE_SK_TX_STATUS |  			   NL80211_FEATURE_SAE |  			   NL80211_FEATURE_HT_IBSS | -			   NL80211_FEATURE_VIF_TXPOWER | -			   NL80211_FEATURE_FULL_AP_CLIENT_STATE; +			   NL80211_FEATURE_VIF_TXPOWER;  	if (!ops->hw_scan)  		wiphy->features |= NL80211_FEATURE_LOW_PRIORITY_SCAN | @@ -621,6 +629,9 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,  	INIT_WORK(&local->restart_work, ieee80211_restart_work); +	INIT_WORK(&local->radar_detected_work, +		  ieee80211_dfs_radar_detected_work); +  	INIT_WORK(&local->reconfig_filter, ieee80211_reconfig_filter);  	local->smps_mode = IEEE80211_SMPS_OFF; @@ -713,6 +724,16 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)  		 */  		if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_WDS))  			return -EINVAL; + +		/* DFS currently not supported with channel context drivers */ +		for (i = 0; i < local->hw.wiphy->n_iface_combinations; i++) { +			const struct ieee80211_iface_combination *comb; + +			comb = &local->hw.wiphy->iface_combinations[i]; + +			if (comb->radar_detect_widths) +				return -EINVAL; +		}  	}  	/* Only HW csum features are currently compatible with mac80211 */  |