|
@@ -183,10 +183,10 @@ static __always_inline void arch_spin_lock_flags(arch_spinlock_t *lock,
|
|
|
|
|
|
static inline void arch_spin_unlock_wait(arch_spinlock_t *lock)
|
|
|
{
|
|
|
- __ticket_t head = ACCESS_ONCE(lock->tickets.head);
|
|
|
+ __ticket_t head = READ_ONCE(lock->tickets.head);
|
|
|
|
|
|
for (;;) {
|
|
|
- struct __raw_tickets tmp = ACCESS_ONCE(lock->tickets);
|
|
|
+ struct __raw_tickets tmp = READ_ONCE(lock->tickets);
|
|
|
/*
|
|
|
* We need to check "unlocked" in a loop, tmp.head == head
|
|
|
* can be false positive because of overflow.
|