Lines Matching refs:bce
163 struct uwb_beca_e *bce = container_of(_bce, struct uwb_beca_e, refcnt); in uwb_bce_kfree() local
165 kfree(bce->be); in uwb_bce_kfree()
166 kfree(bce); in uwb_bce_kfree()
175 struct uwb_beca_e *bce, *next; in __uwb_beca_find_bydev() local
176 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in __uwb_beca_find_bydev()
177 if (!memcmp(&bce->dev_addr, dev_addr, sizeof(bce->dev_addr))) in __uwb_beca_find_bydev()
180 bce = NULL; in __uwb_beca_find_bydev()
182 return bce; in __uwb_beca_find_bydev()
190 struct uwb_beca_e *bce, *next; in __uwb_beca_find_bymac() local
191 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in __uwb_beca_find_bymac()
192 if (!memcmp(bce->mac_addr, mac_addr->data, in __uwb_beca_find_bymac()
196 bce = NULL; in __uwb_beca_find_bymac()
198 return bce; in __uwb_beca_find_bymac()
213 struct uwb_beca_e *bce; in uwb_dev_get_by_devaddr() local
216 bce = __uwb_beca_find_bydev(rc, devaddr); in uwb_dev_get_by_devaddr()
217 if (bce) in uwb_dev_get_by_devaddr()
218 found = uwb_dev_try_get(rc, bce->uwb_dev); in uwb_dev_get_by_devaddr()
233 struct uwb_beca_e *bce; in uwb_dev_get_by_macaddr() local
236 bce = __uwb_beca_find_bymac(rc, macaddr); in uwb_dev_get_by_macaddr()
237 if (bce) in uwb_dev_get_by_macaddr()
238 found = uwb_dev_try_get(rc, bce->uwb_dev); in uwb_dev_get_by_macaddr()
245 static void uwb_beca_e_init(struct uwb_beca_e *bce) in uwb_beca_e_init() argument
247 mutex_init(&bce->mutex); in uwb_beca_e_init()
248 kref_init(&bce->refcnt); in uwb_beca_e_init()
249 stats_init(&bce->lqe_stats); in uwb_beca_e_init()
250 stats_init(&bce->rssi_stats); in uwb_beca_e_init()
266 struct uwb_beca_e *bce; in __uwb_beca_add() local
268 bce = kzalloc(sizeof(*bce), GFP_KERNEL); in __uwb_beca_add()
269 if (bce == NULL) in __uwb_beca_add()
271 uwb_beca_e_init(bce); in __uwb_beca_add()
272 bce->ts_jiffies = ts_jiffies; in __uwb_beca_add()
273 bce->uwb_dev = NULL; in __uwb_beca_add()
274 list_add(&bce->node, &rc->uwb_beca.list); in __uwb_beca_add()
275 return bce; in __uwb_beca_add()
285 struct uwb_beca_e *bce, *next; in uwb_beca_purge() local
289 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in uwb_beca_purge()
290 expires = bce->ts_jiffies + msecs_to_jiffies(beacon_timeout_ms); in uwb_beca_purge()
292 uwbd_dev_offair(bce); in uwb_beca_purge()
301 struct uwb_beca_e *bce, *next; in uwb_beca_release() local
304 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { in uwb_beca_release()
305 list_del(&bce->node); in uwb_beca_release()
306 uwb_bce_put(bce); in uwb_beca_release()
330 ssize_t uwb_bce_print_IEs(struct uwb_dev *uwb_dev, struct uwb_beca_e *bce, in uwb_bce_print_IEs() argument
339 mutex_lock(&bce->mutex); in uwb_bce_print_IEs()
341 be = bce->be; in uwb_bce_print_IEs()
343 bf = (struct uwb_beacon_frame *)bce->be->BeaconInfo; in uwb_bce_print_IEs()
350 mutex_unlock(&bce->mutex); in uwb_bce_print_IEs()
396 struct uwb_beca_e *bce; in uwbd_evt_handle_rc_beacon() local
425 bce = __uwb_beca_find_bymac(rc, &bf->Device_Identifier); in uwbd_evt_handle_rc_beacon()
426 if (bce == NULL) { in uwbd_evt_handle_rc_beacon()
429 bce = __uwb_beca_add(rc, be, bf, evt->ts_jiffies); in uwbd_evt_handle_rc_beacon()
430 if (bce == NULL) { in uwbd_evt_handle_rc_beacon()
437 mutex_lock(&bce->mutex); in uwbd_evt_handle_rc_beacon()
439 kfree(bce->be); in uwbd_evt_handle_rc_beacon()
441 last_ts = bce->ts_jiffies; 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()