Lines Matching refs:work

152 	struct unwind_work *work;  in process_unwind_deferred()  local
177 list_for_each_entry_srcu(work, &callbacks, list, in process_unwind_deferred()
179 if (test_bit(work->bit, &bits)) { in process_unwind_deferred()
180 work->func(work, &trace, cookie); in process_unwind_deferred()
182 info->cache->unwind_completed |= BIT(work->bit); in process_unwind_deferred()
201 task_work_cancel(task, &info->work); in unwind_deferred_task_exit()
229 int unwind_deferred_request(struct unwind_work *work, u64 *cookie) in unwind_deferred_request() argument
255 bit = READ_ONCE(work->bit); in unwind_deferred_request()
290 ret = task_work_add(current, &info->work, twa_mode); in unwind_deferred_request()
298 void unwind_deferred_cancel(struct unwind_work *work) in unwind_deferred_cancel() argument
303 if (!work) in unwind_deferred_cancel()
306 bit = work->bit; in unwind_deferred_cancel()
313 list_del_rcu(&work->list); in unwind_deferred_cancel()
316 work->bit = -1; in unwind_deferred_cancel()
332 int unwind_deferred_init(struct unwind_work *work, unwind_callback_t func) in unwind_deferred_init() argument
334 memset(work, 0, sizeof(*work)); in unwind_deferred_init()
342 work->bit = ffz(unwind_mask); in unwind_deferred_init()
343 __set_bit(work->bit, &unwind_mask); in unwind_deferred_init()
345 list_add_rcu(&work->list, &callbacks); in unwind_deferred_init()
346 work->func = func; in unwind_deferred_init()
355 init_task_work(&info->work, unwind_deferred_task_work); in unwind_task_init()
364 task_work_cancel(task, &info->work); in unwind_task_free()