diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2012-02-29 15:14:41 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:41 +0200 |
commit | 12f4378b06d2532e46445c501e9fb99e4f9e5b82 (patch) | |
tree | 2ea94aaf652d31c096f8c07ed45dfc0a6bc71b88 | |
parent | d5b4e118d8a74faa340db6d2d0585234778399d9 (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.c | 6 |
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; } |