aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/11n_aggr.c
diff options
context:
space:
mode:
authorMarc Yang <yangyang@marvell.com>2011-05-16 19:17:49 -0700
committerJohn W. Linville <linville@tuxdriver.com>2011-05-19 13:53:55 -0400
commitf699254c7126d7df94491dfd4c3648f8ec0c0d51 (patch)
tree8df2829d738771c9915c728ac4a8e1b051fcd7c0 /drivers/net/wireless/mwifiex/11n_aggr.c
parent7176ba23f8b589b1df3229574ff46fb904ce9ec5 (diff)
downloadkernel_samsung_smdk4412-f699254c7126d7df94491dfd4c3648f8ec0c0d51.zip
kernel_samsung_smdk4412-f699254c7126d7df94491dfd4c3648f8ec0c0d51.tar.gz
kernel_samsung_smdk4412-f699254c7126d7df94491dfd4c3648f8ec0c0d51.tar.bz2
mwifiex: reduce CPU usage by tracking tx_pkts_queued
This patch adds tx_pkts_queued to track number of packets being enqueued & dequeued so that mwifiex_wmm_lists_empty() evaluation is lightweight. Signed-off-by: Marc Yang <yangyang@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/11n_aggr.c')
-rw-r--r--drivers/net/wireless/mwifiex/11n_aggr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/11n_aggr.c b/drivers/net/wireless/mwifiex/11n_aggr.c
index d3d5e08..f807447 100644
--- a/drivers/net/wireless/mwifiex/11n_aggr.c
+++ b/drivers/net/wireless/mwifiex/11n_aggr.c
@@ -196,6 +196,8 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
if (skb_src)
pra_list->total_pkts_size -= skb_src->len;
+ atomic_dec(&priv->wmm.tx_pkts_queued);
+
spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
ra_list_flags);
mwifiex_11n_form_amsdu_pkt(skb_aggr, skb_src, &pad);
@@ -257,6 +259,8 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
pra_list->total_pkts_size += skb_aggr->len;
+ atomic_inc(&priv->wmm.tx_pkts_queued);
+
tx_info_aggr->flags |= MWIFIEX_BUF_FLAG_REQUEUED_PKT;
spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
ra_list_flags);