make atomic_read() behave consistently on arm
PATCH 2/24 make atomic_read() behave consistently on arm
From: Chris Snook <[email protected]>
Purify volatile use for atomic_t on arm.
Signed-off-by Chris Snook <[email protected]>
include/asm-arm/atomic.h +6 -2
@@ -14,13 +14,17 @@#include <linux/compiler.h> #include <asm/system.h> -typedef struct {volatile int counter; }atomic_t ; +typedef struct {int counter; }atomic_t ;#define ATOMIC_INIT (i) { (i) }#ifdef __KERNEL__ -#define atomic_read (v) ((v)->counter) +/* +* Casting to volatile here minimizes the need for barriers, +* without having to declare the type itself as volatile. +*/ +#define atomic_read (v) (*(volatile int *)&(v)->counter)#if __LINUX_ARM_ARCH__ >=6
Quoted 5 lines · Chris Snook
From: Chris Snook <[email protected]>
Purify volatile use for
atomic_ton arm.Signed-off-by Chris Snook <[email protected]>
Acked-by Russell King <[email protected]>
Signature · 3 lines
Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: