ath10k bug in station mode with regard to TX-BEAMFORMER?

Ben Greear greearb at candelatech.com
Thu Mar 2 13:26:06 PST 2017


On 03/01/2017 05:43 PM, Sebastian Gottschall wrote:
> Am 02.03.2017 um 01:56 schrieb Ben Greear:
>> I have a user with an AP that advertises itself as a MU-BEAMFORMEE (and not MU-BEAMFORMER).
>> My station firmware on 9984 is crashing because it tries to set up MU-MIMO tx logic as
>> best as I can figure.
>>
>> Does the patch below look like a good idea?
>>
>> If so, I'll do it up official.  Unfortunately, I don't have a good way to
>> test this locally, so this is just based on my vague understanding of this
>> feature...
> i dont know if your patch makes sense, its just looking logic (i handle this with vht_capa in wpa supplicant right now)
> i also know the crash from older firmwares. with more recent official firmwares it does not occur anymore. or lets i havent seen
> this issue for a while

Did you patch supplicant?  If so, can you point me to the change(s) you made?

Thanks,
Ben

>>
>> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
>> index 219daaee..5aefc8a 100644
>> --- a/drivers/net/wireless/ath/ath10k/mac.c
>> +++ b/drivers/net/wireless/ath/ath10k/mac.c
>> @@ -5372,6 +5372,7 @@ static int ath10k_mac_set_txbf_conf(struct ath10k_vif *arvif)
>>  {
>>         u32 value = 0;
>>         struct ath10k *ar = arvif->ar;
>> +       struct ieee80211_vif *vif = arvif->vif;
>>         int nsts;
>>         int sound_dim;
>>
>> @@ -5391,17 +5392,21 @@ static int ath10k_mac_set_txbf_conf(struct ath10k_vif *arvif)
>>         if (!value)
>>                 return 0;
>>
>> -       if (ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE)
>> +       if ((ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE) &&
>> +           (vif->type != NL80211_IFTYPE_STATION))
>>                 value |= WMI_VDEV_PARAM_TXBF_SU_TX_BFER;
>>
>> -       if (ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)
>> +       if ((ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE) &&
>> +           (vif->type != NL80211_IFTYPE_STATION))
>>                 value |= (WMI_VDEV_PARAM_TXBF_MU_TX_BFER |
>>                           WMI_VDEV_PARAM_TXBF_SU_TX_BFER);
>>
>> -       if (ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE)
>> +       if ((ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE) &&
>> +           (vif->type == NL80211_IFTYPE_STATION))
>>                 value |= WMI_VDEV_PARAM_TXBF_SU_TX_BFEE;
>>
>> -       if (ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)
>> +       if ((ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE) &&
>> +               (vif->type == NL80211_IFTYPE_STATION))
>>                 value |= (WMI_VDEV_PARAM_TXBF_MU_TX_BFEE |
>>                           WMI_VDEV_PARAM_TXBF_SU_TX_BFEE);
>>
>>
>> Thanks,
>> Ben
>>
>
>


-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com




More information about the ath10k mailing list