fix missing barriers in powerpc atomic store
authorRich Felker <dalias@aerifal.cx>
Sat, 19 Jul 2014 22:34:10 +0000 (18:34 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 19 Jul 2014 22:34:10 +0000 (18:34 -0400)
arch/powerpc/atomic.h

index c4ad40c..a082c09 100644 (file)
@@ -77,7 +77,11 @@ static inline void a_dec(volatile int *x)
 
 static inline void a_store(volatile int *p, int x)
 {
-       *p=x;
+       __asm__ __volatile__ ("\n"
+               "       sync\n"
+               "       stw %1, %0\n"
+               "       isync\n"
+               : "=m"(*p) : "r"(x) : "memory" );
 }
 
 static inline void a_spin()