diff options
author | gaurav jindal <gauravjindal1104@gmail.com> | 2017-09-08 00:07:43 +0530 |
---|---|---|
committer | Todd Poynor <toddpoynor@google.com> | 2017-09-08 20:16:50 +0000 |
commit | 101ef8fff5eb3b130917ba8c8bfc0def91b6e423 (patch) | |
tree | 7d05001368da90cfbec3a15df396ef17532fc9cd /drivers/cpufreq | |
parent | 1e07bd20e4227a009101c8f5c5f3ed66b5ef30d3 (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.c | 3 |
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: |