Lines Matching refs:ctx

119 	DEBUG_LOCKS_WARN_ON(ww->ctx);  in ww_mutex_lock_acquired()
158 struct ww_acquire_ctx *ctx) in ww_mutex_set_context_fastpath() argument
163 ww_mutex_lock_acquired(lock, ctx); in ww_mutex_set_context_fastpath()
165 lock->ctx = ctx; in ww_mutex_set_context_fastpath()
202 struct ww_acquire_ctx *ctx) in ww_mutex_set_context_slowpath() argument
206 ww_mutex_lock_acquired(lock, ctx); in ww_mutex_set_context_slowpath()
207 lock->ctx = ctx; in ww_mutex_set_context_slowpath()
337 if (READ_ONCE(ww->ctx)) in mutex_optimistic_spin()
459 if (lock->ctx) { in ww_mutex_unlock()
461 DEBUG_LOCKS_WARN_ON(!lock->ctx->acquired); in ww_mutex_unlock()
463 if (lock->ctx->acquired > 0) in ww_mutex_unlock()
464 lock->ctx->acquired--; in ww_mutex_unlock()
465 lock->ctx = NULL; in ww_mutex_unlock()
481 __ww_mutex_lock_check_stamp(struct mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock_check_stamp() argument
484 struct ww_acquire_ctx *hold_ctx = READ_ONCE(ww->ctx); in __ww_mutex_lock_check_stamp()
489 if (ctx->stamp - hold_ctx->stamp <= LONG_MAX && in __ww_mutex_lock_check_stamp()
490 (ctx->stamp != hold_ctx->stamp || ctx > hold_ctx)) { in __ww_mutex_lock_check_stamp()
492 DEBUG_LOCKS_WARN_ON(ctx->contending_lock); in __ww_mutex_lock_check_stamp()
493 ctx->contending_lock = ww; in __ww_mutex_lock_check_stamp()
516 if (unlikely(ww_ctx == READ_ONCE(ww->ctx))) in __mutex_lock_common()
656 ww_mutex_deadlock_injection(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in ww_mutex_deadlock_injection() argument
661 if (ctx->deadlock_inject_countdown-- == 0) { in ww_mutex_deadlock_injection()
662 tmp = ctx->deadlock_inject_interval; in ww_mutex_deadlock_injection()
668 ctx->deadlock_inject_interval = tmp; in ww_mutex_deadlock_injection()
669 ctx->deadlock_inject_countdown = tmp; in ww_mutex_deadlock_injection()
670 ctx->contending_lock = lock; in ww_mutex_deadlock_injection()
682 __ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock() argument
688 0, &ctx->dep_map, _RET_IP_, ctx, 1); in __ww_mutex_lock()
689 if (!ret && ctx->acquired > 1) in __ww_mutex_lock()
690 return ww_mutex_deadlock_injection(lock, ctx); in __ww_mutex_lock()
697 __ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock_interruptible() argument
703 0, &ctx->dep_map, _RET_IP_, ctx, 1); in __ww_mutex_lock_interruptible()
705 if (!ret && ctx->acquired > 1) in __ww_mutex_lock_interruptible()
706 return ww_mutex_deadlock_injection(lock, ctx); in __ww_mutex_lock_interruptible()
841 __ww_mutex_lock_slowpath(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock_slowpath() argument
844 NULL, _RET_IP_, ctx, 1); in __ww_mutex_lock_slowpath()
849 struct ww_acquire_ctx *ctx) in __ww_mutex_lock_interruptible_slowpath() argument
852 NULL, _RET_IP_, ctx, 1); in __ww_mutex_lock_interruptible_slowpath()
916 __ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock() argument
925 ww_mutex_set_context_fastpath(lock, ctx); in __ww_mutex_lock()
928 ret = __ww_mutex_lock_slowpath(lock, ctx); in __ww_mutex_lock()
934 __ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) in __ww_mutex_lock_interruptible() argument
943 ww_mutex_set_context_fastpath(lock, ctx); in __ww_mutex_lock_interruptible()
946 ret = __ww_mutex_lock_interruptible_slowpath(lock, ctx); in __ww_mutex_lock_interruptible()