|
@@ -71,7 +71,7 @@ static int early_get_nodeid(void)
|
|
return node_id.s.node_id;
|
|
return node_id.s.node_id;
|
|
}
|
|
}
|
|
|
|
|
|
-static int __init early_get_apic_pnode_shift(void)
|
|
|
|
|
|
+static void __init early_get_apic_pnode_shift(void)
|
|
{
|
|
{
|
|
unsigned long *mmr;
|
|
unsigned long *mmr;
|
|
|
|
|
|
@@ -83,8 +83,6 @@ static int __init early_get_apic_pnode_shift(void)
|
|
* Old bios, use default value
|
|
* Old bios, use default value
|
|
*/
|
|
*/
|
|
uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT;
|
|
uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT;
|
|
-
|
|
|
|
- return uvh_apicid.s.pnode_shift;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|
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)
|
|
|
|
|
|
if (!strcmp(oem_id, "SGI")) {
|
|
if (!strcmp(oem_id, "SGI")) {
|
|
nodeid = early_get_nodeid();
|
|
nodeid = early_get_nodeid();
|
|
|
|
+ early_get_apic_pnode_shift();
|
|
x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range;
|
|
x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range;
|
|
x86_platform.nmi_init = uv_nmi_init;
|
|
x86_platform.nmi_init = uv_nmi_init;
|
|
if (!strcmp(oem_table_id, "UVL"))
|
|
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)
|
|
uv_system_type = UV_X2APIC;
|
|
uv_system_type = UV_X2APIC;
|
|
else if (!strcmp(oem_table_id, "UVH")) {
|
|
else if (!strcmp(oem_table_id, "UVH")) {
|
|
__get_cpu_var(x2apic_extra_bits) =
|
|
__get_cpu_var(x2apic_extra_bits) =
|
|
- nodeid << (early_get_apic_pnode_shift() - 1);
|
|
|
|
|
|
+ nodeid << (uvh_apicid.s.pnode_shift - 1);
|
|
uv_system_type = UV_NON_UNIQUE_APIC;
|
|
uv_system_type = UV_NON_UNIQUE_APIC;
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|