Lines Matching defs:ww_ctx

177  * Associate the ww_mutex @ww with the context @ww_ctx under which we acquired
181 ww_mutex_lock_acquired(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx)
195 DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire);
197 if (ww_ctx->contending_lock) {
202 DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww);
208 DEBUG_LOCKS_WARN_ON(ww_ctx->acquired > 0);
209 ww_ctx->contending_lock = NULL;
215 DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class);
217 ww_ctx->acquired++;
218 ww->ctx = ww_ctx;
278 struct ww_acquire_ctx *ww_ctx)
280 if (!ww_ctx->is_wait_die)
283 if (waiter->ww_ctx->acquired > 0 && __ww_ctx_less(waiter->ww_ctx, ww_ctx)) {
301 struct ww_acquire_ctx *ww_ctx,
324 if (ww_ctx->acquired > 0 && __ww_ctx_less(hold_ctx, ww_ctx)) {
343 * We just acquired @lock under @ww_ctx, if there are more important contexts
355 __ww_mutex_check_waiters(struct MUTEX *lock, struct ww_acquire_ctx *ww_ctx)
364 if (!cur->ww_ctx)
367 if (__ww_mutex_die(lock, cur, ww_ctx) ||
368 __ww_mutex_wound(lock, cur->ww_ctx, ww_ctx))
385 * missed. The contended waiters will either see ww_ctx == NULL
413 __ww_mutex_kill(struct MUTEX *lock, struct ww_acquire_ctx *ww_ctx)
415 if (ww_ctx->acquired > 0) {
420 DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock);
421 ww_ctx->contending_lock = ww;
468 if (!cur->ww_ctx)
491 struct ww_acquire_ctx *ww_ctx)
496 if (!ww_ctx) {
501 is_wait_die = ww_ctx->is_wait_die;
513 if (!cur->ww_ctx)
516 if (__ww_ctx_less(ww_ctx, cur->ww_ctx)) {
523 int ret = __ww_mutex_kill(lock, ww_ctx);
535 __ww_mutex_die(lock, cur, ww_ctx);
553 __ww_mutex_wound(lock, ww_ctx, ww->ctx);