Search Linux Wireless

Re: [PATCH] mac80211: fix rate mask reset

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

 



On 12/02/2021 10:22, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@xxxxxxxxx>
> 
> Coverity reported the strange "if (~...)" condition that's
> always true. It suggested that ! was intended instead of ~,
> but upon further analysis I'm convinced that what really was
> intended was a comparison to 0xff/0xffff (in HT/VHT cases
> respectively), since this indicates that all of the rates
> are enabled.
> 
> Change the comparison accordingly.
> 
> I'm guessing this never really mattered because a reset to
> not having a rate mask is basically equivalent to having a
> mask that enables all rates.
> 
> Reported-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> Fixes: 2ffbe6d33366 ("mac80211: fix and optimize MCS mask handling")
> Fixes: b119ad6e726c ("mac80211: add rate mask logic for vht rates")
> Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
> ---
>  net/mac80211/cfg.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
> index c4c70e30ad7f..68a0de02b561 100644
> --- a/net/mac80211/cfg.c
> +++ b/net/mac80211/cfg.c
> @@ -2950,14 +2950,14 @@ static int ieee80211_set_bitrate_mask(struct wiphy *wiphy,
>  			continue;
>  
>  		for (j = 0; j < IEEE80211_HT_MCS_MASK_LEN; j++) {
> -			if (~sdata->rc_rateidx_mcs_mask[i][j]) {
> +			if (sdata->rc_rateidx_mcs_mask[i][j] != 0xff) {
>  				sdata->rc_has_mcs_mask[i] = true;
>  				break;
>  			}
>  		}
>  
>  		for (j = 0; j < NL80211_VHT_NSS_MAX; j++) {
> -			if (~sdata->rc_rateidx_vht_mcs_mask[i][j]) {
> +			if (sdata->rc_rateidx_vht_mcs_mask[i][j] != 0xffff) {
>  				sdata->rc_has_vht_mcs_mask[i] = true;
>  				break;
>  			}
> 

Looks good to me, thanks Johannes.

Reviewed-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>



[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