Lines Matching refs:ww_ctx
337 bool ww_mutex_spin_on_owner(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, in ww_mutex_spin_on_owner() argument
355 if (ww_ctx->acquired > 0 && READ_ONCE(ww->ctx)) in ww_mutex_spin_on_owner()
386 struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter) in mutex_spin_on_owner() argument
411 if (ww_ctx && !ww_mutex_spin_on_owner(lock, ww_ctx, waiter)) { in mutex_spin_on_owner()
474 mutex_optimistic_spin(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, in mutex_optimistic_spin() argument
509 if (!mutex_spin_on_owner(lock, owner, ww_ctx, waiter)) in mutex_optimistic_spin()
550 mutex_optimistic_spin(struct mutex *lock, struct ww_acquire_ctx *ww_ctx, in mutex_optimistic_spin() argument
611 struct ww_acquire_ctx *ww_ctx, const bool use_ww_ctx) in __mutex_lock_common() argument
621 ww_ctx = NULL; in __mutex_lock_common()
628 if (ww_ctx) { in __mutex_lock_common()
629 if (unlikely(ww_ctx == READ_ONCE(ww->ctx))) in __mutex_lock_common()
637 if (ww_ctx->acquired == 0) in __mutex_lock_common()
638 ww_ctx->wounded = 0; in __mutex_lock_common()
641 nest_lock = &ww_ctx->dep_map; in __mutex_lock_common()
650 mutex_optimistic_spin(lock, ww_ctx, NULL)) { in __mutex_lock_common()
653 if (ww_ctx) in __mutex_lock_common()
654 ww_mutex_set_context_fastpath(ww, ww_ctx); in __mutex_lock_common()
665 if (ww_ctx) in __mutex_lock_common()
666 __ww_mutex_check_waiters(lock, ww_ctx, &wake_q); in __mutex_lock_common()
674 waiter.ww_ctx = ww_ctx; in __mutex_lock_common()
686 ret = __ww_mutex_add_waiter(&waiter, lock, ww_ctx, &wake_q); in __mutex_lock_common()
718 if (ww_ctx) { in __mutex_lock_common()
719 ret = __ww_mutex_check_kill(lock, &waiter, ww_ctx); in __mutex_lock_common()
761 opt_acquired = mutex_optimistic_spin(lock, ww_ctx, &waiter); in __mutex_lock_common()
776 if (ww_ctx) { in __mutex_lock_common()
781 if (!ww_ctx->is_wait_die && lock->first_waiter != &waiter) in __mutex_lock_common()
782 __ww_mutex_check_waiters(lock, ww_ctx, &wake_q); in __mutex_lock_common()
794 if (ww_ctx) in __mutex_lock_common()
795 ww_mutex_lock_acquired(ww, ww_ctx); in __mutex_lock_common()
825 unsigned long ip, struct ww_acquire_ctx *ww_ctx) in __ww_mutex_lock() argument
828 return __mutex_lock_common(lock, state, subclass, NULL, ip, ww_ctx, true); in __ww_mutex_lock()
844 int ww_mutex_trylock(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx) in ww_mutex_trylock() argument
846 if (!ww_ctx) in ww_mutex_trylock()
856 if (ww_ctx->acquired == 0) in ww_mutex_trylock()
857 ww_ctx->wounded = 0; in ww_mutex_trylock()
860 ww_mutex_set_context_fastpath(ww, ww_ctx); in ww_mutex_trylock()
861 mutex_acquire_nest(&ww->base.dep_map, 0, 1, &ww_ctx->dep_map, _RET_IP_); in ww_mutex_trylock()