Messages in this thread Patch in this message | | | Date | Thu, 7 Jan 2010 10:12:40 -0600 | From | Jack Steiner <> | Subject | [PATCH] 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.
Signed-off-by: Jack Steiner <steiner@sgi.com> Cc: <stable@kernel.org>
--- 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)
| |