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
此提交包含在:
@@ -945,7 +945,15 @@ extern void dp_peer_find_detach(struct dp_soc *soc);
|
||||
extern void dp_peer_find_hash_add(struct dp_soc *soc, struct dp_peer *peer);
|
||||
extern void dp_peer_find_hash_remove(struct dp_soc *soc, struct dp_peer *peer);
|
||||
extern void dp_peer_find_hash_erase(struct dp_soc *soc);
|
||||
|
||||
void dp_peer_vdev_list_add(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
struct dp_peer *peer);
|
||||
uint8_t dp_peer_vdev_list_remove(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
struct dp_peer *peer);
|
||||
void dp_peer_find_id_to_obj_add(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint16_t peer_id);
|
||||
void dp_peer_find_id_to_obj_remove(struct dp_soc *soc,
|
||||
uint16_t peer_id);
|
||||
/*
|
||||
* dp_peer_ppdu_delayed_ba_init() Initialize ppdu in peer
|
||||
* @peer: Datapath peer
|
||||
|
新增問題並參考
封鎖使用者