diff options
| -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) { |
