summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-09-22 13:03:45 +0200
committerPhilippe LANGLAIS <philippe.langlais@stericsson.com>2011-10-13 10:18:07 +0200
commitb4fc8cc9749880779001b76c43fc8b90ca71a6b1 (patch)
tree3c597bd2a02ffd84d274240c9d5e66982c047904
parent5a0d3bc9ba2cecc44b3a95b1fc06aa2b7886cb7e (diff)
cw1200: configure_filter callback must be serialized with scan.
It is not allowed to configure filter when scan is in progress. It confuses both firmware and driver state machines. Fix protects configure_filter by a scan lock. ST-Ericsson ID: 357819 Change-Id: I46dedb266b5ffa64b66372e24d2fdde74cfec348 Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31745 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33527 Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
-rw-r--r--drivers/staging/cw1200/sta.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index a8bebd1060e..82c410c6c88 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -487,6 +487,7 @@ void cw1200_configure_filter(struct ieee80211_hw *dev,
FIF_BCN_PRBRESP_PROMISC |
FIF_PROBE_REQ;
+ down(&priv->scan.lock);
mutex_lock(&priv->conf_mutex);
priv->rx_filter.promiscuous = (*total_flags & FIF_PROMISC_IN_BSS)
@@ -506,6 +507,7 @@ void cw1200_configure_filter(struct ieee80211_hw *dev,
}
cw1200_update_filtering(priv);
mutex_unlock(&priv->conf_mutex);
+ up(&priv->scan.lock);
}
int cw1200_conf_tx(struct ieee80211_hw *dev, u16 queue,