2016-03-04 15:29:36

by Kalle Valo

[permalink] [raw]
Subject: Re: pull-request: wireless-drivers 2016-02-18

(Adding Larry)

Geert Uytterhoeven <[email protected]> writes:

> On Thu, Feb 18, 2016 at 4:28 PM, Kalle Valo <[email protected]> wrote:
>
>> rtlwifi
>>
>> * fix broken VHT (802.11ac) support, reported by Linus
>
> That's commit d76d65fd26951498144029c24852c4d54ee512d9
>
> drivers/net/wireless/realtek/rtlwifi/rc.c: In function
> ‘_rtl_rc_rate_set_series’:
> drivers/net/wireless/realtek/rtlwifi/rc.c:144: warning: comparison is
> always false due to limited range of data type
>
> if (sta && sta->vht_cap.vht_supported &&
> (wireless_mode == WIRELESS_MODE_AC_5G ||
> wireless_mode == WIRELESS_MODE_AC_24G ||
> wireless_mode == WIRELESS_MODE_AC_ONLY))
> rate->flags |= IEEE80211_TX_RC_VHT_MCS;
>
> u8 wireless_mode = 0;
>
> enum wireless_mode {
> ...
> WIRELESS_MODE_AC_ONLY = 0x100,
>
> How is that supposed to work?

I have no idea what could be the difference, for example, between AC_5G
and AC_ONLY. Maybe AC_ONLY mode is not really used in normal setups and
that's why the bug doesn't break anything? Larry, do you know?

Anyway, Larry has a patch for this but I'm planning to send it to 4.6 as
I didn't think it as that urgent:

rtlwifi: Fix size of wireless mode variable

https://patchwork.kernel.org/patch/8425191/

--
Kalle Valo


2016-03-04 17:14:15

by Larry Finger

[permalink] [raw]
Subject: Re: pull-request: wireless-drivers 2016-02-18

On 03/04/2016 09:29 AM, Kalle Valo wrote:
> (Adding Larry)
>
> Geert Uytterhoeven <[email protected]> writes:
>
>> On Thu, Feb 18, 2016 at 4:28 PM, Kalle Valo <[email protected]> wrote:
>>
>>> rtlwifi
>>>
>>> * fix broken VHT (802.11ac) support, reported by Linus
>>
>> That's commit d76d65fd26951498144029c24852c4d54ee512d9
>>
>> drivers/net/wireless/realtek/rtlwifi/rc.c: In function
>> ‘_rtl_rc_rate_set_series’:
>> drivers/net/wireless/realtek/rtlwifi/rc.c:144: warning: comparison is
>> always false due to limited range of data type
>>
>> if (sta && sta->vht_cap.vht_supported &&
>> (wireless_mode == WIRELESS_MODE_AC_5G ||
>> wireless_mode == WIRELESS_MODE_AC_24G ||
>> wireless_mode == WIRELESS_MODE_AC_ONLY))
>> rate->flags |= IEEE80211_TX_RC_VHT_MCS;
>>
>> u8 wireless_mode = 0;
>>
>> enum wireless_mode {
>> ...
>> WIRELESS_MODE_AC_ONLY = 0x100,
>>
>> How is that supposed to work?
>
> I have no idea what could be the difference, for example, between AC_5G
> and AC_ONLY. Maybe AC_ONLY mode is not really used in normal setups and
> that's why the bug doesn't break anything? Larry, do you know?
>
> Anyway, Larry has a patch for this but I'm planning to send it to 4.6 as
> I didn't think it as that urgent:
>
> rtlwifi: Fix size of wireless mode variable
>
> https://patchwork.kernel.org/patch/8425191/

That WIRELESS_MODE_AC_ONLY mode is part of a recent commit to a repo that
Realtek and I use as a place for their most recent changes. As I do not have,
nor want, an NDA with them, I could only speculate about their reasons for such
a mode. I included it because I was touching that portion of the code.
Unfortunately, I did not catch the associated change in the variable size.

Saving the second patch for 4.6 is the correct action.

Larry