lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 18 Jan 2021 03:55:14 +0300 From: Dmitry Osipenko <digetx@...il.com> To: Thierry Reding <thierry.reding@...il.com>, Jonathan Hunter <jonathanh@...dia.com>, Mark Brown <broonie@...nel.org>, Liam Girdwood <lgirdwood@...il.com>, Ulf Hansson <ulf.hansson@...aro.org>, Peter Geis <pgwipeout@...il.com>, Nicolas Chauvet <kwizart@...il.com>, "Rafael J. Wysocki" <rjw@...ysocki.net>, Kevin Hilman <khilman@...nel.org>, Peter De Schrijver <pdeschrijver@...dia.com>, Viresh Kumar <vireshk@...nel.org>, Stephen Boyd <sboyd@...nel.org>, Nishanth Menon <nm@...com>, Yangtao Li <tiny.windzz@...il.com>, Matt Merhar <mattmerhar@...tonmail.com> Cc: linux-kernel@...r.kernel.org, linux-tegra@...r.kernel.org, linux-pm@...r.kernel.org Subject: [PATCH v3 02/12] opp: Filter out OPPs based on availability of a required-OPP A required OPP may not be available, and thus, all OPPs which are using this required OPP should be unavailable too. Tested-by: Peter Geis <pgwipeout@...il.com> Tested-by: Nicolas Chauvet <kwizart@...il.com> Tested-by: Matt Merhar <mattmerhar@...tonmail.com> Signed-off-by: Dmitry Osipenko <digetx@...il.com> --- drivers/opp/core.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 48618ff3e99e..7b4d07279638 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -1522,6 +1522,7 @@ int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, struct opp_table *opp_table, bool rate_not_available) { struct list_head *head; + unsigned int i; int ret; mutex_lock(&opp_table->lock); @@ -1547,6 +1548,16 @@ int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, __func__, new_opp->rate); } + for (i = 0; i < opp_table->required_opp_count; i++) { + if (new_opp->required_opps[i]->available) + continue; + + new_opp->available = false; + dev_warn(dev, "%s: OPP not supported by required OPP %pOF (%lu)\n", + __func__, new_opp->required_opps[i]->np, new_opp->rate); + break; + } + return 0; } -- 2.29.2
Powered by blists - more mailing lists