From: Dedy Lansky <dlan...@codeaurora.org>

Upon status ring handling, in case there are both unicast and
multicast (cid == max) status messages to handle, wrong sta statistics
might get updated.
Fix this by setting stats to NULL upon invalid cid
(e.g. == max_assoc_sta).

Signed-off-by: Dedy Lansky <dlan...@codeaurora.org>
Signed-off-by: Maya Erez <me...@codeaurora.org>
---
 drivers/net/wireless/ath/wil6210/txrx_edma.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/txrx_edma.c 
b/drivers/net/wireless/ath/wil6210/txrx_edma.c
index ac03526..abcf6dd 100644
--- a/drivers/net/wireless/ath/wil6210/txrx_edma.c
+++ b/drivers/net/wireless/ath/wil6210/txrx_edma.c
@@ -1137,7 +1137,7 @@ int wil_tx_sring_handler(struct wil6210_priv *wil,
        /* Total number of completed descriptors in all descriptor rings */
        int desc_cnt = 0;
        int cid;
-       struct wil_net_stats *stats = NULL;
+       struct wil_net_stats *stats;
        struct wil_tx_enhanced_desc *_d;
        unsigned int ring_id;
        unsigned int num_descs;
@@ -1187,8 +1187,8 @@ int wil_tx_sring_handler(struct wil6210_priv *wil,
                ndev = vif_to_ndev(vif);
 
                cid = wil->ring2cid_tid[ring_id][0];
-               if (cid < wil->config.max_assoc_sta)
-                       stats = &wil->sta[cid].stats;
+               stats = (cid < wil->config.max_assoc_sta ?
+                       &wil->sta[cid].stats : NULL);
 
                wil_dbg_txrx(wil,
                             "tx_status: completed desc_ring (%d), num_descs 
(%d)\n",
-- 
1.9.1

Reply via email to