projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger...
[cascardo/linux.git]
/
arch
/
x86
/
include
/
asm
/
spinlock.h
diff --git
a/arch/x86/include/asm/spinlock.h
b/arch/x86/include/asm/spinlock.h
index
a4efe47
..
625660f
100644
(file)
--- a/
arch/x86/include/asm/spinlock.h
+++ b/
arch/x86/include/asm/spinlock.h
@@
-92,7
+92,7
@@
static __always_inline void arch_spin_lock(arch_spinlock_t *lock)
unsigned count = SPIN_THRESHOLD;
do {
unsigned count = SPIN_THRESHOLD;
do {
- if (
ACCESS
_ONCE(lock->tickets.head) == inc.tail)
+ if (
READ
_ONCE(lock->tickets.head) == inc.tail)
goto out;
cpu_relax();
} while (--count);
goto out;
cpu_relax();
} while (--count);
@@
-105,7
+105,7
@@
static __always_inline int arch_spin_trylock(arch_spinlock_t *lock)
{
arch_spinlock_t old, new;
{
arch_spinlock_t old, new;
- old.tickets =
ACCESS
_ONCE(lock->tickets);
+ old.tickets =
READ
_ONCE(lock->tickets);
if (old.tickets.head != (old.tickets.tail & ~TICKET_SLOWPATH_FLAG))
return 0;
if (old.tickets.head != (old.tickets.tail & ~TICKET_SLOWPATH_FLAG))
return 0;
@@
-162,14
+162,14
@@
static __always_inline void arch_spin_unlock(arch_spinlock_t *lock)
static inline int arch_spin_is_locked(arch_spinlock_t *lock)
{
static inline int arch_spin_is_locked(arch_spinlock_t *lock)
{
- struct __raw_tickets tmp =
ACCESS
_ONCE(lock->tickets);
+ struct __raw_tickets tmp =
READ
_ONCE(lock->tickets);
return tmp.tail != tmp.head;
}
static inline int arch_spin_is_contended(arch_spinlock_t *lock)
{
return tmp.tail != tmp.head;
}
static inline int arch_spin_is_contended(arch_spinlock_t *lock)
{
- struct __raw_tickets tmp =
ACCESS
_ONCE(lock->tickets);
+ struct __raw_tickets tmp =
READ
_ONCE(lock->tickets);
return (__ticket_t)(tmp.tail - tmp.head) > TICKET_LOCK_INC;
}
return (__ticket_t)(tmp.tail - tmp.head) > TICKET_LOCK_INC;
}