Przeglądaj źródła

qca-wifi: Do not add peer to vdev multipass list

Do not add peer to vdev multipass list if it is already part of
vdev list

Change-Id: Ifa61cd49a9fd5a84fc751782673ba7afeaa2f00f
CRs-Fixed: 2716723
Amir 5 lat temu
rodzic
commit
faed50508a
1 zmienionych plików z 13 dodań i 0 usunięć
  1. 13 0
      dp/wifi3.0/dp_txrx_wds.c

+ 13 - 0
dp/wifi3.0/dp_txrx_wds.c

@@ -684,6 +684,19 @@ static void dp_peer_multipass_list_add(struct dp_soc *soc, uint8_t *peer_mac,
 		qdf_err("NULL peer");
 		return;
 	}
+
+	/* If peer already exists in vdev multipass list, do not add it.
+	 * This may happen if key install comes twice or re-key
+	 * happens for a peer.
+	 */
+	if (peer->vlan_id) {
+		dp_debug("peer already added to vdev multipass list"
+			 "MAC: "QDF_MAC_ADDR_STR" vlan: %d ",
+			 QDF_MAC_ADDR_ARRAY(peer->mac_addr.raw), peer->vlan_id);
+		dp_peer_unref_delete(peer);
+		return;
+	}
+
 	/*
 	 * Ref_cnt is incremented inside dp_peer_find_hash_find().
 	 * Decrement it when element is deleted from the list.