[PATCH] x86, UV - uv_global_gru_mmr_address() macro fix

From: Jack Steiner
Date: Thu Jan 07 2010 - 11:12:52 EST


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.

Signed-off-by: Jack Steiner <steiner@xxxxxxx>
Cc: <stable@xxxxxxxxxx>

---
arch/x86/include/asm/uv/uv_hub.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux/arch/x86/include/asm/uv/uv_hub.h
===================================================================
--- linux.orig/arch/x86/include/asm/uv/uv_hub.h 2010-01-07 01:54:31.000000000 -0600
+++ linux/arch/x86/include/asm/uv/uv_hub.h 2010-01-07 09:43:02.000000000 -0600
@@ -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)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/