summaryrefslogtreecommitdiff
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorgaurav jindal <gauravjindal1104@gmail.com>2017-09-08 00:07:43 +0530
committerTodd Poynor <toddpoynor@google.com>2017-09-08 20:16:50 +0000
commit101ef8fff5eb3b130917ba8c8bfc0def91b6e423 (patch)
tree7d05001368da90cfbec3a15df396ef17532fc9cd /drivers/cpufreq
parent1e07bd20e4227a009101c8f5c5f3ed66b5ef30d3 (diff)
drivers: cpufreq: checks to avoid kernel crash in cpufreq_interactive
In cpufreq_governor_interactive, driver throws warning with WARN_ON for !tunables and event != CPUFREQ_GOV_POLICY_INIT. In case when tunables is NULL for event other than CPUFREQ_GOV_POLICY_INIT, kernel will crash as there is no safe check available before accessing tunables. So to handle such case and avoid the kernel crash, return -EINVAL if WARN_ON returns TRUE. Change-Id: I7a3a22d58e3c8a315a1cc1d31143649dc8807dee Signed-off-by: gaurav jindal <gauravjindal1104@gmail.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 889c9b8b2237..52ef2ea6b65c 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -1148,7 +1148,8 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy,
else
tunables = common_tunables;
- WARN_ON(!tunables && (event != CPUFREQ_GOV_POLICY_INIT));
+ if (WARN_ON(!tunables && (event != CPUFREQ_GOV_POLICY_INIT)))
+ return -EINVAL;
switch (event) {
case CPUFREQ_GOV_POLICY_INIT: