Lines Matching full:uaddr
203 static int attach_to_pi_state(u32 __user *uaddr, u32 uval, in attach_to_pi_state() argument
243 if (futex_get_value_locked(&uval2, uaddr)) in attach_to_pi_state()
321 static int handle_exit_race(u32 __user *uaddr, u32 uval, in handle_exit_race() argument
342 * tsk->flags |= PF_EXITING; *uaddr == 0x00000PID in handle_exit_race()
344 * exit_robust_list(tsk) { *uaddr = 0x80000PID; in handle_exit_race()
346 * *uaddr = 0xC0000000; tsk = get_task(PID); in handle_exit_race()
362 if (futex_get_value_locked(&uval2, uaddr)) in handle_exit_race()
371 * corrupted or the user space value in *uaddr is simply bogus. in handle_exit_race()
412 static int attach_to_pi_owner(u32 __user *uaddr, u32 uval, union futex_key *key, in attach_to_pi_owner() argument
430 return handle_exit_race(uaddr, uval, NULL); in attach_to_pi_owner()
449 int ret = handle_exit_race(uaddr, uval, p); in attach_to_pi_owner()
476 static int lock_pi_update_atomic(u32 __user *uaddr, u32 uval, u32 newval) in lock_pi_update_atomic() argument
484 err = futex_cmpxchg_value_locked(&curval, uaddr, uval, newval); in lock_pi_update_atomic()
494 * @uaddr: the pi futex user address
496 * @key: the futex key associated with uaddr and hb
516 int futex_lock_pi_atomic(u32 __user *uaddr, struct futex_hash_bucket *hb, in futex_lock_pi_atomic() argument
531 if (futex_get_value_locked(&uval, uaddr)) in futex_lock_pi_atomic()
552 return attach_to_pi_state(uaddr, uval, top_waiter->pi_state, ps); in futex_lock_pi_atomic()
572 ret = lock_pi_update_atomic(uaddr, uval, newval); in futex_lock_pi_atomic()
601 ret = lock_pi_update_atomic(uaddr, uval, newval); in futex_lock_pi_atomic()
609 return attach_to_pi_owner(uaddr, newval, key, ps, exiting); in futex_lock_pi_atomic()
615 static int wake_futex_pi(u32 __user *uaddr, u32 uval, in wake_futex_pi() argument
641 ret = futex_cmpxchg_value_locked(&curval, uaddr, uval, newval); in wake_futex_pi()
674 static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, in __fixup_pi_state_owner() argument
758 err = futex_get_value_locked(&uval, uaddr); in __fixup_pi_state_owner()
765 err = futex_cmpxchg_value_locked(&curval, uaddr, uval, newval); in __fixup_pi_state_owner()
801 err = fault_in_user_writeable(uaddr); in __fixup_pi_state_owner()
848 static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, in fixup_pi_state_owner() argument
857 ret = __fixup_pi_state_owner(uaddr, q, argowner); in fixup_pi_state_owner()
864 * @uaddr: user address of the futex
877 int fixup_pi_owner(u32 __user *uaddr, struct futex_q *q, int locked) in fixup_pi_owner() argument
889 return fixup_pi_state_owner(uaddr, q, current); in fixup_pi_owner()
902 return fixup_pi_state_owner(uaddr, q, NULL); in fixup_pi_owner()
909 return fixup_pi_state_owner(uaddr, q, current); in fixup_pi_owner()
923 int futex_lock_pi(u32 __user *uaddr, unsigned int flags, ktime_t *time, int trylock) in futex_lock_pi() argument
942 ret = get_futex_key(uaddr, flags, &q.key, FUTEX_WRITE); in futex_lock_pi()
952 ret = futex_lock_pi_atomic(uaddr, hb, &q.key, &q.pi_state, current, in futex_lock_pi()
1092 res = fixup_pi_owner(uaddr, &q, !ret); in futex_lock_pi()
1119 ret = fault_in_user_writeable(uaddr); in futex_lock_pi()
1142 int futex_unlock_pi(u32 __user *uaddr, unsigned int flags) in futex_unlock_pi() argument
1153 if (get_user(uval, uaddr)) in futex_unlock_pi()
1161 ret = get_futex_key(uaddr, flags, &key, FUTEX_WRITE); in futex_unlock_pi()
1233 ret = wake_futex_pi(uaddr, uval, pi_state, rt_waiter); in futex_unlock_pi()
1268 if ((ret = futex_cmpxchg_value_locked(&curval, uaddr, uval, 0))) { in futex_unlock_pi()
1298 ret = fault_in_user_writeable(uaddr); in futex_unlock_pi()