cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
authorAlexandra Diupina <adiupina@astralinux.ru>
Tue, 5 Dec 2023 15:12:20 +0000 (18:12 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:14 +0000 (15:35 -0800)
[ Upstream commit c4a5118a3ae1eadc687d84eef9431f9e13eb015c ]

devm_of_clk_add_hw_provider() may return an errno, so
add a return value check

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 8410e7f3b31e ("cpufreq: scmi: Fix OPP addition failure with a dummy clock provider")
Signed-off-by: Alexandra Diupina <adiupina@astralinux.ru>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/cpufreq/scmi-cpufreq.c

index f34e638..028df8a 100644 (file)
@@ -310,8 +310,11 @@ static int scmi_cpufreq_probe(struct scmi_device *sdev)
 
 #ifdef CONFIG_COMMON_CLK
        /* dummy clock provider as needed by OPP if clocks property is used */
-       if (of_property_present(dev->of_node, "#clock-cells"))
-               devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, NULL);
+       if (of_property_present(dev->of_node, "#clock-cells")) {
+               ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, NULL);
+               if (ret)
+                       return dev_err_probe(dev, ret, "%s: registering clock provider failed\n", __func__);
+       }
 #endif
 
        ret = cpufreq_register_driver(&scmi_cpufreq_driver);