Lines Matching refs:peer
140 struct ath10k_peer *peer; in ath10k_peer_find() local
144 list_for_each_entry(peer, &ar->peers, list) { in ath10k_peer_find()
145 if (peer->vdev_id != vdev_id) in ath10k_peer_find()
147 if (!ether_addr_equal(peer->addr, addr)) in ath10k_peer_find()
150 return peer; in ath10k_peer_find()
158 struct ath10k_peer *peer; in ath10k_peer_find_by_id() local
160 if (peer_id >= BITS_PER_TYPE(peer->peer_ids)) in ath10k_peer_find_by_id()
165 list_for_each_entry(peer, &ar->peers, list) in ath10k_peer_find_by_id()
166 if (test_bit(peer_id, peer->peer_ids)) in ath10k_peer_find_by_id()
167 return peer; in ath10k_peer_find_by_id()
208 struct ath10k_peer *peer; in ath10k_peer_map_event() local
218 peer = ath10k_peer_find(ar, ev->vdev_id, ev->addr); in ath10k_peer_map_event()
219 if (!peer) { in ath10k_peer_map_event()
220 peer = kzalloc(sizeof(*peer), GFP_ATOMIC); in ath10k_peer_map_event()
221 if (!peer) in ath10k_peer_map_event()
224 peer->vdev_id = ev->vdev_id; in ath10k_peer_map_event()
225 ether_addr_copy(peer->addr, ev->addr); in ath10k_peer_map_event()
226 list_add(&peer->list, &ar->peers); in ath10k_peer_map_event()
233 WARN_ON(ar->peer_map[ev->peer_id] && (ar->peer_map[ev->peer_id] != peer)); in ath10k_peer_map_event()
234 ar->peer_map[ev->peer_id] = peer; in ath10k_peer_map_event()
235 set_bit(ev->peer_id, peer->peer_ids); in ath10k_peer_map_event()
244 struct ath10k_peer *peer; in ath10k_peer_unmap_event() local
254 peer = ath10k_peer_find_by_id(ar, ev->peer_id); in ath10k_peer_unmap_event()
255 if (!peer) { in ath10k_peer_unmap_event()
262 peer->vdev_id, peer->addr, ev->peer_id); in ath10k_peer_unmap_event()
265 clear_bit(ev->peer_id, peer->peer_ids); in ath10k_peer_unmap_event()
267 if (bitmap_empty(peer->peer_ids, ATH10K_MAX_NUM_PEER_IDS)) { in ath10k_peer_unmap_event()
268 list_del(&peer->list); in ath10k_peer_unmap_event()
269 kfree(peer); in ath10k_peer_unmap_event()