qcacmn: use granular locks to protect peer structures

Remove the global soc->peer_ref_mutex lock to protect
peer access

Instead use granular locks to protect the individual
peer DBs

1) soc→peer_hash_lock : To protect peer hash table
2) soc→peer_map_lock : To protect id to objmap array
3) vdev→peer_list_lock : To protect vdev level peer list

Change-Id: I9f044c4d71fe1155817a2b22a5a050545ec37445
This commit is contained in:
Chaithanya Garrepalli
2020-08-14 14:23:39 +05:30
zatwierdzone przez snandini
rodzic 5e4c6f6b29
commit 86d3df0605
7 zmienionych plików z 261 dodań i 146 usunięć

Wyświetl plik

@@ -62,14 +62,14 @@ struct dp_peer *dp_peer_find_by_id(struct dp_soc *soc,
{
struct dp_peer *peer;
qdf_spin_lock_bh(&soc->peer_ref_mutex);
qdf_spin_lock_bh(&soc->peer_map_lock);
peer = __dp_peer_find_by_id(soc, peer_id);
if (!peer || (peer && peer->delete_in_progress)) {
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
qdf_spin_unlock_bh(&soc->peer_map_lock);
return NULL;
}
qdf_atomic_inc(&peer->ref_cnt);
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
qdf_spin_unlock_bh(&soc->peer_map_lock);
return peer;
}