浏览代码

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 年之前
父节点
当前提交
3583cfb2c9
共有 1 个文件被更改,包括 1 次插入8 次删除
  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;