Search Linux Wireless

Re: [PATCH v3 7/7] cfg80211/mac80211: move combination check to mac80211 for ibss

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2014-02-20 at 16:36 +0200, Luciano Coelho wrote:
> From: Luciano Coelho <luciano.coelho@xxxxxxxxx>
> 
> Now that mac80211 can check the interface combinations itself, move
> the combinations check from cfg80211 to mac80211 when joining an IBSS.

> +++ b/net/mac80211/ibss.c
> @@ -1646,7 +1646,31 @@ int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,
>  	u32 changed = 0;
>  	u32 rate_flags;
>  	struct ieee80211_supported_band *sband;
> +	enum ieee80211_chanctx_mode chanmode;
> +	struct ieee80211_local *local = sdata->local;
> +	int radar_detect_width;
>  	int i;
> +	int ret;
> +
> +	radar_detect_width = cfg80211_chandef_dfs_required(local->hw.wiphy,
> +							   &params->chandef,
> +							   sdata->vif.type);
> +	if (radar_detect_width < 0)
> +		return radar_detect_width;
> +
> +	if (radar_detect_width > 0 && !params->userspace_handles_dfs)
> +		return -EINVAL;
> +
> +	chanmode = (params->channel_fixed && !radar_detect_width) ?
> +		IEEE80211_CHANCTX_SHARED : IEEE80211_CHANCTX_EXCLUSIVE;
> +
> +	mutex_lock(&local->chanctx_mtx);
> +	ret = ieee80211_check_combinations(local->hw.wiphy, &sdata->wdev,
> +					   &params->chandef, chanmode,
> +					   radar_detect_width);
> +	mutex_unlock(&local->chanctx_mtx);
> +	if (ret < 0)
> +		return ret;

Hm, that's a lot of new code just for IBSS. Is there anything that could
be shared with other pieces of mac80211?

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux