瀏覽代碼

qcacld-3.0: Unicast deauth from SAP isn't going OTA

SAP sends unicast disassoc to associated stations
as part of the del station request from userspace.
But host is flushing the tids as well at the same
time causing a race in FW which is failing to send
out the unicast deauth/disassoc. Fix is to add the
delay between sending the unicast frame & flush tid.

Change-Id: If52da8766f72b8f5a1ed97ca5e1d9f87d82840d8
CRs-Fixed: 2731483
Tushnim Bhattacharyya 4 年之前
父節點
當前提交
23590472f2
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      core/hdd/src/wlan_hdd_cfg80211.c

+ 5 - 2
core/hdd/src/wlan_hdd_cfg80211.c

@@ -21091,10 +21091,10 @@ QDF_STATUS hdd_softap_deauth_current_sta(struct hdd_adapter *adapter,
 
 	qdf_event_reset(&hapd_state->qdf_sta_disassoc_event);
 
-	if (!qdf_is_macaddr_broadcast(&sta_info->sta_mac))
+	if (!qdf_is_macaddr_broadcast(&param->peerMacAddr))
 		sme_send_disassoc_req_frame(hdd_ctx->mac_handle,
 					    adapter->vdev_id,
-					    (uint8_t *)&sta_info->sta_mac,
+					    (uint8_t *)&param->peerMacAddr,
 					    param->reason_code, 0);
 
 	qdf_status = hdd_softap_sta_deauth(adapter, param);
@@ -21165,6 +21165,9 @@ QDF_STATUS hdd_softap_deauth_all_sta(struct hdd_adapter *adapter,
 		if (!sta_info->is_deauth_in_progress) {
 			hdd_debug("Delete STA with MAC:" QDF_MAC_ADDR_STR,
 				  QDF_MAC_ADDR_ARRAY(sta_info->sta_mac.bytes));
+			qdf_mem_copy(param->peerMacAddr.bytes,
+				     sta_info->sta_mac.bytes,
+				     QDF_MAC_ADDR_SIZE);
 			status =
 			    hdd_softap_deauth_current_sta(adapter, sta_info,
 							  hapd_state, param);