Skip to contentSkip to conversation

x86, UV - uv_global_gru_mmr_address() macro fix

PATCH In review Jack Steiner 1 participant 2 messages Jan 7, 2010 – Jan 9, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86, UV - uv_global_gru_mmr_address() macro fix

Fix bug in uv_global_gru_mmr_address macro. Macro failed to cast an int value to a long prior to a left shift > 32.

---
 arch/x86/include/asm/uv/uv_hub.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
arch/x86/include/asm/uv/uv_hub.h +2 -1
Index: linux/arch/x86/include/asm/uv/uv_hub.h
===================================================================
@@ -329,7 +329,8 @@ static inline unsigned long uv_read_glob
  */
 static inline unsigned long uv_global_gru_mmr_address(int pnode, unsigned long offset)
 {
-	return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val);
+	return UV_GLOBAL_GRU_MMR_BASE | offset |
+		((unsigned long)pnode << uv_hub_info->m_val);
 }
 
 static inline void uv_write_global_mmr8(int pnode, unsigned long offset, unsigned char val)
#1 lore raw

[tip:x86/uv] x86, uv: uv_global_gru_mmr_address() macro fix

Commit-ID:  e1e0138d7d10fd447c71cc70f367eac514bd3ce4
Gitweb:     http://git.kernel.org/tip/e1e0138d7d10fd447c71cc70f367eac514bd3ce4
Author:     Jack Steiner <[email protected]>
AuthorDate: Thu, 7 Jan 2010 10:12:40 -0600
Committer:  H. Peter Anvin <[email protected]>
CommitDate: Thu, 7 Jan 2010 11:49:57 -0800

x86, uv: uv_global_gru_mmr_address() macro fix

Fix bug in uv_global_gru_mmr_address macro. Macro failed to cast an int value to a long prior to a left shift > 32.

LKML-Reference: <[email protected]>

---
 arch/x86/include/asm/uv/uv_hub.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
arch/x86/include/asm/uv/uv_hub.h +2 -1
index 811bfab..7a81d9d 100644
@@ -335,7 +335,8 @@ static inline unsigned long uv_read_global_mmr64(int pnode,
  */
 static inline unsigned long uv_global_gru_mmr_address(int pnode, unsigned long offset)
 {
-	return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val);
+	return UV_GLOBAL_GRU_MMR_BASE | offset |
+		((unsigned long)pnode << uv_hub_info->m_val);
 }
 
 /*