mutex_waiter
void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
void debug_mutex_wake_waiter(struct mutex *lock, struct mutex_waiter *waiter)
void debug_mutex_free_waiter(struct mutex_waiter *waiter)
void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
static inline bool __mutex_waiter_is_first(struct mutex *lock, struct mutex_waiter *waiter)
return list_first_entry(&lock->wait_list, struct mutex_waiter, list) == waiter;
__mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
__mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter)
struct mutex_waiter *waiter)
struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter)
struct mutex_waiter *waiter)
struct mutex_waiter *waiter)
struct mutex_waiter waiter;
struct mutex_waiter *waiter =
struct mutex_waiter, list);
struct mutex_waiter *waiter);
struct mutex_waiter *waiter);
extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
struct mutex_waiter *waiter,
extern void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
struct mutex_waiter *w;
w = list_first_entry(&lock->wait_list, struct mutex_waiter, list);
static inline struct mutex_waiter *
__ww_waiter_next(struct mutex *lock, struct mutex_waiter *w)
static inline struct mutex_waiter *
__ww_waiter_prev(struct mutex *lock, struct mutex_waiter *w)
static inline struct mutex_waiter *
struct mutex_waiter *w;
w = list_last_entry(&lock->wait_list, struct mutex_waiter, list);
__ww_waiter_add(struct mutex *lock, struct mutex_waiter *waiter, struct mutex_waiter *pos)
#define MUTEX_WAITER mutex_waiter
static inline struct mutex_waiter *