mwifiex: complete last internal scan

We are waiting on first scan command of internal scan request
before association, so we should complete on last internal scan
command response.

Cc: <stable@vger.kernel.org> # 3.8
Tested-by: Daniel Drake <dsd@laptop.org>
Tested-by: Marco Cesarano <marco@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Bing Zhao 2013-04-01 12:44:45 -07:00 committed by John W. Linville
parent 9306a398e7
commit 21de979ecf
1 changed files with 9 additions and 2 deletions

View File

@ -1393,8 +1393,10 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
queue_work(adapter->workqueue, &adapter->main_work); queue_work(adapter->workqueue, &adapter->main_work);
/* Perform internal scan synchronously */ /* Perform internal scan synchronously */
if (!priv->scan_request) if (!priv->scan_request) {
dev_dbg(adapter->dev, "wait internal scan\n");
mwifiex_wait_queue_complete(adapter, cmd_node); mwifiex_wait_queue_complete(adapter, cmd_node);
}
} else { } else {
spin_unlock_irqrestore(&adapter->scan_pending_q_lock, spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
flags); flags);
@ -1793,7 +1795,12 @@ check_next_scan:
/* Need to indicate IOCTL complete */ /* Need to indicate IOCTL complete */
if (adapter->curr_cmd->wait_q_enabled) { if (adapter->curr_cmd->wait_q_enabled) {
adapter->cmd_wait_q.status = 0; adapter->cmd_wait_q.status = 0;
mwifiex_complete_cmd(adapter, adapter->curr_cmd); if (!priv->scan_request) {
dev_dbg(adapter->dev,
"complete internal scan\n");
mwifiex_complete_cmd(adapter,
adapter->curr_cmd);
}
} }
if (priv->report_scan_result) if (priv->report_scan_result)
priv->report_scan_result = false; priv->report_scan_result = false;