diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 41d72c3aa2b2..7cbf1d53804f 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -70,8 +70,7 @@ static DEFINE_PER_CPU(int, cpufreq_policy_cpu); | |||
70 | static DEFINE_PER_CPU(struct rw_semaphore, cpu_policy_rwsem); | 70 | static DEFINE_PER_CPU(struct rw_semaphore, cpu_policy_rwsem); |
71 | 71 | ||
72 | #define lock_policy_rwsem(mode, cpu) \ | 72 | #define lock_policy_rwsem(mode, cpu) \ |
73 | static int lock_policy_rwsem_##mode \ | 73 | static int lock_policy_rwsem_##mode(int cpu) \ |
74 | (int cpu) \ | ||
75 | { \ | 74 | { \ |
76 | int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); \ | 75 | int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); \ |
77 | BUG_ON(policy_cpu == -1); \ | 76 | BUG_ON(policy_cpu == -1); \ |
@@ -81,23 +80,18 @@ static int lock_policy_rwsem_##mode \ | |||
81 | } | 80 | } |
82 | 81 | ||
83 | lock_policy_rwsem(read, cpu); | 82 | lock_policy_rwsem(read, cpu); |
84 | |||
85 | lock_policy_rwsem(write, cpu); | 83 | lock_policy_rwsem(write, cpu); |
86 | 84 | ||
87 | static void unlock_policy_rwsem_read(int cpu) | 85 | #define unlock_policy_rwsem(mode, cpu) \ |
88 | { | 86 | static void unlock_policy_rwsem_##mode(int cpu) \ |
89 | int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); | 87 | { \ |
90 | BUG_ON(policy_cpu == -1); | 88 | int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); \ |
91 | up_read(&per_cpu(cpu_policy_rwsem, policy_cpu)); | 89 | BUG_ON(policy_cpu == -1); \ |
92 | } | 90 | up_##mode(&per_cpu(cpu_policy_rwsem, policy_cpu)); \ |
93 | |||
94 | static void unlock_policy_rwsem_write(int cpu) | ||
95 | { | ||
96 | int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); | ||
97 | BUG_ON(policy_cpu == -1); | ||
98 | up_write(&per_cpu(cpu_policy_rwsem, policy_cpu)); | ||
99 | } | 91 | } |
100 | 92 | ||
93 | unlock_policy_rwsem(read, cpu); | ||
94 | unlock_policy_rwsem(write, cpu); | ||
101 | 95 | ||
102 | /* internal prototypes */ | 96 | /* internal prototypes */ |
103 | static int __cpufreq_governor(struct cpufreq_policy *policy, | 97 | static int __cpufreq_governor(struct cpufreq_policy *policy, |