Message ID | 1449856001-21177-1-git-send-email-will.deacon@arm.com |
---|---|
State | Accepted |
Commit | b4b29f94856ad68329132c2306e9a114920643e3 |
Headers | show |
On Wed, Dec 16, 2015 at 05:18:48PM -0800, David Daney wrote: > What is the status of this patch? It there a good likelihood that it will > make it into v4.4? > > If not, we should request that c55a6ffa6285 ("locking/osq: Relax atomic > semantics") be reverted for v4.4 I think Peter was going to send it to mingo as an urgent fix, but I've not seen anything from the tip-bot yet. Will -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
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;