Lines Matching defs:lock_ptr
510 * The q->lock_ptr must not be NULL and must be held by the caller.
516 if (WARN_ON_SMP(!q->lock_ptr) || WARN_ON(plist_node_empty(&q->list)))
518 lockdep_assert_held(q->lock_ptr);
520 hb = container_of(q->lock_ptr, struct futex_hash_bucket, lock);
543 q->lock_ptr = &hb->lock;
579 * The q->lock_ptr must not be held by the caller. A call to futex_unqueue() must
588 spinlock_t *lock_ptr;
594 * q->lock_ptr can change between this read and the following spin_lock.
595 * Use READ_ONCE to forbid the compiler from reloading q->lock_ptr and
596 * optimizing lock_ptr out of the logic below.
598 lock_ptr = READ_ONCE(q->lock_ptr);
599 if (lock_ptr != NULL) {
600 spin_lock(lock_ptr);
602 * q->lock_ptr can change between reading it and
607 * q->lock_ptr must have changed (maybe several times)
614 if (unlikely(lock_ptr != q->lock_ptr)) {
615 spin_unlock(lock_ptr);
622 spin_unlock(lock_ptr);
631 * bucket. The hash bucket lock (i.e. lock_ptr) is held.