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:

zatwierdzone przez
snandini

rodzic
5e4c6f6b29
commit
86d3df0605
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user