aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2012-09-20 23:23:18 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-09-24 15:02:07 -0400
commitde09364eca2fc79f8585d4d476a60c6730664098 (patch)
tree53e96fe26ffb80ee36c3af42ff2f5fe93134b7c3 /drivers
parent22c22d2710ab828ea36487abd1d7f94f79a86a68 (diff)
mwifiex: block scan request during heavy Tx traffic
Currently scan operation is delayed/aborted based on Tx traffic consistency. This decision is taken after receiving scan response of first scan command from FW. But when heavy traffic is running, we can not even afford to send first scan command and go off channel for 30msec. We will block scan request in this case. 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')
-rw-r--r--drivers/net/wireless/mwifiex/cfg80211.c6
-rw-r--r--drivers/net/wireless/mwifiex/main.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index b9f7b3e6912d..aa619186d9b6 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -1502,6 +1502,12 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
1502 1502
1503 wiphy_dbg(wiphy, "info: received scan request on %s\n", dev->name); 1503 wiphy_dbg(wiphy, "info: received scan request on %s\n", dev->name);
1504 1504
1505 if (atomic_read(&priv->wmm.tx_pkts_queued) >=
1506 MWIFIEX_MIN_TX_PENDING_TO_CANCEL_SCAN) {
1507 dev_dbg(priv->adapter->dev, "scan rejected due to traffic\n");
1508 return -EBUSY;
1509 }
1510
1505 priv->scan_request = request; 1511 priv->scan_request = request;
1506 1512
1507 priv->user_scan_cfg = kzalloc(sizeof(struct mwifiex_user_scan_cfg), 1513 priv->user_scan_cfg = kzalloc(sizeof(struct mwifiex_user_scan_cfg),
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index 12ceea47b4b4..92e57f653a3b 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -91,6 +91,8 @@ enum {
91#define MWIFIEX_MAX_EMPTY_TX_Q_CNT 10 91#define MWIFIEX_MAX_EMPTY_TX_Q_CNT 10
92#define MWIFIEX_SCAN_DELAY_MSEC 20 92#define MWIFIEX_SCAN_DELAY_MSEC 20
93 93
94#define MWIFIEX_MIN_TX_PENDING_TO_CANCEL_SCAN 2
95
94#define RSN_GTK_OUI_OFFSET 2 96#define RSN_GTK_OUI_OFFSET 2
95 97
96#define MWIFIEX_OUI_NOT_PRESENT 0 98#define MWIFIEX_OUI_NOT_PRESENT 0