diff options
author | Samuel Holland <samuel@sholland.org> | 2021-09-28 23:42:45 -0500 |
---|---|---|
committer | Chanwoo Choi <cw00.choi@samsung.com> | 2021-10-27 14:22:12 +0900 |
commit | 5cf79c293821d12fd88dee901692cd404247782e (patch) | |
tree | 9286f02a87eeca28f1b7e819125fa43b30e8f5ce /drivers/devfreq | |
parent | 14714135a8358830ccd156c335fe6447e7e6e923 (diff) | |
download | linux-5cf79c293821d12fd88dee901692cd404247782e.tar.bz2 |
PM / devfreq: Strengthen check for freq_table
Since commit ea572f816032 ("PM / devfreq: Change return type of
devfreq_set_freq_table()"), all devfreq devices are expected to have a
valid freq_table. The devfreq core unconditionally dereferences
freq_table in the sysfs code and in get_freq_range().
Therefore, we need to ensure that freq_table is both non-null and
non-empty (length is > 0). If either check fails, replace the table
using set_freq_table() or return the error.
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Diffstat (limited to 'drivers/devfreq')
-rw-r--r-- | drivers/devfreq/devfreq.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 85faa7a5c7d1..06333d430382 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -827,7 +827,7 @@ struct devfreq *devfreq_add_device(struct device *dev, goto err_dev; } - if (!devfreq->profile->max_state && !devfreq->profile->freq_table) { + if (!devfreq->profile->max_state || !devfreq->profile->freq_table) { mutex_unlock(&devfreq->lock); err = set_freq_table(devfreq); if (err < 0) |