Search Linux Wireless

Re: [PATCH 1/2] wireless: set correct mandatory rate flags

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

 



On 01/30/2018 08:43 AM, Johannes Berg wrote:
> On Fri, 2018-01-26 at 23:17 +0100, Matthias Schiffer wrote:
>>
>> I propose to revert this for now (I assume it's too late for 4.15, but
>> hopefully the regression can be fixed in 4.15.1).
> 
> I really don't think we should revert this, it fixes a real bug.
> 
> We can easily switch the default though, would something like this
> help?

Working perfectly.

Tested-by: Matthias Schiffer <mschiffer@xxxxxxxxxxxxxxxxxxxx>


> 
> diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
> index 51aa55618ef7..b12da6ef3c12 100644
> --- a/net/wireless/mesh.c
> +++ b/net/wireless/mesh.c
> @@ -170,9 +170,28 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
>  		enum nl80211_bss_scan_width scan_width;
>  		struct ieee80211_supported_band *sband =
>  				rdev->wiphy.bands[setup->chandef.chan->band];
> -		scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
> -		setup->basic_rates = ieee80211_mandatory_rates(sband,
> -							       scan_width);
> +
> +		if (setup->chandef.chan->band == NL80211_BAND_2GHZ) {
> +			int i;
> +
> +			/*
> +			 * Older versions selected the mandatory rates for
> +			 * 2.4 GHz as well, but were broken in that only
> +			 * 1 Mbps was regarded as a mandatory rate. Keep
> +			 * using just 1 Mbps as the default basic rate for
> +			 * mesh to be interoperable with older versions.
> +			 */
> +			for (i = 0; i < sband->n_bitrates; i++) {
> +				if (sband->bitrates[i].bitrate == 10) {
> +					setup->basic_rates = BIT(i);
> +					break;
> +				}
> +			}
> +		} else {
> +			scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
> +			setup->basic_rates = ieee80211_mandatory_rates(sband,
> +								       scan_width);
> +		}
>  	}
>  
>  	err = cfg80211_chandef_dfs_required(&rdev->wiphy,
> 
> johannes
> 


Attachment: signature.asc
Description: OpenPGP digital signature


[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