[PATCH 04/12] pmdomain: fix dereference before NULL check in genpd_get_from_provider
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Feb 16 00:42:20 PST 2026
genpd_get_from_provider() dereferences genpdspec->np in the variable
declaration before checking whether genpdspec itself is NULL.
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>
---
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 543c85a3d9b8..936fc65ea8f8 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