summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/tlb_uv.c
diff options
context:
space:
mode:
authorRobin Holt <holt@sgi.com>2009-10-15 17:40:00 -0500
committerIngo Molnar <mingo@elte.hu>2009-10-16 08:18:34 +0200
commit036ed8ba61b72c19dc5759446d4fe0844aa88255 (patch)
tree956331ab7308de6c96e5c5b01806f26a8f91f59b /arch/x86/kernel/tlb_uv.c
parenta5912f6b3e20c137172460e6d4dd180866c00963 (diff)
downloadlwn-036ed8ba61b72c19dc5759446d4fe0844aa88255.tar.gz
lwn-036ed8ba61b72c19dc5759446d4fe0844aa88255.zip
x86, UV: Fix information in __uv_hub_info structure
A few parts of the uv_hub_info structure are initialized incorrectly. - n_val is being loaded with m_val. - gpa_mask is initialized with a bytes instead of an unsigned long. - Handle the case where none of the alias registers are used. Lastly I converted the bau over to using the uv_hub_info->m_val which is the correct value. Without this patch, booting a large configuration hits a problem where the upper bits of the gnode affect the pnode and the bau will not operate. Signed-off-by: Robin Holt <holt@sgi.com> Acked-by: Jack Steiner <steiner@sgi.com> Cc: Cliff Whickman <cpw@sgi.com> Cc: stable@kernel.org LKML-Reference: <20091015224946.396355000@alcatraz.americas.sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/tlb_uv.c')
-rw-r--r--arch/x86/kernel/tlb_uv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index 503c1f2e8835..f99fb6acfe34 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -843,8 +843,8 @@ static int __init uv_bau_init(void)
GFP_KERNEL, cpu_to_node(cur_cpu));
uv_bau_retry_limit = 1;
- uv_nshift = uv_hub_info->n_val;
- uv_mmask = (1UL << uv_hub_info->n_val) - 1;
+ uv_nshift = uv_hub_info->m_val;
+ uv_mmask = (1UL << uv_hub_info->m_val) - 1;
nblades = uv_num_possible_blades();
uv_bau_table_bases = (struct bau_control **)