diff options
Diffstat (limited to 'arch/x86')
| -rw-r--r-- | arch/x86/include/asm/msr-index.h | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/cpufreq/p4-clockmod.c | 6 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 13 | ||||
| -rw-r--r-- | arch/x86/platform/olpc/olpc_dt.c | 3 | 
4 files changed, 19 insertions, 8 deletions
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index 4d0dfa0d998..43a18c77676 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -36,6 +36,11 @@  #define MSR_IA32_PERFCTR1		0x000000c2  #define MSR_FSB_FREQ			0x000000cd +#define MSR_NHM_SNB_PKG_CST_CFG_CTL	0x000000e2 +#define NHM_C3_AUTO_DEMOTE		(1UL << 25) +#define NHM_C1_AUTO_DEMOTE		(1UL << 26) +#define ATM_LNC_C6_AUTO_DEMOTE		(1UL << 25) +  #define MSR_MTRRcap			0x000000fe  #define MSR_IA32_BBL_CR_CTL		0x00000119 diff --git a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c index bd1cac747f6..52c93648e49 100644 --- a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c +++ b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c @@ -158,9 +158,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)  {  	if (c->x86 == 0x06) {  		if (cpu_has(c, X86_FEATURE_EST)) -			printk(KERN_WARNING PFX "Warning: EST-capable CPU " -			       "detected. The acpi-cpufreq module offers " -			       "voltage scaling in addition of frequency " +			printk_once(KERN_WARNING PFX "Warning: EST-capable " +			       "CPU detected. The acpi-cpufreq module offers " +			       "voltage scaling in addition to frequency "  			       "scaling. You should use that instead of "  			       "p4-clockmod, if possible.\n");  		switch (c->x86_model) { diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index 35c7e65e59b..c567dec854f 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c @@ -1537,6 +1537,7 @@ static struct notifier_block cpb_nb = {  static int __cpuinit powernowk8_init(void)  {  	unsigned int i, supported_cpus = 0, cpu; +	int rv;  	for_each_online_cpu(i) {  		int rc; @@ -1555,14 +1556,14 @@ static int __cpuinit powernowk8_init(void)  		cpb_capable = true; -		register_cpu_notifier(&cpb_nb); -  		msrs = msrs_alloc();  		if (!msrs) {  			printk(KERN_ERR "%s: Error allocating msrs!\n", __func__);  			return -ENOMEM;  		} +		register_cpu_notifier(&cpb_nb); +  		rdmsr_on_cpus(cpu_online_mask, MSR_K7_HWCR, msrs);  		for_each_cpu(cpu, cpu_online_mask) { @@ -1574,7 +1575,13 @@ static int __cpuinit powernowk8_init(void)  			(cpb_enabled ? "on" : "off"));  	} -	return cpufreq_register_driver(&cpufreq_amd64_driver); +	rv = cpufreq_register_driver(&cpufreq_amd64_driver); +	if (rv < 0 && boot_cpu_has(X86_FEATURE_CPB)) { +		unregister_cpu_notifier(&cpb_nb); +		msrs_free(msrs); +		msrs = NULL; +	} +	return rv;  }  /* driver entry point for term */ diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c index dab87464753..044bda5b317 100644 --- a/arch/x86/platform/olpc/olpc_dt.c +++ b/arch/x86/platform/olpc/olpc_dt.c @@ -140,8 +140,7 @@ void * __init prom_early_alloc(unsigned long size)  		 * wasted bootmem) and hand off chunks of it to callers.  		 */  		res = alloc_bootmem(chunk_size); -		if (!res) -			return NULL; +		BUG_ON(!res);  		prom_early_allocated += chunk_size;  		memset(res, 0, chunk_size);  		free_mem = chunk_size;  |