Lines Matching refs:bce
166 struct uwb_beca_e *bce = container_of(_bce, struct uwb_beca_e, refcnt); in uwb_bce_kfree() local
168 kfree(bce->be); in uwb_bce_kfree()
169 kfree(bce); in uwb_bce_kfree()
178 struct uwb_beca_e *bce, *next; in __uwb_beca_find_bydev() local
179 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in __uwb_beca_find_bydev()
180 if (!memcmp(&bce->dev_addr, dev_addr, sizeof(bce->dev_addr))) in __uwb_beca_find_bydev()
183 bce = NULL; in __uwb_beca_find_bydev()
185 return bce; in __uwb_beca_find_bydev()
193 struct uwb_beca_e *bce, *next; in __uwb_beca_find_bymac() local
194 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in __uwb_beca_find_bymac()
195 if (!memcmp(bce->mac_addr, mac_addr->data, in __uwb_beca_find_bymac()
199 bce = NULL; in __uwb_beca_find_bymac()
201 return bce; in __uwb_beca_find_bymac()
216 struct uwb_beca_e *bce; in uwb_dev_get_by_devaddr() local
219 bce = __uwb_beca_find_bydev(rc, devaddr); in uwb_dev_get_by_devaddr()
220 if (bce) in uwb_dev_get_by_devaddr()
221 found = uwb_dev_try_get(rc, bce->uwb_dev); in uwb_dev_get_by_devaddr()
236 struct uwb_beca_e *bce; in uwb_dev_get_by_macaddr() local
239 bce = __uwb_beca_find_bymac(rc, macaddr); in uwb_dev_get_by_macaddr()
240 if (bce) in uwb_dev_get_by_macaddr()
241 found = uwb_dev_try_get(rc, bce->uwb_dev); in uwb_dev_get_by_macaddr()
248 static void uwb_beca_e_init(struct uwb_beca_e *bce) in uwb_beca_e_init() argument
250 mutex_init(&bce->mutex); in uwb_beca_e_init()
251 kref_init(&bce->refcnt); in uwb_beca_e_init()
252 stats_init(&bce->lqe_stats); in uwb_beca_e_init()
253 stats_init(&bce->rssi_stats); in uwb_beca_e_init()
269 struct uwb_beca_e *bce; in __uwb_beca_add() local
271 bce = kzalloc(sizeof(*bce), GFP_KERNEL); in __uwb_beca_add()
272 if (bce == NULL) in __uwb_beca_add()
274 uwb_beca_e_init(bce); in __uwb_beca_add()
275 bce->ts_jiffies = ts_jiffies; in __uwb_beca_add()
276 bce->uwb_dev = NULL; in __uwb_beca_add()
277 list_add(&bce->node, &rc->uwb_beca.list); in __uwb_beca_add()
278 return bce; in __uwb_beca_add()
288 struct uwb_beca_e *bce, *next; in uwb_beca_purge() local
292 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in uwb_beca_purge()
293 expires = bce->ts_jiffies + msecs_to_jiffies(beacon_timeout_ms); in uwb_beca_purge()
295 uwbd_dev_offair(bce); in uwb_beca_purge()
304 struct uwb_beca_e *bce, *next; in uwb_beca_release() local
307 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in uwb_beca_release()
308 list_del(&bce->node); in uwb_beca_release()
309 uwb_bce_put(bce); in uwb_beca_release()
333 ssize_t uwb_bce_print_IEs(struct uwb_dev *uwb_dev, struct uwb_beca_e *bce, in uwb_bce_print_IEs() argument
342 mutex_lock(&bce->mutex); in uwb_bce_print_IEs()
344 be = bce->be; in uwb_bce_print_IEs()
346 bf = (struct uwb_beacon_frame *)bce->be->BeaconInfo; in uwb_bce_print_IEs()
353 mutex_unlock(&bce->mutex); in uwb_bce_print_IEs()
399 struct uwb_beca_e *bce; in uwbd_evt_handle_rc_beacon() local
427 bce = __uwb_beca_find_bymac(rc, &bf->Device_Identifier); in uwbd_evt_handle_rc_beacon()
428 if (bce == NULL) { in uwbd_evt_handle_rc_beacon()
431 bce = __uwb_beca_add(rc, be, bf, evt->ts_jiffies); in uwbd_evt_handle_rc_beacon()
432 if (bce == NULL) { in uwbd_evt_handle_rc_beacon()
439 mutex_lock(&bce->mutex); in uwbd_evt_handle_rc_beacon()
441 kfree(bce->be); in uwbd_evt_handle_rc_beacon()
444 bce->ts_jiffies = evt->ts_jiffies; in uwbd_evt_handle_rc_beacon()
445 bce->be = be; in uwbd_evt_handle_rc_beacon()
446 bce->dev_addr = bf->hdr.SrcAddr; in uwbd_evt_handle_rc_beacon()
447 bce->mac_addr = &bf->Device_Identifier; in uwbd_evt_handle_rc_beacon()
450 stats_add_sample(&bce->lqe_stats, be->bLQI - 7); in uwbd_evt_handle_rc_beacon()
451 stats_add_sample(&bce->rssi_stats, be->bRSSI + 18); in uwbd_evt_handle_rc_beacon()
456 if (bce->uwb_dev == NULL) in uwbd_evt_handle_rc_beacon()
457 uwbd_dev_onair(evt->rc, bce); in uwbd_evt_handle_rc_beacon()
459 mutex_unlock(&bce->mutex); in uwbd_evt_handle_rc_beacon()