abba 159 kernel/locking/test-ww_mutex.c struct test_abba *abba = container_of(work, typeof(*abba), work); abba 164 kernel/locking/test-ww_mutex.c ww_mutex_lock(&abba->b_mutex, &ctx); abba 166 kernel/locking/test-ww_mutex.c complete(&abba->b_ready); abba 167 kernel/locking/test-ww_mutex.c wait_for_completion(&abba->a_ready); abba 169 kernel/locking/test-ww_mutex.c err = ww_mutex_lock(&abba->a_mutex, &ctx); abba 170 kernel/locking/test-ww_mutex.c if (abba->resolve && err == -EDEADLK) { abba 171 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba->b_mutex); abba 172 kernel/locking/test-ww_mutex.c ww_mutex_lock_slow(&abba->a_mutex, &ctx); abba 173 kernel/locking/test-ww_mutex.c err = ww_mutex_lock(&abba->b_mutex, &ctx); abba 177 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba->a_mutex); abba 178 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba->b_mutex); abba 181 kernel/locking/test-ww_mutex.c abba->result = err; abba 186 kernel/locking/test-ww_mutex.c struct test_abba abba; abba 190 kernel/locking/test-ww_mutex.c ww_mutex_init(&abba.a_mutex, &ww_class); abba 191 kernel/locking/test-ww_mutex.c ww_mutex_init(&abba.b_mutex, &ww_class); abba 192 kernel/locking/test-ww_mutex.c INIT_WORK_ONSTACK(&abba.work, test_abba_work); abba 193 kernel/locking/test-ww_mutex.c init_completion(&abba.a_ready); abba 194 kernel/locking/test-ww_mutex.c init_completion(&abba.b_ready); abba 195 kernel/locking/test-ww_mutex.c abba.resolve = resolve; abba 197 kernel/locking/test-ww_mutex.c schedule_work(&abba.work); abba 200 kernel/locking/test-ww_mutex.c ww_mutex_lock(&abba.a_mutex, &ctx); abba 202 kernel/locking/test-ww_mutex.c complete(&abba.a_ready); abba 203 kernel/locking/test-ww_mutex.c wait_for_completion(&abba.b_ready); abba 205 kernel/locking/test-ww_mutex.c err = ww_mutex_lock(&abba.b_mutex, &ctx); abba 207 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba.a_mutex); abba 208 kernel/locking/test-ww_mutex.c ww_mutex_lock_slow(&abba.b_mutex, &ctx); abba 209 kernel/locking/test-ww_mutex.c err = ww_mutex_lock(&abba.a_mutex, &ctx); abba 213 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba.b_mutex); abba 214 kernel/locking/test-ww_mutex.c ww_mutex_unlock(&abba.a_mutex); abba 217 kernel/locking/test-ww_mutex.c flush_work(&abba.work); abba 218 kernel/locking/test-ww_mutex.c destroy_work_on_stack(&abba.work); abba 222 kernel/locking/test-ww_mutex.c if (err || abba.result) { abba 224 kernel/locking/test-ww_mutex.c __func__, err, abba.result); abba 228 kernel/locking/test-ww_mutex.c if (err != -EDEADLK && abba.result != -EDEADLK) { abba 230 kernel/locking/test-ww_mutex.c __func__, err, abba.result);