Ver código fonte

qcacmn: always match vdev_id to search from peer from hash

In vdev to vdev roaming on HKv2 we can have dp peer on
different LMACs with same mac address. To get the right
peer on PDEV use id match while searching from hash table

Change-Id: I60b4d7018120c9bd6a56913822ce42f24598184a
Chaithanya Garrepalli 5 anos atrás
pai
commit
3583cfb2c9
1 arquivos alterados com 1 adições e 8 exclusões
  1. 1 8
      dp/wifi3.0/dp_peer.c

+ 1 - 8
dp/wifi3.0/dp_peer.c

@@ -1193,16 +1193,9 @@ struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
 	index = dp_peer_find_hash_index(soc, mac_addr);
 	qdf_spin_lock_bh(&soc->peer_ref_mutex);
 	TAILQ_FOREACH(peer, &soc->peer_hash.bins[index], hash_list_elem) {
-#if ATH_SUPPORT_WRAP
-		/* ProxySTA may have multiple BSS peer with same MAC address,
-		 * modified find will take care of finding the correct BSS peer.
-		 */
 		if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0 &&
 			((peer->vdev->vdev_id == vdev_id) ||
 			 (vdev_id == DP_VDEV_ALL))) {
-#else
-		if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0) {
-#endif
 			/* found it - increment the ref count before releasing
 			 * the lock
 			 */
@@ -3189,7 +3182,7 @@ void *dp_find_peer_by_addr_and_vdev(struct cdp_pdev *pdev_handle,
 	struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
 	struct dp_peer *peer;
 
-	peer = dp_peer_find_hash_find(pdev->soc, peer_addr, 0, 0);
+	peer = dp_peer_find_hash_find(pdev->soc, peer_addr, 0, DP_VDEV_ALL);
 
 	if (!peer)
 		return NULL;