[PATCH] Remove 'volatile' from spinlock_types
Art Haas [Wed, 6 Dec 2006 20:45:53 +0000 (14:45 -0600)]
This is a resubmission of patches originally created by Ingo Molnar.
The link below is the initial (?) posting of the patch.

  http://marc.theaimsgroup.com/?l=linux-kernel&m=115217423929806&w=2

Remove 'volatile' from spinlock_types as it causes GCC to generate bad
code (see link) and locking should be used on kernel data.

Signed-off-by: Art Haas <ahaas@airmail.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

include/asm-i386/spinlock_types.h
include/asm-x86_64/spinlock_types.h

index 59efe84..4da9345 100644 (file)
@@ -6,13 +6,13 @@
 #endif
 
 typedef struct {
-       volatile unsigned int slock;
+       unsigned int slock;
 } raw_spinlock_t;
 
 #define __RAW_SPIN_LOCK_UNLOCKED       { 1 }
 
 typedef struct {
-       volatile unsigned int lock;
+       unsigned int lock;
 } raw_rwlock_t;
 
 #define __RAW_RW_LOCK_UNLOCKED         { RW_LOCK_BIAS }
index 59efe84..4da9345 100644 (file)
@@ -6,13 +6,13 @@
 #endif
 
 typedef struct {
-       volatile unsigned int slock;
+       unsigned int slock;
 } raw_spinlock_t;
 
 #define __RAW_SPIN_LOCK_UNLOCKED       { 1 }
 
 typedef struct {
-       volatile unsigned int lock;
+       unsigned int lock;
 } raw_rwlock_t;
 
 #define __RAW_RW_LOCK_UNLOCKED         { RW_LOCK_BIAS }