wmb() for PPC was incorrect defined as an eieio instruction in
libibverbs. eieio only orders pure I/O memory or a pure system memory
accesses. In a situation where the device drivers use the d_map
kernel services to share a portion of system memory with an I/O
adapter, we need to use sync() instead. See below link for reference:
http://www.ibm.com/developerworks/eserver/articles/powerpc.html
Signed-off-by: Shirley Ma <xma@us.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
#define mb() asm volatile("sync" ::: "memory")
#define rmb() mb()
-#define wmb() asm volatile("eieio" ::: "memory")
+#define wmb() mb()
#define wc_wmb() wmb()
#elif defined(__sparc_v9__)