summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2012-02-29 15:15:42 +0100
committerPhilippe Langlais <philippe.langlais@linaro.org>2012-03-19 09:02:12 +0100
commit350045034fc46eebd182735f75be2371aca8f5a3 (patch)
treedeab5f2667027e448f52ffa05b07a6d54d0f1fb9 /drivers/staging/cw1200
parenta7da5cfafc077e822781613f488178615fae9864 (diff)
cw1200: Fix for false negatives in suspend decision.
There was a race between PM and BH code which sometimes leaded to false negatives in system suspend decision. This race is fixed by this patch. ST-Ericsoon ID: 419543 Change-ID: I607a37c1046ea9737b625da65e04be0f42901aaa Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50440 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Diffstat (limited to 'drivers/staging/cw1200')
-rw-r--r--drivers/staging/cw1200/pm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/pm.c b/drivers/staging/cw1200/pm.c
index f542e7d51f6..d95e5d3dc9e 100644
--- a/drivers/staging/cw1200/pm.c
+++ b/drivers/staging/cw1200/pm.c
@@ -297,7 +297,11 @@ int cw1200_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
/* Lock TX. */
wsm_lock_tx_async(priv);
- if (priv->hw_bufs_used)
+
+ /* Wait to avoid possible race with bh code.
+ * But do not wait too long... */
+ if (wait_event_timeout(priv->bh_evt_wq,
+ !priv->hw_bufs_used, HZ / 10) <= 0)
goto revert2;
/* Set UDP filter */