It looks like commit 394122ab144dae4b276d74644a2f11c44a60ac5c broke the speedstep-ich driver. The problem seems to be that speedstep-lib.c:speedstep_get_frequency() is called with a wrong value as "processor" parameter by the code below, resulting in a return value of 0. The "processor" parameter should be the value returned by "speedstep_detect_processor()" static void get_freq_data(void *_data) { struct get_freq_data *data = _data; data->speed = speedstep_get_frequency(data->processor); }
Created attachment 23325 [details] Patch to fix regression (Use correct parameter for speedstep_get_frequency() call) Tested on IBM ThinkPad T23
This is a regression from 2.6.30 -> 2.6.31, so I'm cc'ing Rafael. Thanks Dave for reporting and writing a path, I think one of my laptops was also affected (I'll try to find so time to check this solves the regression here as well).
Handled-By : Eric Pielbug <e.a.b.piel@tudelft.nl> Patch : http://bugzilla.kernel.org/attachment.cgi?id=23325
Thanks, but please don't send patches via bugzilla in the future - it's a huge pita and I basically had to type everything in myself. Always email, please.
Handled-By : Rusty Russell <rusty@rustcorp.com.au> Patch : http://patchwork.kernel.org/patch/54672/
Ignore-Patch : http://bugzilla.kernel.org/attachment.cgi?id=23325
*** Bug 14492 has been marked as a duplicate of this bug. ***
Thank you all for working on this regression and thank you to leading me to this bug report. The patch of Dave Mueller fixed the problem and speedstep-ich is working again. The patch of Rusty Russell alone doesn't solve the problem.
Unfortunately the communication thread here is incomplete, so most probably you are missing the 1st part of Rusty Russell' patch (http://patchwork.kernel.org/patch/54671/).
Patch : http://patchwork.kernel.org/patch/54671/
Thank you Dave for the clarification. This patch http://patchwork.kernel.org/patch/54671/ of Rusty Russell indeed works.
closed by: commit 8dca15e40889e5d5e9655b03ba79c26200f760ce Author: Rusty Russell <rusty@rustcorp.com.au> Date: Mon Nov 2 23:35:30 2009 -0800 [CPUFREQ] speedstep-ich: fix error caused by 394122ab144dae4b276d74644a2f11c44a60ac5c "[CPUFREQ] cpumask: avoid playing with cpus_allowed in speedstep-ich.c" changed the code to mistakenly pass the current cpu as the "processor" argument of speedstep_get_frequency(), whereas it should be the type of the processor. Addresses http://bugzilla.kernel.org/show_bug.cgi?id=14340 Based on a patch by Dave Mueller. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Dominik Brodowski <linux@brodo.de> Reported-by: Dave Mueller <dave.mueller@gmx.ch> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Jones <davej@redhat.com>