diff options
| author | Ingo Molnar <mingo@kernel.org> | 2016-01-06 11:02:29 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2016-01-06 11:02:29 +0100 |
| commit | 567bee2803cb46caeb6011de5b738fde33dc3896 (patch) | |
| tree | 05bab01377bffa356bfbe06c4b6193b23b7c24ca /kernel/locking/osq_lock.c | |
| parent | aa0b7ae06387d40a988ce16a189082dee6e570bc (diff) | |
| parent | 093e5840ae76f1082633503964d035f40ed0216d (diff) | |
| download | linux-next-567bee2803cb46caeb6011de5b738fde33dc3896.tar.gz linux-next-567bee2803cb46caeb6011de5b738fde33dc3896.zip | |
Merge branch 'sched/urgent' into sched/core, to pick up fixes before merging new patches
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/locking/osq_lock.c')
| -rw-r--r-- | kernel/locking/osq_lock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c index d092a0c9c2d4..05a37857ab55 100644 --- a/kernel/locking/osq_lock.c +++ b/kernel/locking/osq_lock.c @@ -93,10 +93,12 @@ bool osq_lock(struct optimistic_spin_queue *lock) node->cpu = curr; /* - * ACQUIRE semantics, pairs with corresponding RELEASE - * in unlock() uncontended, or fastpath. + * We need both ACQUIRE (pairs with corresponding RELEASE in + * unlock() uncontended, or fastpath) and RELEASE (to publish + * the node fields we just initialised) semantics when updating + * the lock tail. */ - old = atomic_xchg_acquire(&lock->tail, curr); + old = atomic_xchg(&lock->tail, curr); if (old == OSQ_UNLOCKED_VAL) return true; |
