Search Linux Wireless

Re: [PATCH 02/10] cfg80211: validate 6 GHz chandef

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

 



On Fri, 2020-04-24 at 15:41 -0700, Rajkumar Manoharan wrote:
> 
> +static inline bool
> +cfg80211_chandef_is_6ghz(const struct cfg80211_chan_def *chandef)
> +{
> +	return (chandef->center_freq1 > 5940 && chandef->center_freq1 < 7105);
> +}

Seems like this

> +++ b/net/wireless/chan.c
> @@ -19,6 +19,29 @@ static bool cfg80211_valid_60g_freq(u32 freq)
>  	return freq >= 58320 && freq <= 70200;
>  }
>  
> +static bool cfg80211_is_6ghz_freq(u32 freq)
> +{
> +	return (freq > 5940 && freq < 7105);
> +}

should use this, by also exposing it, or something.

> +static enum nl80211_chan_width cfg80211_chan_to_bw_6ghz(u8 idx)
> +{
> +	/* channels: 1, 5, 9, 13... */
> +	if ((idx & 0x3) == 0x1)
> +		return NL80211_CHAN_WIDTH_20;
> +	/* channels 3, 11, 19... */
> +	if ((idx & 0x7) == 0x3)
> +		return NL80211_CHAN_WIDTH_40;
> +	/* channels 7, 23, 39.. */
> +	if ((idx & 0xf) == 0x7)
> +		return NL80211_CHAN_WIDTH_80;
> +	/* channels 15, 47, 79...*/
> +	if ((idx & 0x1f) == 0xf)
> +		return NL80211_CHAN_WIDTH_160;
> +
> +	return NL80211_CHAN_WIDTH_20;
> +}

We haven't really done that for anything else - is that really
necessary?

> +static bool cfg80211_6ghz_chandef_valid(const struct cfg80211_chan_def *chandef)
> +{
> +	enum nl80211_chan_width bw;
> +	int chan_idx;
> +
> +	if (!cfg80211_is_6ghz_freq(chandef->center_freq1))
> +		return false;

this is kinda pointless,

> @@ -213,6 +255,10 @@ bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef)
>  	    !cfg80211_edmg_chandef_valid(chandef))
>  		return false;
>  
> +	if (cfg80211_chandef_is_6ghz(chandef) &&
> +	    !cfg80211_6ghz_chandef_valid(chandef))
> +		return false;

You only get there if it was in range ...

Not sure about this whole patch, it seems a bit pointless?

johannes




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

  Powered by Linux