[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1325654551-14169-1-git-send-email-afzal@ti.com>
Date: Wed, 4 Jan 2012 10:52:31 +0530
From: Afzal Mohammed <afzal@...com>
To: <davej@...hat.com>, <cpufreq@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
CC: <nsekhar@...com>, <hvaibhav@...com>, Afzal Mohammed <afzal@...com>
Subject: [PATCH 1/2] cpufreq:userspace: fix cpu_cur_freq updation
CPU frequency is guranteed to be changed on notifier callback with
CPUFREQ_POSTCHANGE. Notifier callback with CPUFREQ_PRECHANGE does
not gurantee a change in frequency; after it, if cpufreq driver is
unable to change CPU to new frequency. This results in wrong
information being fed to user (if setting CPU frequency fails)
upon doing like,
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Hence in userspace governer update cpu_cur_freq only if notifier
has been called with POSTCHANGE.
Signed-off-by: Afzal Mohammed <afzal@...com>
---
drivers/cpufreq/cpufreq_userspace.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/cpufreq/cpufreq_userspace.c b/drivers/cpufreq/cpufreq_userspace.c
index f231015..bedac1a 100644
--- a/drivers/cpufreq/cpufreq_userspace.c
+++ b/drivers/cpufreq/cpufreq_userspace.c
@@ -47,9 +47,11 @@ userspace_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
if (!per_cpu(cpu_is_managed, freq->cpu))
return 0;
- pr_debug("saving cpu_cur_freq of cpu %u to be %u kHz\n",
- freq->cpu, freq->new);
- per_cpu(cpu_cur_freq, freq->cpu) = freq->new;
+ if (val == CPUFREQ_POSTCHANGE) {
+ pr_debug("saving cpu_cur_freq of cpu %u to be %u kHz\n",
+ freq->cpu, freq->new);
+ per_cpu(cpu_cur_freq, freq->cpu) = freq->new;
+ }
return 0;
}
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists