diff options
Diffstat (limited to 'arch/x86/platform')
-rw-r--r-- | arch/x86/platform/uv/tlb_uv.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c index 1341a2e06542..c425ff1a9cc3 100644 --- a/arch/x86/platform/uv/tlb_uv.c +++ b/arch/x86/platform/uv/tlb_uv.c | |||
@@ -1617,14 +1617,14 @@ static int calculate_destination_timeout(void) | |||
1617 | ts_ns = base * mult1 * mult2; | 1617 | ts_ns = base * mult1 * mult2; |
1618 | ret = ts_ns / 1000; | 1618 | ret = ts_ns / 1000; |
1619 | } else { | 1619 | } else { |
1620 | /* 4 bits 0/1 for 10/80us, 3 bits of multiplier */ | 1620 | /* 4 bits 0/1 for 10/80us base, 3 bits of multiplier */ |
1621 | mmr_image = uv_read_local_mmr(UVH_AGING_PRESCALE_SEL); | 1621 | mmr_image = uv_read_local_mmr(UVH_LB_BAU_MISC_CONTROL); |
1622 | mmr_image = (mmr_image & UV_SA_MASK) >> UV_SA_SHFT; | 1622 | mmr_image = (mmr_image & UV_SA_MASK) >> UV_SA_SHFT; |
1623 | if (mmr_image & (1L << UV2_ACK_UNITS_SHFT)) | 1623 | if (mmr_image & (1L << UV2_ACK_UNITS_SHFT)) |
1624 | mult1 = 80; | 1624 | base = 80; |
1625 | else | 1625 | else |
1626 | mult1 = 10; | 1626 | base = 10; |
1627 | base = mmr_image & UV2_ACK_MASK; | 1627 | mult1 = mmr_image & UV2_ACK_MASK; |
1628 | ret = mult1 * base; | 1628 | ret = mult1 * base; |
1629 | } | 1629 | } |
1630 | return ret; | 1630 | return ret; |
@@ -1886,6 +1886,8 @@ static int __init uv_bau_init(void) | |||
1886 | uv_base_pnode = uv_blade_to_pnode(uvhub); | 1886 | uv_base_pnode = uv_blade_to_pnode(uvhub); |
1887 | } | 1887 | } |
1888 | 1888 | ||
1889 | enable_timeouts(); | ||
1890 | |||
1889 | if (init_per_cpu(nuvhubs, uv_base_pnode)) { | 1891 | if (init_per_cpu(nuvhubs, uv_base_pnode)) { |
1890 | nobau = 1; | 1892 | nobau = 1; |
1891 | return 0; | 1893 | return 0; |
@@ -1896,7 +1898,6 @@ static int __init uv_bau_init(void) | |||
1896 | if (uv_blade_nr_possible_cpus(uvhub)) | 1898 | if (uv_blade_nr_possible_cpus(uvhub)) |
1897 | init_uvhub(uvhub, vector, uv_base_pnode); | 1899 | init_uvhub(uvhub, vector, uv_base_pnode); |
1898 | 1900 | ||
1899 | enable_timeouts(); | ||
1900 | alloc_intr_gate(vector, uv_bau_message_intr1); | 1901 | alloc_intr_gate(vector, uv_bau_message_intr1); |
1901 | 1902 | ||
1902 | for_each_possible_blade(uvhub) { | 1903 | for_each_possible_blade(uvhub) { |