[PATCH v2025.09.y 37/58] pmdomain: fix dereference before NULL check in genpd_get_from_provider
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Mar 13 06:25:21 PDT 2026
genpd_get_from_provider() dereferences genpdspec->np in the variable
declaration before checking whether genpdspec itself is NULL.
(cherry picked from commit de2124f33968f8167f5371e5f8d7f6b0f2563fc5)
Fixes: abf97f3993 ("pmdomain: look up pmdomain even if not have_genpd_providers")
Reported-by: GCC 14.2 -fanalyzer
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
Link: https://lore.barebox.org/20260216084253.3547270-4-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
drivers/base/power.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/base/power.c b/drivers/base/power.c
index 66ad6d05e815..b641e11ef3c3 100644
--- a/drivers/base/power.c
+++ b/drivers/base/power.c
@@ -255,13 +255,15 @@ static struct generic_pm_domain *genpd_get_from_provider(
struct of_phandle_args *genpdspec)
{
struct generic_pm_domain *genpd = ERR_PTR(-ENOENT);
- struct device_node *node = genpdspec->np;
struct of_genpd_provider *provider;
+ struct device_node *node;
int ret;
if (!genpdspec)
return ERR_PTR(-EINVAL);
+ node = genpdspec->np;
+
ret = of_device_ensure_probed(node);
if (ret) {
struct device_node *parent;
--
2.47.3
More information about the barebox
mailing list