Commit f6b7aeee authored by Sinan Kaya's avatar Sinan Kaya Committed by James Hogan

MIPS: io: Prevent compiler reordering writeX()

writeX() has strong ordering semantics with respect to memory updates.
In the absence of a write barrier or a compiler barrier, the compiler
can reorder register and memory update instructions. This breaks the
writeX() API.
Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/18997/
[jhogan@kernel.org: Tidy commit message]
Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
parent a5075e62
...@@ -307,7 +307,7 @@ static inline void iounmap(const volatile void __iomem *addr) ...@@ -307,7 +307,7 @@ static inline void iounmap(const volatile void __iomem *addr)
#if defined(CONFIG_CPU_CAVIUM_OCTEON) || defined(CONFIG_LOONGSON3_ENHANCEMENT) #if defined(CONFIG_CPU_CAVIUM_OCTEON) || defined(CONFIG_LOONGSON3_ENHANCEMENT)
#define war_io_reorder_wmb() wmb() #define war_io_reorder_wmb() wmb()
#else #else
#define war_io_reorder_wmb() do { } while (0) #define war_io_reorder_wmb() barrier()
#endif #endif
#define __BUILD_MEMORY_SINGLE(pfx, bwlq, type, irq) \ #define __BUILD_MEMORY_SINGLE(pfx, bwlq, type, irq) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment