diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2012-02-29 15:14:41 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@linaro.org> | 2012-03-19 09:02:03 +0100 |
commit | 01d2abde046c780fa720b9786d5a70e0c73e3b3a (patch) | |
tree | 471cb5d0fc9ccf3bf896d215061f9f9cfc1178b2 | |
parent | 1081985981aaf269383e2815d94fa6f8c1c1e821 (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; } |