summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDewey Lee <dewey.lee@broadcom.corp-partner.google.com>2023-03-14 14:55:52 +0900
committerIsaac Chiou <isaacchiou@google.com>2023-05-15 12:14:04 +0000
commit6de007347797831b8ba00f6105d554347560f67f (patch)
tree2fd253638511ca0361d1737371d61c4c239e4a06
parent1da246746d8bf61a5d10a71f5769f0e6a7f8f137 (diff)
downloadbcm4389-6de007347797831b8ba00f6105d554347560f67f.tar.gz
Before completing 4-way handshake, scan request for low span came frequently. So, the scan request returned SCAN_BUSY. This pattern was ongoing several times. It finally caused a DB7 trap. We can make it fixed by ignoring the scan request while authorization is in progress. Bug: 267887952 Test: Verified with Pixel device Signed-off-by: Dewey Lee <dewey.lee@broadcom.corp-partner.google.com> Change-Id: I5dcbe1009c716c679a09d1c260fc449745e2b8fe
-rw-r--r--wl_cfgscan.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/wl_cfgscan.c b/wl_cfgscan.c
index ec57136..6b84a00 100644
--- a/wl_cfgscan.c
+++ b/wl_cfgscan.c
@@ -2305,6 +2305,14 @@ wl_cfgscan_handle_scanbusy(struct bcm_cfg80211 *cfg, struct net_device *ndev, s3
busy_count = 0;
}
+ if ((IS_STA_IFACE(ndev_to_wdev(ndev))) &&
+ wl_get_drv_status(cfg, CONNECTED, ndev) &&
+ !wl_get_drv_status(cfg, AUTHORIZED, ndev)) {
+ WL_ERR(("Authorization is in progress,"
+ " so ignore this scan busy until it's completed.\n"));
+ busy_count = 0;
+ }
+
if (err == BCME_BUSY || err == BCME_NOTREADY) {
WL_ERR(("Scan err = (%d), busy?%d", err, -EBUSY));
scanbusy_err = -EBUSY;