From: Greg KH on
2.6.32-stable review patch. If anyone has any objections, please let us know.


From: Andrej Gelenberg <andrej.gelenberg(a)>

commit accd846698439ba18250e8fd5681af280446b853 upstream.

395913d0b1db37092ea3d9d69b832183b1dd84c5 ("[CPUFREQ] remove rwsem lock
from CPUFREQ_GOV_STOP call (second call site)") is not needed, because
there is no rwsem lock in cpufreq_ondemand and cpufreq_conservative
anymore. Lock should not be released until the work done.


Signed-off-by: Andrej Gelenberg <andrej.gelenberg(a)>
Cc: Mathieu Desnoyers <mathieu.desnoyers(a)>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi(a)>
Signed-off-by: Andrew Morton <akpm(a)>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers(a)>
Signed-off-by: Dave Jones <davej(a)>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)>

drivers/cpufreq/cpufreq.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)

--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1741,17 +1741,8 @@ static int __cpufreq_set_policy(struct c
dprintk("governor switch\n");

/* end old governor */
- if (data->governor) {
- /*
- * Need to release the rwsem around governor
- * stop due to lock dependency between
- * cancel_delayed_work_sync and the read lock
- * taken in the delayed work handler.
- */
- unlock_policy_rwsem_write(data->cpu);
+ if (data->governor)
__cpufreq_governor(data, CPUFREQ_GOV_STOP);
- lock_policy_rwsem_write(data->cpu);
- }

/* start new governor */
data->governor = policy->governor;

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)
More majordomo info at
Please read the FAQ at