diff options
Diffstat (limited to 'include/asm-generic/qspinlock.h')
| -rw-r--r-- | include/asm-generic/qspinlock.h | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/include/asm-generic/qspinlock.h b/include/asm-generic/qspinlock.h index 05f05f17a7c2..9f0681bf1e87 100644 --- a/include/asm-generic/qspinlock.h +++ b/include/asm-generic/qspinlock.h @@ -111,10 +111,9 @@ static __always_inline void queued_spin_lock(struct qspinlock *lock)  static __always_inline void queued_spin_unlock(struct qspinlock *lock)  {  	/* -	 * smp_mb__before_atomic() in order to guarantee release semantics +	 * unlock() needs release semantics:  	 */ -	smp_mb__before_atomic(); -	atomic_sub(_Q_LOCKED_VAL, &lock->val); +	(void)atomic_sub_return_release(_Q_LOCKED_VAL, &lock->val);  }  #endif |