Lines Matching refs:waiter
76 struct ldsem_waiter *waiter, *next; in __ldsem_wake_readers() local
94 list_for_each_entry_safe(waiter, next, &sem->read_wait, list) { in __ldsem_wake_readers()
95 tsk = waiter->task; in __ldsem_wake_readers()
96 smp_store_release(&waiter->task, NULL); in __ldsem_wake_readers()
121 struct ldsem_waiter *waiter; in __ldsem_wake_writer() local
123 waiter = list_entry(sem->write_wait.next, struct ldsem_waiter, list); in __ldsem_wake_writer()
124 wake_up_process(waiter->task); in __ldsem_wake_writer()
158 struct ldsem_waiter waiter; in down_read_failed() local
180 list_add_tail(&waiter.list, &sem->read_wait); in down_read_failed()
183 waiter.task = current; in down_read_failed()
196 if (!smp_load_acquire(&waiter.task)) in down_read_failed()
212 if (waiter.task) { in down_read_failed()
215 list_del(&waiter.list); in down_read_failed()
217 put_task_struct(waiter.task); in down_read_failed()
232 struct ldsem_waiter waiter; in down_write_failed() local
253 list_add_tail(&waiter.list, &sem->write_wait); in down_write_failed()
255 waiter.task = current; in down_write_failed()
272 list_del(&waiter.list); in down_write_failed()