drivers: soc: xilinx: check return status of get_api_version()
authorJay Buddhabhatti <jay.buddhabhatti@amd.com>
Wed, 15 May 2024 11:23:45 +0000 (04:23 -0700)
committerMichal Simek <michal.simek@amd.com>
Mon, 3 Jun 2024 11:07:57 +0000 (13:07 +0200)
Currently return status is not getting checked for get_api_version
and because of that for x86 arch we are getting below smatch error.

    CC      drivers/soc/xilinx/zynqmp_power.o
drivers/soc/xilinx/zynqmp_power.c: In function 'zynqmp_pm_probe':
drivers/soc/xilinx/zynqmp_power.c:295:12: warning: 'pm_api_version' is
used uninitialized [-Wuninitialized]
    295 |         if (pm_api_version < ZYNQMP_PM_VERSION)
        |            ^
    CHECK   drivers/soc/xilinx/zynqmp_power.c
drivers/soc/xilinx/zynqmp_power.c:295 zynqmp_pm_probe() error:
uninitialized symbol 'pm_api_version'.

So, check return status of pm_get_api_version and return error in case
of failure to avoid checking uninitialized pm_api_version variable.

Fixes: b9b3a8be28b3 ("firmware: xilinx: Remove eemi ops for get_api_version")
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240515112345.24673-1-jay.buddhabhatti@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
drivers/soc/xilinx/zynqmp_power.c

index fced6bedca43810a6dacf0f53043ea21cc7359e9..411d33f2fb053bd298f9214020b7844041b4fea4 100644 (file)
@@ -288,7 +288,9 @@ static int zynqmp_pm_probe(struct platform_device *pdev)
        u32 pm_api_version, pm_family_code, pm_sub_family_code, node_id;
        struct mbox_client *client;
 
-       zynqmp_pm_get_api_version(&pm_api_version);
+       ret = zynqmp_pm_get_api_version(&pm_api_version);
+       if (ret)
+               return ret;
 
        /* Check PM API version number */
        if (pm_api_version < ZYNQMP_PM_VERSION)