]>
Commit | Line | Data |
---|---|---|
6c840dcf GKH |
1 | From accd846698439ba18250e8fd5681af280446b853 Mon Sep 17 00:00:00 2001 |
2 | From: Andrej Gelenberg <andrej.gelenberg@udo.edu> | |
3 | Date: Fri, 14 May 2010 15:15:58 -0700 | |
4 | Subject: [CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)" | |
5 | ||
6 | From: Andrej Gelenberg <andrej.gelenberg@udo.edu> | |
7 | ||
8 | commit accd846698439ba18250e8fd5681af280446b853 upstream. | |
9 | ||
10 | 395913d0b1db37092ea3d9d69b832183b1dd84c5 ("[CPUFREQ] remove rwsem lock | |
11 | from CPUFREQ_GOV_STOP call (second call site)") is not needed, because | |
12 | there is no rwsem lock in cpufreq_ondemand and cpufreq_conservative | |
13 | anymore. Lock should not be released until the work done. | |
14 | ||
15 | Addresses https://bugzilla.kernel.org/show_bug.cgi?id=1594 | |
16 | ||
17 | Signed-off-by: Andrej Gelenberg <andrej.gelenberg@udo.edu> | |
18 | Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | |
19 | Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | |
20 | Signed-off-by: Andrew Morton <akpm@linux-foundation.org> | |
21 | Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
22 | Signed-off-by: Dave Jones <davej@redhat.com> | |
23 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> | |
24 | ||
25 | --- | |
26 | drivers/cpufreq/cpufreq.c | 11 +---------- | |
27 | 1 file changed, 1 insertion(+), 10 deletions(-) | |
28 | ||
29 | --- a/drivers/cpufreq/cpufreq.c | |
30 | +++ b/drivers/cpufreq/cpufreq.c | |
31 | @@ -1741,17 +1741,8 @@ static int __cpufreq_set_policy(struct c | |
32 | dprintk("governor switch\n"); | |
33 | ||
34 | /* end old governor */ | |
35 | - if (data->governor) { | |
36 | - /* | |
37 | - * Need to release the rwsem around governor | |
38 | - * stop due to lock dependency between | |
39 | - * cancel_delayed_work_sync and the read lock | |
40 | - * taken in the delayed work handler. | |
41 | - */ | |
42 | - unlock_policy_rwsem_write(data->cpu); | |
43 | + if (data->governor) | |
44 | __cpufreq_governor(data, CPUFREQ_GOV_STOP); | |
45 | - lock_policy_rwsem_write(data->cpu); | |
46 | - } | |
47 | ||
48 | /* start new governor */ | |
49 | data->governor = policy->governor; |