Lines Matching refs:ww_ctx

181 ww_mutex_lock_acquired(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx)  in ww_mutex_lock_acquired()  argument
195 DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire); in ww_mutex_lock_acquired()
197 if (ww_ctx->contending_lock) { in ww_mutex_lock_acquired()
202 DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww); in ww_mutex_lock_acquired()
208 DEBUG_LOCKS_WARN_ON(ww_ctx->acquired > 0); in ww_mutex_lock_acquired()
209 ww_ctx->contending_lock = NULL; in ww_mutex_lock_acquired()
215 DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class); in ww_mutex_lock_acquired()
217 ww_ctx->acquired++; in ww_mutex_lock_acquired()
218 ww->ctx = ww_ctx; in ww_mutex_lock_acquired()
278 struct ww_acquire_ctx *ww_ctx, struct wake_q_head *wake_q) in __ww_mutex_die() argument
280 if (!ww_ctx->is_wait_die) in __ww_mutex_die()
283 if (waiter->ww_ctx->acquired > 0 && __ww_ctx_less(waiter->ww_ctx, ww_ctx)) { in __ww_mutex_die()
301 struct ww_acquire_ctx *ww_ctx, in __ww_mutex_wound() argument
325 if (ww_ctx->acquired > 0 && __ww_ctx_less(hold_ctx, ww_ctx)) { in __ww_mutex_wound()
356 __ww_mutex_check_waiters(struct MUTEX *lock, struct ww_acquire_ctx *ww_ctx, in __ww_mutex_check_waiters() argument
366 if (!cur->ww_ctx) in __ww_mutex_check_waiters()
369 if (__ww_mutex_die(lock, cur, ww_ctx, wake_q) || in __ww_mutex_check_waiters()
370 __ww_mutex_wound(lock, cur->ww_ctx, ww_ctx, wake_q)) in __ww_mutex_check_waiters()
421 __ww_mutex_kill(struct MUTEX *lock, struct ww_acquire_ctx *ww_ctx) in __ww_mutex_kill() argument
423 if (ww_ctx->acquired > 0) { in __ww_mutex_kill()
428 DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock); in __ww_mutex_kill()
429 ww_ctx->contending_lock = ww; in __ww_mutex_kill()
476 if (!cur->ww_ctx) in __ww_mutex_check_kill()
499 struct ww_acquire_ctx *ww_ctx, in __ww_mutex_add_waiter() argument
505 if (!ww_ctx) { in __ww_mutex_add_waiter()
510 is_wait_die = ww_ctx->is_wait_die; in __ww_mutex_add_waiter()
522 if (!cur->ww_ctx) in __ww_mutex_add_waiter()
525 if (__ww_ctx_less(ww_ctx, cur->ww_ctx)) { in __ww_mutex_add_waiter()
532 int ret = __ww_mutex_kill(lock, ww_ctx); in __ww_mutex_add_waiter()
544 __ww_mutex_die(lock, cur, ww_ctx, wake_q); in __ww_mutex_add_waiter()
562 __ww_mutex_wound(lock, ww_ctx, ww->ctx, wake_q); in __ww_mutex_add_waiter()