diff options
| author | Russ Anderson <rja@sgi.com> | 2010-10-28 18:41:32 -0400 |
|---|---|---|
| committer | H. Peter Anvin <hpa@zytor.com> | 2010-10-29 01:38:07 -0400 |
| commit | 0520bd8438f18f2b1b2af5fd1c4ecc070a1bf837 (patch) | |
| tree | 8d760bff18655720f1380e02907155039a3dfa67 | |
| parent | c8f730b1ab825f06733e1c074264f0078721f365 (diff) | |
x86, uv: More Westmere support on SGI UV
Enable Westmere support for all APIC modes on SGI UV.
Signed-off-by: Russ Anderson <rja@sgi.com>
LKML-Reference: <20101028224132.GB15804@sgi.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 0a2918eaab34..ed4118de249e 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
| @@ -71,7 +71,7 @@ static int early_get_nodeid(void) | |||
| 71 | return node_id.s.node_id; | 71 | return node_id.s.node_id; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | static int __init early_get_apic_pnode_shift(void) | 74 | static void __init early_get_apic_pnode_shift(void) |
| 75 | { | 75 | { |
| 76 | unsigned long *mmr; | 76 | unsigned long *mmr; |
| 77 | 77 | ||
| @@ -83,8 +83,6 @@ static int __init early_get_apic_pnode_shift(void) | |||
| 83 | * Old bios, use default value | 83 | * Old bios, use default value |
| 84 | */ | 84 | */ |
| 85 | uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT; | 85 | uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT; |
| 86 | |||
| 87 | return uvh_apicid.s.pnode_shift; | ||
| 88 | } | 86 | } |
| 89 | 87 | ||
| 90 | static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 88 | static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
| @@ -93,6 +91,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 93 | 91 | ||
| 94 | if (!strcmp(oem_id, "SGI")) { | 92 | if (!strcmp(oem_id, "SGI")) { |
| 95 | nodeid = early_get_nodeid(); | 93 | nodeid = early_get_nodeid(); |
| 94 | early_get_apic_pnode_shift(); | ||
| 96 | x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range; | 95 | x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range; |
| 97 | x86_platform.nmi_init = uv_nmi_init; | 96 | x86_platform.nmi_init = uv_nmi_init; |
| 98 | if (!strcmp(oem_table_id, "UVL")) | 97 | if (!strcmp(oem_table_id, "UVL")) |
| @@ -101,7 +100,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 101 | uv_system_type = UV_X2APIC; | 100 | uv_system_type = UV_X2APIC; |
| 102 | else if (!strcmp(oem_table_id, "UVH")) { | 101 | else if (!strcmp(oem_table_id, "UVH")) { |
| 103 | __get_cpu_var(x2apic_extra_bits) = | 102 | __get_cpu_var(x2apic_extra_bits) = |
| 104 | nodeid << (early_get_apic_pnode_shift() - 1); | 103 | nodeid << (uvh_apicid.s.pnode_shift - 1); |
| 105 | uv_system_type = UV_NON_UNIQUE_APIC; | 104 | uv_system_type = UV_NON_UNIQUE_APIC; |
| 106 | return 1; | 105 | return 1; |
| 107 | } | 106 | } |
