[ARM] 4126/1: Add the ARM specific barriers
There are three barriers - ISB, DMB and DSB for different scenarious. This patch adds their definitions in the system.h file. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
ae0a846e41
commit
dcda7e4ba1
@@ -193,11 +193,19 @@ extern unsigned int user_debug;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __LINUX_ARM_ARCH__ >= 6
|
#if __LINUX_ARM_ARCH__ >= 6
|
||||||
#define mb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
|
#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
|
||||||
: : "r" (0) : "memory")
|
: : "r" (0) : "memory")
|
||||||
|
#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
#else
|
#else
|
||||||
#define mb() __asm__ __volatile__ ("" : : : "memory")
|
#define isb() __asm__ __volatile__ ("" : : : "memory")
|
||||||
|
#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#define dmb() __asm__ __volatile__ ("" : : : "memory")
|
||||||
#endif
|
#endif
|
||||||
|
#define mb() dmb()
|
||||||
#define rmb() mb()
|
#define rmb() mb()
|
||||||
#define wmb() mb()
|
#define wmb() mb()
|
||||||
#define read_barrier_depends() do { } while(0)
|
#define read_barrier_depends() do { } while(0)
|
||||||
|
Reference in New Issue
Block a user