Updated patch with dprintk for output message. P.
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c index ae9b503..05cc4b1 100644 --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c @@ -590,6 +590,23 @@ 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)) { + dprintk("Processor does not support cpu frequency " + "changes.\n"); + return -ENODEV; + } + } + return 0; +} + static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) { unsigned int i; @@ -602,6 +619,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;