[PATCH 34/99] cw1200: Fix for unbalanced tx_lock/unlock in TX policy uploading
Dmitry Tarnyagin
dmitry.tarnyagin at stericsson.com
Wed Feb 29 14:14:41 UTC 2012
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 at stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/38058
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski at tieto.com>
Tested-by: Bartosz MARKOWSKI <bartosz.markowski at tieto.com>
---
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 a754f6a..d868e7b 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;
}
--
1.7.8.3
More information about the kernel
mailing list