summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarty Faltesek <mfaltesek@google.com>2016-04-20 00:19:35 -0400
committerKalle Valo <kvalo@codeaurora.org>2016-04-27 16:49:35 +0300
commitbb28c28ee10559c5bc5b5f48c2d6f6f2f6bd5586 (patch)
treec6dac982a68e809cc5e3969cfa0439db291f2530
parentefd7cef3100b2683ba4ff48943215b9537e9a37c (diff)
downloadlinux-bb28c28ee10559c5bc5b5f48c2d6f6f2f6bd5586.tar.gz
linux-bb28c28ee10559c5bc5b5f48c2d6f6f2f6bd5586.tar.bz2
linux-bb28c28ee10559c5bc5b5f48c2d6f6f2f6bd5586.zip
mwifiex: bridged packets cause wmm_tx_pending counter to go negative
When a packet is queued from the bridge, wmm_tx_pending is not incremented, but when the packet is dequeued the counter is decremented. Signed-off-by: Marty Faltesek <mfaltesek@google.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/marvell/mwifiex/uap_txrx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/marvell/mwifiex/uap_txrx.c b/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
index c95b61dc87c2..666e91af59d7 100644
--- a/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
+++ b/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
@@ -102,6 +102,7 @@ static void mwifiex_uap_queue_bridged_pkt(struct mwifiex_private *priv,
int hdr_chop;
struct ethhdr *p_ethhdr;
struct mwifiex_sta_node *src_node;
+ int index;
uap_rx_pd = (struct uap_rxpd *)(skb->data);
rx_pkt_hdr = (void *)uap_rx_pd + le16_to_cpu(uap_rx_pd->rx_pkt_offset);
@@ -208,6 +209,9 @@ static void mwifiex_uap_queue_bridged_pkt(struct mwifiex_private *priv,
}
__net_timestamp(skb);
+
+ index = mwifiex_1d_to_wmm_queue[skb->priority];
+ atomic_inc(&priv->wmm_tx_pending[index]);
mwifiex_wmm_add_buf_txqueue(priv, skb);
atomic_inc(&adapter->tx_pending);
atomic_inc(&adapter->pending_bridged_pkts);