diff options
Diffstat (limited to 'net/wireless/core.c')
| -rw-r--r-- | net/wireless/core.c | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index 5c3c72df0591..f3cd70757ef2 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -995,6 +995,24 @@ int wiphy_register(struct wiphy *wiphy)  		 wiphy->max_num_akm_suites > CFG80211_MAX_NUM_AKM_SUITES)  		return -EINVAL; +	/* Allocate radio configuration space for multi-radio wiphy */ +	if (wiphy->n_radio > 0) { +		int idx; + +		wiphy->radio_cfg = kcalloc(wiphy->n_radio, +					   sizeof(*wiphy->radio_cfg), +					   GFP_KERNEL); +		if (!wiphy->radio_cfg) +			return -ENOMEM; +		/* +		 * Initialize wiphy radio parameters to IEEE 802.11 +		 * MIB default values. RTS threshold is disabled by +		 * default with the special -1 value. +		 */ +		for (idx = 0; idx < wiphy->n_radio; idx++) +			wiphy->radio_cfg[idx].rts_threshold = (u32)-1; +	} +  	/* check and set up bitrates */  	ieee80211_set_bitrate_flags(wiphy); @@ -1222,6 +1240,7 @@ void cfg80211_dev_free(struct cfg80211_registered_device *rdev)  void wiphy_free(struct wiphy *wiphy)  { +	kfree(wiphy->radio_cfg);  	put_device(&wiphy->dev);  }  EXPORT_SYMBOL(wiphy_free);  | 
