diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/tlb_uv.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c index abf3c31f14cf..59efb5390b37 100644 --- a/arch/x86/kernel/tlb_uv.c +++ b/arch/x86/kernel/tlb_uv.c | |||
@@ -1635,12 +1635,16 @@ static int __init uv_bau_init(void) | |||
1635 | alloc_intr_gate(vector, uv_bau_message_intr1); | 1635 | alloc_intr_gate(vector, uv_bau_message_intr1); |
1636 | 1636 | ||
1637 | for_each_possible_blade(uvhub) { | 1637 | for_each_possible_blade(uvhub) { |
1638 | pnode = uv_blade_to_pnode(uvhub); | 1638 | if (uv_blade_nr_possible_cpus(uvhub)) { |
1639 | /* INIT the bau */ | 1639 | pnode = uv_blade_to_pnode(uvhub); |
1640 | uv_write_global_mmr64(pnode, UVH_LB_BAU_SB_ACTIVATION_CONTROL, | 1640 | /* INIT the bau */ |
1641 | ((unsigned long)1 << 63)); | 1641 | uv_write_global_mmr64(pnode, |
1642 | mmr = 1; /* should be 1 to broadcast to both sockets */ | 1642 | UVH_LB_BAU_SB_ACTIVATION_CONTROL, |
1643 | uv_write_global_mmr64(pnode, UVH_BAU_DATA_BROADCAST, mmr); | 1643 | ((unsigned long)1 << 63)); |
1644 | mmr = 1; /* should be 1 to broadcast to both sockets */ | ||
1645 | uv_write_global_mmr64(pnode, UVH_BAU_DATA_BROADCAST, | ||
1646 | mmr); | ||
1647 | } | ||
1644 | } | 1648 | } |
1645 | 1649 | ||
1646 | return 0; | 1650 | return 0; |