summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2012-02-29 15:14:41 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:41 +0200
commit12f4378b06d2532e46445c501e9fb99e4f9e5b82 (patch)
tree2ea94aaf652d31c096f8c07ed45dfc0a6bc71b88
parentd5b4e118d8a74faa340db6d2d0585234778399d9 (diff)
cw1200: Fix for unbalanced tx_lock/unlock in TX policy uploading
Return code for queue_work was not checked, leading to leaking lock. ST-Ericsson ID: 355166 Change-Id: I60da9c112be5765b5dd0e9a6d8d4fc4dded26534 Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/38058 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
-rw-r--r--drivers/staging/cw1200/txrx.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/txrx.c b/drivers/staging/cw1200/txrx.c
index a754f6a53cd..d868e7bc9af 100644
--- a/drivers/staging/cw1200/txrx.c
+++ b/drivers/staging/cw1200/txrx.c
@@ -671,7 +671,11 @@ cw1200_tx_h_rate_policy(struct cw1200_common *priv,
/* Definetly better. TODO. */
wsm_lock_tx_async(priv);
cw1200_tx_queues_lock(priv);
- queue_work(priv->workqueue, &priv->tx_policy_upload_work);
+ if (queue_work(priv->workqueue,
+ &priv->tx_policy_upload_work) <= 0) {
+ cw1200_tx_queues_unlock(priv);
+ wsm_unlock_tx(priv);
+ }
}
return 0;
}