diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-09-22 13:03:45 +0200 |
---|---|---|
committer | Philippe LANGLAIS <philippe.langlais@stericsson.com> | 2011-10-13 10:18:07 +0200 |
commit | b4fc8cc9749880779001b76c43fc8b90ca71a6b1 (patch) | |
tree | 3c597bd2a02ffd84d274240c9d5e66982c047904 | |
parent | 5a0d3bc9ba2cecc44b3a95b1fc06aa2b7886cb7e (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.c | 2 |
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, |