Re: [PATCH] acpi-cpufreq: blacklist Intel 0f68 processors [v3]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



BTW: the spec update says "Intel has not observed this erratum
with any commercially available software, or system". So is this really an
issue we should work around, even if the spec does not suggest any
workaround?

Best,
	Dominik

On Mon, Aug 10, 2009 at 01:31:40PM -0400, Prarit Bhargava wrote:
> 
> 
> Dominik Brodowski wrote:
> >Might this be worth something more explicit than a "dprintk", such as
> >
> >printk(KERN_INFO "Intel(R) Xeon(R) 7100 processors are broken and may lock 
> >"
> >		 "up on frequency changes: disabling acpi-cpufreq.\n")
> >
> >  
> 
> Sure, np.  I was just following what I thought the rest of the code was 
> doing.  I like a printk better than a dprintk myself ....
> 
> New patch.
> 
> P.
> 

> diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
> index ae9b503..6e9c2b3 100644
> --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
> +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
> @@ -590,6 +590,24 @@ static const struct dmi_system_id sw_any_bug_dmi_table[] = {
>  };
>  #endif
>  
> +static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c)
> +{
> +	/* http://www.intel.com/Assets/PDF/specupdate/314554.pdf
> +	 * AL30 ???A Machine Check Exception (MCE) Occurring during an
> +	 * Enhanced Intel SpeedStep?? Technology Ratio Change May Cause
> +	 * Both Processor Cores to Lock Up */
> +	if (c->x86_vendor == X86_VENDOR_INTEL) {
> +		if ((c->x86 == 15) && (c->x86_model == 6) &&
> +		    (c->x86_mask == 8)) {
> +			printk(KERN_INFO "Intel(R) Xeon(R) 7100 processors "
> +			       "are broken and may lock up on frequency "
> +			       "changes: disabling acpi-cpufreq.\n");
> +			return -ENODEV;
> +		}
> +	}
> +	return 0;
> +}
> +
>  static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  {
>  	unsigned int i;
> @@ -602,6 +620,10 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  
>  	dprintk("acpi_cpufreq_cpu_init\n");
>  
> +	result = acpi_cpufreq_blacklist(c);
> +	if (result)
> +		return result;
> +
>  	data = kzalloc(sizeof(struct acpi_cpufreq_data), GFP_KERNEL);
>  	if (!data)
>  		return -ENOMEM;

--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Devel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Forum]     [Linux SCSI]

  Powered by Linux