|
@@ -540,7 +540,7 @@ __visible void __pv_queued_spin_unlock(struct qspinlock *lock)
|
|
* unhash. Otherwise it would be possible to have multiple @lock
|
|
* unhash. Otherwise it would be possible to have multiple @lock
|
|
* entries, which would be BAD.
|
|
* entries, which would be BAD.
|
|
*/
|
|
*/
|
|
- locked = cmpxchg(&l->locked, _Q_LOCKED_VAL, 0);
|
|
|
|
|
|
+ locked = cmpxchg_release(&l->locked, _Q_LOCKED_VAL, 0);
|
|
if (likely(locked == _Q_LOCKED_VAL))
|
|
if (likely(locked == _Q_LOCKED_VAL))
|
|
return;
|
|
return;
|
|
|
|
|