]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/x86/kernel/apic/x2apic_uv_x.c
x86, uv: More Westmere support on SGI UV
[net-next-2.6.git] / arch / x86 / kernel / apic / x2apic_uv_x.c
index 0a2918eaab3401ac5aa43f0fb7baa97519ba2c78..ed4118de249ef0d3a72e08865ea5e949ee2d80fe 100644 (file)
@@ -71,7 +71,7 @@ static int early_get_nodeid(void)
        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;
 
@@ -83,8 +83,6 @@ static int __init early_get_apic_pnode_shift(void)
                 * Old bios, use default value
                 */
                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)
@@ -93,6 +91,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 
        if (!strcmp(oem_id, "SGI")) {
                nodeid = early_get_nodeid();
+               early_get_apic_pnode_shift();
                x86_platform.is_untracked_pat_range =  uv_is_untracked_pat_range;
                x86_platform.nmi_init = uv_nmi_init;
                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;
                else if (!strcmp(oem_table_id, "UVH")) {
                        __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;
                        return 1;
                }