Lines Matching refs:owner

91 rt_mutex_set_owner(struct rt_mutex_base *lock, struct task_struct *owner)  in rt_mutex_set_owner()  argument
93 unsigned long val = (unsigned long)owner; in rt_mutex_set_owner()
98 WRITE_ONCE(lock->owner, (struct task_struct *)val); in rt_mutex_set_owner()
103 lock->owner = (struct task_struct *) in clear_rt_mutex_waiters()
104 ((unsigned long)lock->owner & ~RT_MUTEX_HAS_WAITERS); in clear_rt_mutex_waiters()
109 unsigned long owner, *p = (unsigned long *) &lock->owner; in fixup_rt_mutex_waiters() local
172 owner = READ_ONCE(*p); in fixup_rt_mutex_waiters()
173 if (owner & RT_MUTEX_HAS_WAITERS) in fixup_rt_mutex_waiters()
174 WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS); in fixup_rt_mutex_waiters()
186 return try_cmpxchg_acquire(&lock->owner, &old, new); in rt_mutex_cmpxchg_acquire()
193 return try_cmpxchg_release(&lock->owner, &old, new); in rt_mutex_cmpxchg_release()
203 unsigned long owner, *p = (unsigned long *) &lock->owner; in mark_rt_mutex_waiters() local
206 owner = *p; in mark_rt_mutex_waiters()
207 } while (cmpxchg_relaxed(p, owner, in mark_rt_mutex_waiters()
208 owner | RT_MUTEX_HAS_WAITERS) != owner); in mark_rt_mutex_waiters()
221 struct task_struct *owner = rt_mutex_owner(lock); in unlock_rt_mutex_safe() local
249 return rt_mutex_cmpxchg_release(lock, owner, NULL); in unlock_rt_mutex_safe()
270 lock->owner = (struct task_struct *) in mark_rt_mutex_waiters()
271 ((unsigned long)lock->owner | RT_MUTEX_HAS_WAITERS); in mark_rt_mutex_waiters()
281 lock->owner = NULL; in unlock_rt_mutex_safe()
1084 struct task_struct *owner = rt_mutex_owner(lock); in task_blocks_on_rt_mutex() local
1100 if (owner == task) in task_blocks_on_rt_mutex()
1132 if (!owner) in task_blocks_on_rt_mutex()
1135 raw_spin_lock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1137 rt_mutex_dequeue_pi(owner, top_waiter); in task_blocks_on_rt_mutex()
1138 rt_mutex_enqueue_pi(owner, waiter); in task_blocks_on_rt_mutex()
1140 rt_mutex_adjust_prio(owner); in task_blocks_on_rt_mutex()
1141 if (owner->pi_blocked_on) in task_blocks_on_rt_mutex()
1148 next_lock = task_blocked_on_lock(owner); in task_blocks_on_rt_mutex()
1150 raw_spin_unlock(&owner->pi_lock); in task_blocks_on_rt_mutex()
1164 get_task_struct(owner); in task_blocks_on_rt_mutex()
1168 res = rt_mutex_adjust_prio_chain(owner, chwalk, lock, in task_blocks_on_rt_mutex()
1209 lock->owner = (void *) RT_MUTEX_HAS_WAITERS; in mark_wakeup_next_waiter()
1351 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1358 if (owner != rt_mutex_owner(lock)) in rtmutex_spin_on_owner()
1375 if (!owner->on_cpu || need_resched() || in rtmutex_spin_on_owner()
1377 vcpu_is_preempted(task_cpu(owner))) { in rtmutex_spin_on_owner()
1389 struct task_struct *owner) in rtmutex_spin_on_owner() argument
1412 struct task_struct *owner = rt_mutex_owner(lock); in remove_waiter() local
1426 if (!owner || !is_top_waiter) in remove_waiter()
1429 raw_spin_lock(&owner->pi_lock); in remove_waiter()
1431 rt_mutex_dequeue_pi(owner, waiter); in remove_waiter()
1434 rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock)); in remove_waiter()
1436 rt_mutex_adjust_prio(owner); in remove_waiter()
1439 next_lock = task_blocked_on_lock(owner); in remove_waiter()
1441 raw_spin_unlock(&owner->pi_lock); in remove_waiter()
1451 get_task_struct(owner); in remove_waiter()
1455 rt_mutex_adjust_prio_chain(owner, RT_MUTEX_MIN_CHAINWALK, lock, in remove_waiter()
1479 struct task_struct *owner; in rt_mutex_slowlock_block() local
1503 owner = rt_mutex_owner(lock); in rt_mutex_slowlock_block()
1505 owner = NULL; in rt_mutex_slowlock_block()
1508 if (!owner || !rtmutex_spin_on_owner(lock, waiter, owner)) in rt_mutex_slowlock_block()
1665 struct task_struct *owner; in rtlock_slowlock_locked() local
1685 owner = rt_mutex_owner(lock); in rtlock_slowlock_locked()
1687 owner = NULL; in rtlock_slowlock_locked()
1690 if (!owner || !rtmutex_spin_on_owner(lock, &waiter, owner)) in rtlock_slowlock_locked()