diff options
author | Amitkumar Karwar <akarwar@marvell.com> | 2012-10-20 06:19:16 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-10-29 23:20:33 +0400 |
commit | f162cac83ba474eb71ea2aa7788bd77f1692f4d2 (patch) | |
tree | ef9e5af7642d0e390aa6267bc350a0fb7b7e5e51 /drivers/net/wireless/mwifiex/main.c | |
parent | e45a841972b9d43e19e61ab3089bbe0d52a990e8 (diff) | |
download | linux-f162cac83ba474eb71ea2aa7788bd77f1692f4d2.tar.xz |
mwifiex: abort scan upon interface down
When the interface is down, we will abort scan by calling
cfg80211_scan_done() with abort option. This fixes WARN_ON
triggered by cfg80211 in wdev_cleanup_work().
Driver's internal variables/flags are cleared once we get
response for current scan command. Meanwhile we will block
new scan request from cfg80211.
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/main.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c index eb22dd248d54..1df767bc8b6e 100644 --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c @@ -472,6 +472,14 @@ mwifiex_open(struct net_device *dev) static int mwifiex_close(struct net_device *dev) { + struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); + + if (priv->scan_request) { + dev_dbg(priv->adapter->dev, "aborting scan on ndo_stop\n"); + cfg80211_scan_done(priv->scan_request, 1); + priv->scan_request = NULL; + } + return 0; } |