venus: pm_helpers: Fix error check in vcodec_domains_get()
authorTang Bin <tangbin@cmss.chinamobile.com>
Tue, 13 Sep 2022 06:37:00 +0000 (14:37 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:07 +0000 (13:14 +0100)
[ Upstream commit 0f6e8d8c94a82e85e1b9b62a7671990740dc6f70 ]

In the function vcodec_domains_get(), dev_pm_domain_attach_by_name()
may return NULL in some cases, so IS_ERR() doesn't meet the
requirements. Thus fix it.

Fixes: 7482a983dea3 ("media: venus: redesign clocks and pm domains control")
Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/venus/pm_helpers.c

index 03fc82c..055513a 100644 (file)
@@ -869,8 +869,8 @@ static int vcodec_domains_get(struct venus_core *core)
        for (i = 0; i < res->vcodec_pmdomains_num; i++) {
                pd = dev_pm_domain_attach_by_name(dev,
                                                  res->vcodec_pmdomains[i]);
-               if (IS_ERR(pd))
-                       return PTR_ERR(pd);
+               if (IS_ERR_OR_NULL(pd))
+                       return PTR_ERR(pd) ? : -ENODATA;
                core->pmdomains[i] = pd;
        }