diff options
Diffstat (limited to 'arch/x86/kernel/apic/apic.c')
| -rw-r--r-- | arch/x86/kernel/apic/apic.c | 75 | 
1 files changed, 2 insertions, 73 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index ad28db7e6bde..67760275544b 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -67,7 +67,7 @@ EXPORT_SYMBOL_GPL(boot_cpu_physical_apicid);  /*   * The highest APIC ID seen during enumeration.   */ -unsigned int max_physical_apicid; +static unsigned int max_physical_apicid;  /*   * Bitmask of physically existing CPUs: @@ -1342,17 +1342,6 @@ void setup_local_APIC(void)  	/* always use the value from LDR */  	early_per_cpu(x86_cpu_to_logical_apicid, cpu) =  		logical_smp_processor_id(); - -	/* -	 * Some NUMA implementations (NUMAQ) don't initialize apicid to -	 * node mapping during NUMA init.  Now that logical apicid is -	 * guaranteed to be known, give it another chance.  This is already -	 * a bit too late - percpu allocation has already happened without -	 * proper NUMA affinity. -	 */ -	if (apic->x86_32_numa_cpu_node) -		set_apicid_to_node(early_per_cpu(x86_cpu_to_apicid, cpu), -				   apic->x86_32_numa_cpu_node(cpu));  #endif  	/* @@ -2053,8 +2042,6 @@ void __init connect_bsp_APIC(void)  		imcr_pic_to_apic();  	}  #endif -	if (apic->enable_apic_mode) -		apic->enable_apic_mode();  }  /** @@ -2451,51 +2438,6 @@ static void apic_pm_activate(void) { }  #ifdef CONFIG_X86_64 -static int apic_cluster_num(void) -{ -	int i, clusters, zeros; -	unsigned id; -	u16 *bios_cpu_apicid; -	DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS); - -	bios_cpu_apicid = early_per_cpu_ptr(x86_bios_cpu_apicid); -	bitmap_zero(clustermap, NUM_APIC_CLUSTERS); - -	for (i = 0; i < nr_cpu_ids; i++) { -		/* are we being called early in kernel startup? */ -		if (bios_cpu_apicid) { -			id = bios_cpu_apicid[i]; -		} else if (i < nr_cpu_ids) { -			if (cpu_present(i)) -				id = per_cpu(x86_bios_cpu_apicid, i); -			else -				continue; -		} else -			break; - -		if (id != BAD_APICID) -			__set_bit(APIC_CLUSTERID(id), clustermap); -	} - -	/* Problem:  Partially populated chassis may not have CPUs in some of -	 * the APIC clusters they have been allocated.  Only present CPUs have -	 * x86_bios_cpu_apicid entries, thus causing zeroes in the bitmap. -	 * Since clusters are allocated sequentially, count zeros only if -	 * they are bounded by ones. -	 */ -	clusters = 0; -	zeros = 0; -	for (i = 0; i < NUM_APIC_CLUSTERS; i++) { -		if (test_bit(i, clustermap)) { -			clusters += 1 + zeros; -			zeros = 0; -		} else -			++zeros; -	} - -	return clusters; -} -  static int multi_checked;  static int multi; @@ -2540,20 +2482,7 @@ static void dmi_check_multi(void)  int apic_is_clustered_box(void)  {  	dmi_check_multi(); -	if (multi) -		return 1; - -	if (!is_vsmp_box()) -		return 0; - -	/* -	 * ScaleMP vSMPowered boxes have one cluster per board and TSCs are -	 * not guaranteed to be synced between boards -	 */ -	if (apic_cluster_num() > 1) -		return 1; - -	return 0; +	return multi;  }  #endif  |