Lines Matching refs:owner

95 rt_mutex_owner_encode(struct rt_mutex_base *lock, struct task_struct *owner)  in rt_mutex_owner_encode()  argument
97 unsigned long val = (unsigned long)owner; in rt_mutex_owner_encode()
106 rt_mutex_set_owner(struct rt_mutex_base *lock, struct task_struct *owner) in rt_mutex_set_owner() argument
112 xchg_acquire(&lock->owner, rt_mutex_owner_encode(lock, owner)); in rt_mutex_set_owner()
118 WRITE_ONCE(lock->owner, rt_mutex_owner_encode(lock, NULL)); in rt_mutex_clear_owner()
123 lock->owner = (struct task_struct *) in clear_rt_mutex_waiters()
124 ((unsigned long)lock->owner & ~RT_MUTEX_HAS_WAITERS); in clear_rt_mutex_waiters()
130 unsigned long owner, *p = (unsigned long *) &lock->owner; in fixup_rt_mutex_waiters() local
193 owner = READ_ONCE(*p); in fixup_rt_mutex_waiters()
194 if (owner & RT_MUTEX_HAS_WAITERS) { in fixup_rt_mutex_waiters()
205 xchg_acquire(p, owner & ~RT_MUTEX_HAS_WAITERS); in fixup_rt_mutex_waiters()
207 WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS); in fixup_rt_mutex_waiters()
220 return try_cmpxchg_acquire(&lock->owner, &old, new); in rt_mutex_cmpxchg_acquire()
232 return try_cmpxchg_release(&lock->owner, &old, new); in rt_mutex_cmpxchg_release()
242 unsigned long *p = (unsigned long *) &lock->owner; in mark_rt_mutex_waiters()
243 unsigned long owner, new; in mark_rt_mutex_waiters() local
245 owner = READ_ONCE(*p); in mark_rt_mutex_waiters()
247 new = owner | RT_MUTEX_HAS_WAITERS; in mark_rt_mutex_waiters()
248 } while (!try_cmpxchg_relaxed(p, &owner, new)); in mark_rt_mutex_waiters()
268 struct task_struct *owner = rt_mutex_owner(lock); in unlock_rt_mutex_safe() local
296 return rt_mutex_cmpxchg_release(lock, owner, NULL); in unlock_rt_mutex_safe()
331 lock->owner = (struct task_struct *) in mark_rt_mutex_waiters()
332 ((unsigned long)lock->owner | RT_MUTEX_HAS_WAITERS); in mark_rt_mutex_waiters()
342 lock->owner = NULL; in unlock_rt_mutex_safe()
1209 struct task_struct *owner = rt_mutex_owner(lock); in task_blocks_on_rt_mutex() local
1228 if (owner == task && !(build_ww_mutex() && ww_ctx)) in task_blocks_on_rt_mutex()
1261 if (!owner) in task_blocks_on_rt_mutex()
1264 raw_spin_lock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1266 rt_mutex_dequeue_pi(owner, top_waiter); in task_blocks_on_rt_mutex()
1267 rt_mutex_enqueue_pi(owner, waiter); in task_blocks_on_rt_mutex()
1269 rt_mutex_adjust_prio(lock, owner); in task_blocks_on_rt_mutex()
1270 if (owner->pi_blocked_on) in task_blocks_on_rt_mutex()
1277 next_lock = task_blocked_on_lock(owner); in task_blocks_on_rt_mutex()
1279 raw_spin_unlock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1293 get_task_struct(owner); in task_blocks_on_rt_mutex()
1297 res = rt_mutex_adjust_prio_chain(owner, chwalk, lock, in task_blocks_on_rt_mutex()
1340 lock->owner = (void *) RT_MUTEX_HAS_WAITERS; in mark_wakeup_next_waiter()
1482 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1489 if (owner != rt_mutex_owner(lock)) in rtmutex_spin_on_owner()
1506 if (!owner_on_cpu(owner) || need_resched() || in rtmutex_spin_on_owner()
1519 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1542 struct task_struct *owner = rt_mutex_owner(lock); in remove_waiter() local
1556 if (!owner || !is_top_waiter) in remove_waiter()
1559 raw_spin_lock(&owner->pi_lock); in remove_waiter()
1561 rt_mutex_dequeue_pi(owner, waiter); in remove_waiter()
1564 rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock)); in remove_waiter()
1566 rt_mutex_adjust_prio(lock, owner); in remove_waiter()
1569 next_lock = task_blocked_on_lock(owner); in remove_waiter()
1571 raw_spin_unlock(&owner->pi_lock); in remove_waiter()
1581 get_task_struct(owner); in remove_waiter()
1585 rt_mutex_adjust_prio_chain(owner, RT_MUTEX_MIN_CHAINWALK, lock, in remove_waiter()
1612 struct task_struct *owner; in rt_mutex_slowlock_block() local
1636 owner = rt_mutex_owner(lock); in rt_mutex_slowlock_block()
1638 owner = NULL; in rt_mutex_slowlock_block()
1641 if (!owner || !rtmutex_spin_on_owner(lock, waiter, owner)) in rt_mutex_slowlock_block()
1823 struct task_struct *owner; in rtlock_slowlock_locked() local
1845 owner = rt_mutex_owner(lock); in rtlock_slowlock_locked()
1847 owner = NULL; in rtlock_slowlock_locked()
1850 if (!owner || !rtmutex_spin_on_owner(lock, &waiter, owner)) in rtlock_slowlock_locked()