Эх сурвалжийг харах

qcacmn: Track PASN peers only in I-STA mode

Track PASN peers only in I-STA mode and not in R-STA mode, as
there is no external authentication request needs to be
triggered in R-STA mode.

Change-Id: I26e107f5db4c923784a3da32649ddadf67a7f901
CRs-Fixed: 3154523
Pragaspathi Thilagaraj 3 жил өмнө
parent
commit
3d47ea8e15

+ 14 - 1
umac/wifi_pos/src/wifi_pos_pasn_api.c

@@ -86,6 +86,9 @@ void wifi_pos_add_peer_to_list(struct wlan_objmgr_vdev *vdev,
 	struct wlan_pasn_request *secure_list, *unsecure_list, *dst_entry;
 	uint8_t i;
 
+	if (wlan_vdev_mlme_get_opmode(vdev) != QDF_STA_MODE)
+		return;
+
 	vdev_pos_obj = wifi_pos_get_vdev_priv_obj(vdev);
 	if (!vdev_pos_obj) {
 		wifi_pos_err("Wifi pos vdev priv obj is null");
@@ -144,6 +147,9 @@ void wifi_pos_move_peers_to_fail_list(struct wlan_objmgr_vdev *vdev,
 	struct wlan_pasn_request *secure_list, *unsecure_list, *list;
 	struct qdf_mac_addr entry_to_copy;
 
+	if (wlan_vdev_mlme_get_opmode(vdev) != QDF_STA_MODE)
+		return;
+
 	vdev_pos_obj = wifi_pos_get_vdev_priv_obj(vdev);
 	if (!vdev_pos_obj) {
 		wifi_pos_err("Wifi pos vdev priv obj is null");
@@ -362,9 +368,15 @@ QDF_STATUS wifi_pos_handle_ranging_peer_create(struct wlan_objmgr_psoc *psoc,
 			wifi_pos_set_11az_failed_peers(vdev, &req[i].peer_mac);
 			continue;
 		}
-		wifi_pos_add_peer_to_list(vdev, &req[i], true);
+
+		/* Track the peers only for I-STA mode */
+		if (wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE)
+			wifi_pos_add_peer_to_list(vdev, &req[i], true);
 	}
 
+	if (wlan_vdev_mlme_get_opmode(vdev) != QDF_STA_MODE)
+		goto end;
+
 	vdev_pos_obj = wifi_pos_get_vdev_priv_obj(vdev);
 	if (!vdev_pos_obj) {
 		wifi_pos_err("Wifi pos vdev priv obj is null");
@@ -382,6 +394,7 @@ QDF_STATUS wifi_pos_handle_ranging_peer_create(struct wlan_objmgr_psoc *psoc,
 	pasn_context = &vdev_pos_obj->pasn_context;
 	status = wifi_pos_check_and_initiate_pasn_authentication(psoc, vdev,
 								 pasn_context);
+end:
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_WIFI_POS_CORE_ID);
 
 	return status;