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

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

 



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;

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

  Powered by Linux