瀏覽代碼

qcacld-3.0: Prevent roaming latency caused by LL stat ops

qcacld-2.0 to qcacld-3.0 propagation

Framework may initiate LL stat ops while roaming is
in middle, which in turn block the call or wait for
timeout hence introducing roaming delay.
This delay can be overcome by avoiding LL stat ops
if it is triggered in between the roaming.

Change-Id: Ie64c8c56f905cc297057e62b69c010cf1e0974ed
CRs-Fixed: 881429
(cherry picked from commit 125d2e3ce70d7829ed6b37ee032f6c2036974587)
Anurag Chouhan 8 年之前
父節點
當前提交
22520000f8
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      core/hdd/src/wlan_hdd_stats.c

+ 6 - 0
core/hdd/src/wlan_hdd_stats.c

@@ -1222,6 +1222,7 @@ __wlan_hdd_cfg80211_ll_stats_get(struct wiphy *wiphy,
 	tSirLLStatsGetReq LinkLayerStatsGetReq;
 	struct net_device *dev = wdev->netdev;
 	hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
+	hdd_station_ctx_t *hddstactx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
 	int status;
 
 	ENTER_DEV(dev);
@@ -1241,6 +1242,11 @@ __wlan_hdd_cfg80211_ll_stats_get(struct wiphy *wiphy,
 		return -EINVAL;
 	}
 
+	if (hddstactx->hdd_ReassocScenario) {
+		hdd_err("Roaming in progress, so unable to proceed this request");
+		return -EBUSY;
+	}
+
 	if (nla_parse(tb_vendor, QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_MAX,
 		      (struct nlattr *)data,
 		      data_len, qca_wlan_vendor_ll_get_policy)) {