]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/tile/lib/spinlock_64.c
Merge branch 'for-4.8/core' of git://git.kernel.dk/linux-block
[karo-tx-linux.git] / arch / tile / lib / spinlock_64.c
index c8d1f94ff1fe00e13f30a6c0e3ae51563a3226fa..a4b5b2cbce9337bdc775a92c087b3c5cf3876965 100644 (file)
@@ -76,6 +76,12 @@ void arch_spin_unlock_wait(arch_spinlock_t *lock)
        do {
                delay_backoff(iterations++);
        } while (arch_spin_current(READ_ONCE(lock->lock)) == curr);
+
+       /*
+        * The TILE architecture doesn't do read speculation; therefore
+        * a control dependency guarantees a LOAD->{LOAD,STORE} order.
+        */
+       barrier();
 }
 EXPORT_SYMBOL(arch_spin_unlock_wait);