Lines Matching defs:mtx
42 struct test_mutex *mtx = container_of(work, typeof(*mtx), work);
44 complete(&mtx->ready);
45 wait_for_completion(&mtx->go);
47 if (mtx->flags & TEST_MTX_TRY) {
48 while (!ww_mutex_trylock(&mtx->mutex, NULL))
51 ww_mutex_lock(&mtx->mutex, NULL);
53 complete(&mtx->done);
54 ww_mutex_unlock(&mtx->mutex);
60 struct test_mutex mtx;
64 ww_mutex_init(&mtx.mutex, &ww_class);
67 INIT_WORK_ONSTACK(&mtx.work, test_mutex_work);
68 init_completion(&mtx.ready);
69 init_completion(&mtx.go);
70 init_completion(&mtx.done);
71 mtx.flags = flags;
73 schedule_work(&mtx.work);
75 wait_for_completion(&mtx.ready);
76 ww_mutex_lock(&mtx.mutex, (flags & TEST_MTX_CTX) ? &ctx : NULL);
77 complete(&mtx.go);
83 if (completion_done(&mtx.done)) {
90 ret = wait_for_completion_timeout(&mtx.done, TIMEOUT);
92 ww_mutex_unlock(&mtx.mutex);
101 flush_work(&mtx.work);
102 destroy_work_on_stack(&mtx.work);