summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/bh.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-06-07 09:12:07 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:19 +0200
commit8baff0cf82469a4ebfabc775b56772dcd0b6fdfc (patch)
tree57fb798f0166d5f77ff5bad61be8f83c1c4a5368 /drivers/staging/cw1200/bh.c
parentf21ed94daa73a203b5c537c18cf8d0ecfd320f5c (diff)
cw1200: throughput optimization and fine-tuning.
* Fixed: Do not allocate a dedicated communication channel (buffer) for WSM command stream, use it for data traffic when needed. * Additional statistics added to DebugFS: counters for TX policy cache misses and unaligned skbs memmove. * Fixed: Strip IV/ICV in the driver to prevent mac80211 layer from double-verification. Change-Id: I600664466d577df4c2bc62ff49fb22f2d3b024cc Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24482 Reviewed-by: Robert MARKLUND <robert.marklund@stericsson.com> Tested-by: Robert MARKLUND <robert.marklund@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/25622 Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/bh.c')
-rw-r--r--drivers/staging/cw1200/bh.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/staging/cw1200/bh.c b/drivers/staging/cw1200/bh.c
index 177274a00d2..d49f9fdf732 100644
--- a/drivers/staging/cw1200/bh.c
+++ b/drivers/staging/cw1200/bh.c
@@ -120,7 +120,7 @@ int wsm_release_tx_buffer(struct cw1200_common *priv, int count)
priv->hw_bufs_used -= count;
if (WARN_ON(priv->hw_bufs_used < 0))
ret = -1;
- else if (hw_bufs_used >= priv->wsm_caps.numInpChBufs - 1)
+ else if (hw_bufs_used >= priv->wsm_caps.numInpChBufs)
ret = 1;
if (!priv->hw_bufs_used)
wake_up_interruptible(&priv->hw_bufs_used_wq);
@@ -363,9 +363,7 @@ tx:
/* HACK! One buffer is reserved for control path */
BUG_ON(priv->hw_bufs_used > priv->wsm_caps.numInpChBufs);
tx_allowed =
- priv->hw_bufs_used + 1 < priv->wsm_caps.numInpChBufs;
- if (unlikely(!tx_allowed && priv->wsm_cmd.ptr))
- tx_allowed = 1;
+ priv->hw_bufs_used < priv->wsm_caps.numInpChBufs;
if (tx && tx_allowed) {
size_t tx_len;