Lines Matching refs:owner

53 rt_mutex_set_owner(struct rt_mutex *lock, struct task_struct *owner)  in rt_mutex_set_owner()  argument
55 unsigned long val = (unsigned long)owner; in rt_mutex_set_owner()
60 WRITE_ONCE(lock->owner, (struct task_struct *)val); in rt_mutex_set_owner()
65 lock->owner = (struct task_struct *) in clear_rt_mutex_waiters()
66 ((unsigned long)lock->owner & ~RT_MUTEX_HAS_WAITERS); in clear_rt_mutex_waiters()
71 unsigned long owner, *p = (unsigned long *) &lock->owner; in fixup_rt_mutex_waiters() local
134 owner = READ_ONCE(*p); in fixup_rt_mutex_waiters()
135 if (owner & RT_MUTEX_HAS_WAITERS) in fixup_rt_mutex_waiters()
136 WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS); in fixup_rt_mutex_waiters()
144 # define rt_mutex_cmpxchg_acquire(l,c,n) (cmpxchg_acquire(&l->owner, c, n) == c)
145 # define rt_mutex_cmpxchg_release(l,c,n) (cmpxchg_release(&l->owner, c, n) == c)
154 unsigned long owner, *p = (unsigned long *) &lock->owner; in mark_rt_mutex_waiters() local
157 owner = *p; in mark_rt_mutex_waiters()
158 } while (cmpxchg_relaxed(p, owner, in mark_rt_mutex_waiters()
159 owner | RT_MUTEX_HAS_WAITERS) != owner); in mark_rt_mutex_waiters()
172 struct task_struct *owner = rt_mutex_owner(lock); in unlock_rt_mutex_safe() local
200 return rt_mutex_cmpxchg_release(lock, owner, NULL); in unlock_rt_mutex_safe()
209 lock->owner = (struct task_struct *) in mark_rt_mutex_waiters()
210 ((unsigned long)lock->owner | RT_MUTEX_HAS_WAITERS); in mark_rt_mutex_waiters()
220 lock->owner = NULL; in unlock_rt_mutex_safe()
931 struct task_struct *owner = rt_mutex_owner(lock); in task_blocks_on_rt_mutex() local
947 if (owner == task) in task_blocks_on_rt_mutex()
965 if (!owner) in task_blocks_on_rt_mutex()
968 raw_spin_lock(&owner->pi_lock); in task_blocks_on_rt_mutex()
970 rt_mutex_dequeue_pi(owner, top_waiter); in task_blocks_on_rt_mutex()
971 rt_mutex_enqueue_pi(owner, waiter); in task_blocks_on_rt_mutex()
973 rt_mutex_adjust_prio(owner); in task_blocks_on_rt_mutex()
974 if (owner->pi_blocked_on) in task_blocks_on_rt_mutex()
981 next_lock = task_blocked_on_lock(owner); in task_blocks_on_rt_mutex()
983 raw_spin_unlock(&owner->pi_lock); in task_blocks_on_rt_mutex()
997 get_task_struct(owner); in task_blocks_on_rt_mutex()
1001 res = rt_mutex_adjust_prio_chain(owner, chwalk, lock, in task_blocks_on_rt_mutex()
1042 lock->owner = (void *) RT_MUTEX_HAS_WAITERS; in mark_wakeup_next_waiter()
1069 struct task_struct *owner = rt_mutex_owner(lock); in remove_waiter() local
1083 if (!owner || !is_top_waiter) in remove_waiter()
1086 raw_spin_lock(&owner->pi_lock); in remove_waiter()
1088 rt_mutex_dequeue_pi(owner, waiter); in remove_waiter()
1091 rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock)); in remove_waiter()
1093 rt_mutex_adjust_prio(owner); in remove_waiter()
1096 next_lock = task_blocked_on_lock(owner); in remove_waiter()
1098 raw_spin_unlock(&owner->pi_lock); in remove_waiter()
1108 get_task_struct(owner); in remove_waiter()
1112 rt_mutex_adjust_prio_chain(owner, RT_MUTEX_MIN_CHAINWALK, lock, in remove_waiter()
1618 lock->owner = NULL; in __rt_mutex_futex_unlock()
1676 lock->owner = NULL; in __rt_mutex_init()