[PATCH 2/3] wcn36xx: Track dpu signature per sta

Eugene Krasnikov k.eugene.e at gmail.com
Wed Feb 5 05:19:01 EST 2014


Hi Pontus,

Changes looks good to me. One minor thing that i would really
appreciate if you can update documentation in the code to the "struct
wcn36xx_sta" over here
https://github.com/KrasnikovEugene/wcn36xx/blob/master/wcn36xx.h#L136



2014-02-03 Pontus Fuchs <pontus.fuchs at gmail.com>:
> Hi,
>
> This bug is very visible. Maybe it was triggered by a newer wcnss FW than
> you tested on? I tested on both 3660 and 3680. Both with recent FW versions.
>
> //Pontus
>
>
>
> On 2014-02-03 12:21, Eugene Krasnikov wrote:
>>
>>   I thought softap was working properly, but probably there are still
>> bugs somewhere there. Usually this kind of changes are difficult to
>> debug so i hope you tested this patch properly.
>>
>> 2014-02-03 Pontus Fuchs <pontus.fuchs at gmail.com>:
>>>
>>> This fixes problems seen with multiple softap clients and reconnecting
>>> softap clients.
>>>
>>> Signed-off-by: Pontus Fuchs <pontus.fuchs at gmail.com>
>>> ---
>>>   smd.c     | 5 +++--
>>>   txrx.c    | 4 ++--
>>>   wcn36xx.h | 1 +
>>>   3 files changed, 6 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/smd.c b/smd.c
>>> index b6ca869..1096b6e 100644
>>> --- a/smd.c
>>> +++ b/smd.c
>>> @@ -903,11 +903,12 @@ static int wcn36xx_smd_config_sta_rsp(struct
>>> wcn36xx *wcn,
>>>
>>>          sta_priv->sta_index = params->sta_index;
>>>          sta_priv->dpu_desc_index = params->dpu_index;
>>> +       sta_priv->ucast_dpu_sign = params->uc_ucast_sig;
>>>
>>>          wcn36xx_dbg(WCN36XX_DBG_HAL,
>>> -                   "hal config sta rsp status %d sta_index %d
>>> bssid_index %d p2p %d\n",
>>> +                   "hal config sta rsp status %d sta_index %d
>>> bssid_index %d uc_ucast_sig %d p2p %d\n",
>>>                      params->status, params->sta_index,
>>> params->bssid_index,
>>> -                   params->p2p);
>>> +                   params->uc_ucast_sig, params->p2p);
>>>
>>>          return 0;
>>>   }
>>> diff --git a/txrx.c b/txrx.c
>>> index c6e16b7..4e0a0a8 100644
>>> --- a/txrx.c
>>> +++ b/txrx.c
>>> @@ -133,6 +133,7 @@ static void wcn36xx_set_tx_data(struct wcn36xx_tx_bd
>>> *bd,
>>>                                     struct ieee80211_vif,
>>>                                     drv_priv);
>>>
>>> +               bd->dpu_sign = sta_priv->ucast_dpu_sign;
>>>                  if (vif->type == NL80211_IFTYPE_STATION) {
>>>                          bd->sta_index = sta_priv->bss_sta_index;
>>>                          bd->dpu_desc_idx = sta_priv->bss_dpu_desc_index;
>>> @@ -146,10 +147,9 @@ static void wcn36xx_set_tx_data(struct wcn36xx_tx_bd
>>> *bd,
>>>                  __vif_priv = get_vif_by_addr(wcn, hdr->addr2);
>>>                  bd->sta_index = __vif_priv->self_sta_index;
>>>                  bd->dpu_desc_idx = __vif_priv->self_dpu_desc_index;
>>> +               bd->dpu_sign = __vif_priv->self_ucast_dpu_sign;
>>>          }
>>>
>>> -       bd->dpu_sign = __vif_priv->self_ucast_dpu_sign;
>>> -
>>>          if (ieee80211_is_nullfunc(hdr->frame_control) ||
>>>             (sta_priv && !sta_priv->is_data_encrypted))
>>>                  bd->dpu_ne = 1;
>>> diff --git a/wcn36xx.h b/wcn36xx.h
>>> index 782a1e4..4c81f43 100644
>>> --- a/wcn36xx.h
>>> +++ b/wcn36xx.h
>>> @@ -160,6 +160,7 @@ struct wcn36xx_sta {
>>>          u16 tid;
>>>          u8 sta_index;
>>>          u8 dpu_desc_index;
>>> +       u8 ucast_dpu_sign;
>>>          u8 bss_sta_index;
>>>          u8 bss_dpu_desc_index;
>>>          bool is_data_encrypted;
>>> --
>>> 1.8.3.2
>>>
>>>
>>> _______________________________________________
>>> wcn36xx mailing list
>>> wcn36xx at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/wcn36xx
>>
>>
>>
>>
>



-- 
Best regards,
Eugene



More information about the wcn36xx mailing list