Linux wireless drivers development
 help / color / mirror / Atom feed
From: Bing Zhao <bzhao@marvell.com>
To: <linux-wireless@vger.kernel.org>
Cc: "John W. Linville" <linville@tuxdriver.com>,
	Daniel Drake <dsd@laptop.org>, Paul Fox <pgf@laptop.org>,
	Tim Shepard <shep@laptop.org>, Jason Abele <jabele@chromium.org>,
	John Rhodes <jrhodes@marvell.com>,
	Amitkumar Karwar <akarwar@marvell.com>,
	Avinash Patil <patila@marvell.com>,
	Yogesh Ashok Powar <yogeshp@marvell.com>,
	Nishant Sarmukadam <nishants@marvell.com>,
	Frank Huang <frankh@marvell.com>, Bing Zhao <bzhao@marvell.com>
Subject: [PATCH 04/17] mwifiex: abort remaining scan commands when association started
Date: Mon, 13 May 2013 18:14:48 -0700	[thread overview]
Message-ID: <1368494101-23651-5-git-send-email-bzhao@marvell.com> (raw)
In-Reply-To: <1368494101-23651-1-git-send-email-bzhao@marvell.com>

A full-channel scan is split to multiple scan commands in driver
before they are sent to firmware. When each scan result is back
the SSID entries are parsed and informed to cfg80211 directly.

It's observed that sometimes userspace may initiate association
as soon as the target AP is found. During the 4-way handshake
firmware may go off-channel to scan the remaining channels.
This causes the 4-way handshake to fail.

Fix it by checking 'scan_block' flag and aborting the remaining
scan in this case. 'scan_block' flag is set after association
and before 4-way handshake. It gets cleared after 4-way handshake
is completed.

Tested-by: Jason Abele <jabele@chromium.org>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
---
 drivers/net/wireless/mwifiex/scan.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index 7b2566b..801b6b7 100644
--- a/drivers/net/wireless/mwifiex/scan.c
+++ b/drivers/net/wireless/mwifiex/scan.c
@@ -1793,7 +1793,8 @@ check_next_scan:
 			dev_dbg(adapter->dev, "info: scan already aborted\n");
 		}
 	} else {
-		if (priv->scan_aborting && !priv->scan_request) {
+		if ((priv->scan_aborting && !priv->scan_request) ||
+		    priv->scan_block) {
 			spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
 					       flags);
 			adapter->scan_delay_cnt = MWIFIEX_MAX_SCAN_DELAY_CNT;
-- 
1.8.2.3


  parent reply	other threads:[~2013-05-14  1:15 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-14  1:14 [PATCH 00/17] mwifiex updates for 3.11 Bing Zhao
2013-05-14  1:14 ` [PATCH 01/17] mwifiex: rename mwifiex_free_adapter() routine in init.c Bing Zhao
2013-05-14  1:14 ` [PATCH 02/17] mwifiex: scan delay timer cleanup in unload path Bing Zhao
2013-05-14  1:14 ` [PATCH 03/17] mwifiex: remove global user_scan_cfg variable Bing Zhao
2013-05-14  1:14 ` Bing Zhao [this message]
2013-05-14  1:14 ` [PATCH 05/17] mwifiex: avoid deleting all stations during mwifiex_del_sta_entry() Bing Zhao
2013-05-14  1:14 ` [PATCH 06/17] mwifiex: add del_station handler Bing Zhao
2013-05-14  1:14 ` [PATCH 07/17] mwifiex: replace spin_lock_irqsave with spin_lock and fix warn_on Bing Zhao
2013-05-14  1:14 ` [PATCH 08/17] mwifiex: add calibration data download feature Bing Zhao
2013-05-14  1:14 ` [PATCH 09/17] mwifiex: use u32 variables for SDIO read/write port bitmap Bing Zhao
2013-05-14  1:14 ` [PATCH 10/17] mwifiex: store SDIO chip specific information in separate structure Bing Zhao
2013-05-14  1:14 ` [PATCH 11/17] mwifiex: replace unnecessary u32 variables with u8 in sdio.c Bing Zhao
2013-05-14  1:14 ` [PATCH 12/17] mwifiex: code rearrangement in mwifiex_get_rd_port() Bing Zhao
2013-05-14  1:14 ` [PATCH 13/17] mwifiex: do port calculations separately Bing Zhao
2013-05-14  1:14 ` [PATCH 14/17] mwifiex: define a macro for MPA base address Bing Zhao
2013-05-14  1:14 ` [PATCH 15/17] mwifiex: remove unnecessary macros in sdio.h Bing Zhao
2013-05-14  1:15 ` [PATCH 16/17] mwifiex: code rearrangement in multiport aggregation path Bing Zhao
2013-05-14  1:15 ` [PATCH 17/17] mwifiex: add support for Marvell SD8897 chipset Bing Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1368494101-23651-5-git-send-email-bzhao@marvell.com \
    --to=bzhao@marvell.com \
    --cc=akarwar@marvell.com \
    --cc=dsd@laptop.org \
    --cc=frankh@marvell.com \
    --cc=jabele@chromium.org \
    --cc=jrhodes@marvell.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=nishants@marvell.com \
    --cc=patila@marvell.com \
    --cc=pgf@laptop.org \
    --cc=shep@laptop.org \
    --cc=yogeshp@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox