public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: SGU UV Add volatile to macros that access chipset registers
@ 2009-09-09 15:42 Jack Steiner
  2009-09-09 16:10 ` Daniel Walker
  0 siblings, 1 reply; 14+ messages in thread
From: Jack Steiner @ 2009-09-09 15:42 UTC (permalink / raw)
  To: mingo, tglx; +Cc: linux-kernel

Add "volatile" to the SGI UV read/write macros that are used to access chipset
memory mapped registers.

Signed-off-by: Jack Steiner <steiner@sgi.com>


---
 arch/x86/include/asm/uv/uv_hub.h |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Index: linux/arch/x86/include/asm/uv/uv_hub.h
===================================================================
--- linux.orig/arch/x86/include/asm/uv/uv_hub.h	2009-08-10 01:45:42.000000000 -0500
+++ linux/arch/x86/include/asm/uv/uv_hub.h	2009-08-10 11:43:39.000000000 -0500
@@ -248,7 +248,7 @@ static inline int uv_apicid_to_pnode(int
  * Access global MMRs using the low memory MMR32 space. This region supports
  * faster MMR access but not all MMRs are accessible in this space.
  */
-static inline unsigned long *uv_global_mmr32_address(int pnode,
+static inline volatile unsigned long *uv_global_mmr32_address(int pnode,
 				unsigned long offset)
 {
 	return __va(UV_GLOBAL_MMR32_BASE |
@@ -271,7 +271,7 @@ static inline unsigned long uv_read_glob
  * Access Global MMR space using the MMR space located at the top of physical
  * memory.
  */
-static inline unsigned long *uv_global_mmr64_address(int pnode,
+static inline volatile unsigned long *uv_global_mmr64_address(int pnode,
 				unsigned long offset)
 {
 	return __va(UV_GLOBAL_MMR64_BASE |
@@ -294,7 +294,7 @@ static inline unsigned long uv_read_glob
  * Access hub local MMRs. Faster than using global space but only local MMRs
  * are accessible.
  */
-static inline unsigned long *uv_local_mmr_address(unsigned long offset)
+static inline volatile unsigned long *uv_local_mmr_address(unsigned long offset)
 {
 	return __va(UV_LOCAL_MMR_BASE | offset);
 }
@@ -311,12 +311,12 @@ static inline void uv_write_local_mmr(un
 
 static inline unsigned char uv_read_local_mmr8(unsigned long offset)
 {
-	return *((unsigned char *)uv_local_mmr_address(offset));
+	return *((volatile unsigned char *)uv_local_mmr_address(offset));
 }
 
 static inline void uv_write_local_mmr8(unsigned long offset, unsigned char val)
 {
-	*((unsigned char *)uv_local_mmr_address(offset)) = val;
+	*((volatile unsigned char *)uv_local_mmr_address(offset)) = val;
 }
 
 /*

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-09-18 12:07 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-09 15:42 [PATCH] x86: SGU UV Add volatile to macros that access chipset registers Jack Steiner
2009-09-09 16:10 ` Daniel Walker
2009-09-09 18:01   ` Jack Steiner
2009-09-09 18:11     ` Daniel Walker
2009-09-09 18:54       ` Chris Friesen
2009-09-09 19:38         ` Jack Steiner
2009-09-10  0:44           ` H. Peter Anvin
2009-09-10  2:21             ` Jack Steiner
2009-09-10  2:22             ` [PATCH V2] x86: SGU UV Add volatile semantics " Jack Steiner
2009-09-10  3:05               ` H. Peter Anvin
2009-09-10  3:23                 ` Jack Steiner
2009-09-10 14:31                 ` [PATCH V3] " Jack Steiner
2009-09-18 12:06                   ` [tip:x86/urgent] x86: SGI UV: " tip-bot for Jack Steiner
2009-09-09 19:20       ` [PATCH] x86: SGU UV Add volatile " Jack Steiner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox