Lines Matching refs:uwbd
267 static int uwbd(void *param) in uwbd() function
276 rc->uwbd.wq, in uwbd()
277 !list_empty(&rc->uwbd.event_list) in uwbd()
284 spin_lock_irqsave(&rc->uwbd.event_list_lock, flags); in uwbd()
285 if (!list_empty(&rc->uwbd.event_list)) { in uwbd()
286 evt = list_first_entry(&rc->uwbd.event_list, struct uwb_event, list_node); in uwbd()
290 spin_unlock_irqrestore(&rc->uwbd.event_list_lock, flags); in uwbd()
306 rc->uwbd.task = kthread_run(uwbd, rc, "uwbd"); in uwbd_start()
307 if (rc->uwbd.task == NULL) in uwbd_start()
311 rc->uwbd.pid = rc->uwbd.task->pid; in uwbd_start()
317 kthread_stop(rc->uwbd.task); in uwbd_stop()
338 spin_lock_irqsave(&rc->uwbd.event_list_lock, flags); in uwbd_event_queue()
339 if (rc->uwbd.pid != 0) { in uwbd_event_queue()
340 list_add(&evt->list_node, &rc->uwbd.event_list); in uwbd_event_queue()
341 wake_up_all(&rc->uwbd.wq); in uwbd_event_queue()
348 spin_unlock_irqrestore(&rc->uwbd.event_list_lock, flags); in uwbd_event_queue()
356 spin_lock_irq(&rc->uwbd.event_list_lock); in uwbd_flush()
357 list_for_each_entry_safe(evt, nxt, &rc->uwbd.event_list, list_node) { in uwbd_flush()
366 spin_unlock_irq(&rc->uwbd.event_list_lock); in uwbd_flush()