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

Eugene Krasnikov k.eugene.e at gmail.com
Mon Feb 3 06:21:29 EST 2014


 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