Lines Matching refs:owner
93 rt_mutex_set_owner(struct rt_mutex_base *lock, struct task_struct *owner) in rt_mutex_set_owner() argument
95 unsigned long val = (unsigned long)owner; in rt_mutex_set_owner()
100 WRITE_ONCE(lock->owner, (struct task_struct *)val); in rt_mutex_set_owner()
105 lock->owner = (struct task_struct *) in clear_rt_mutex_waiters()
106 ((unsigned long)lock->owner & ~RT_MUTEX_HAS_WAITERS); in clear_rt_mutex_waiters()
111 unsigned long owner, *p = (unsigned long *) &lock->owner; in fixup_rt_mutex_waiters() local
174 owner = READ_ONCE(*p); in fixup_rt_mutex_waiters()
175 if (owner & RT_MUTEX_HAS_WAITERS) in fixup_rt_mutex_waiters()
176 WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS); in fixup_rt_mutex_waiters()
188 return try_cmpxchg_acquire(&lock->owner, &old, new); in rt_mutex_cmpxchg_acquire()
195 return try_cmpxchg_release(&lock->owner, &old, new); in rt_mutex_cmpxchg_release()
205 unsigned long owner, *p = (unsigned long *) &lock->owner; in mark_rt_mutex_waiters() local
208 owner = *p; in mark_rt_mutex_waiters()
209 } while (cmpxchg_relaxed(p, owner, in mark_rt_mutex_waiters()
210 owner | RT_MUTEX_HAS_WAITERS) != owner); in mark_rt_mutex_waiters()
223 struct task_struct *owner = rt_mutex_owner(lock); in unlock_rt_mutex_safe() local
251 return rt_mutex_cmpxchg_release(lock, owner, NULL); in unlock_rt_mutex_safe()
272 lock->owner = (struct task_struct *) in mark_rt_mutex_waiters()
273 ((unsigned long)lock->owner | RT_MUTEX_HAS_WAITERS); in mark_rt_mutex_waiters()
283 lock->owner = NULL; in unlock_rt_mutex_safe()
1093 struct task_struct *owner = rt_mutex_owner(lock); in task_blocks_on_rt_mutex() local
1112 if (owner == task && !(build_ww_mutex() && ww_ctx)) in task_blocks_on_rt_mutex()
1144 if (!owner) in task_blocks_on_rt_mutex()
1147 raw_spin_lock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1149 rt_mutex_dequeue_pi(owner, top_waiter); in task_blocks_on_rt_mutex()
1150 rt_mutex_enqueue_pi(owner, waiter); in task_blocks_on_rt_mutex()
1152 rt_mutex_adjust_prio(owner); in task_blocks_on_rt_mutex()
1153 if (owner->pi_blocked_on) in task_blocks_on_rt_mutex()
1160 next_lock = task_blocked_on_lock(owner); in task_blocks_on_rt_mutex()
1162 raw_spin_unlock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1176 get_task_struct(owner); in task_blocks_on_rt_mutex()
1180 res = rt_mutex_adjust_prio_chain(owner, chwalk, lock, in task_blocks_on_rt_mutex()
1221 lock->owner = (void *) RT_MUTEX_HAS_WAITERS; in mark_wakeup_next_waiter()
1363 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1370 if (owner != rt_mutex_owner(lock)) in rtmutex_spin_on_owner()
1387 if (!owner_on_cpu(owner) || need_resched() || in rtmutex_spin_on_owner()
1400 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1423 struct task_struct *owner = rt_mutex_owner(lock); in remove_waiter() local
1437 if (!owner || !is_top_waiter) in remove_waiter()
1440 raw_spin_lock(&owner->pi_lock); in remove_waiter()
1442 rt_mutex_dequeue_pi(owner, waiter); in remove_waiter()
1445 rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock)); in remove_waiter()
1447 rt_mutex_adjust_prio(owner); in remove_waiter()
1450 next_lock = task_blocked_on_lock(owner); in remove_waiter()
1452 raw_spin_unlock(&owner->pi_lock); in remove_waiter()
1462 get_task_struct(owner); in remove_waiter()
1466 rt_mutex_adjust_prio_chain(owner, RT_MUTEX_MIN_CHAINWALK, lock, in remove_waiter()
1490 struct task_struct *owner; in rt_mutex_slowlock_block() local
1514 owner = rt_mutex_owner(lock); in rt_mutex_slowlock_block()
1516 owner = NULL; in rt_mutex_slowlock_block()
1519 if (!owner || !rtmutex_spin_on_owner(lock, waiter, owner)) in rt_mutex_slowlock_block()
1681 struct task_struct *owner; in rtlock_slowlock_locked() local
1703 owner = rt_mutex_owner(lock); in rtlock_slowlock_locked()
1705 owner = NULL; in rtlock_slowlock_locked()
1708 if (!owner || !rtmutex_spin_on_owner(lock, &waiter, owner)) in rtlock_slowlock_locked()