cpufreq: Make cpufreq_unregister_driver() return void
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 7 Feb 2023 19:59:09 +0000 (20:59 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 9 Feb 2023 19:19:18 +0000 (20:19 +0100)
All but a few drivers ignore the return value of
cpufreq_unregister_driver(). Those few that don't only call it after
cpufreq_register_driver() succeeded, in which case the call doesn't
fail.

Make the function return no value and add a WARN_ON for the case that
the function is called in an invalid situation (i.e. without a previous
successful call to cpufreq_register_driver()).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Florian Fainelli <f.fainelli@gmail.com> # brcmstb-avs-cpufreq.c
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/amd-pstate.c
drivers/cpufreq/brcmstb-avs-cpufreq.c
drivers/cpufreq/cpufreq.c
drivers/cpufreq/davinci-cpufreq.c
drivers/cpufreq/mediatek-cpufreq-hw.c
drivers/cpufreq/omap-cpufreq.c
drivers/cpufreq/qcom-cpufreq-hw.c
include/linux/cpufreq.h

index 168a28b..70debd5 100644 (file)
@@ -831,7 +831,7 @@ static void amd_pstate_driver_cleanup(void)
 
 static int amd_pstate_update_status(const char *buf, size_t size)
 {
-       int ret;
+       int ret = 0;
        int mode_idx;
 
        if (size > 7 || size < 6)
@@ -844,7 +844,7 @@ static int amd_pstate_update_status(const char *buf, size_t size)
                        return -EINVAL;
                if (cppc_state == AMD_PSTATE_ACTIVE)
                        return -EBUSY;
-               ret = cpufreq_unregister_driver(current_pstate_driver);
+               cpufreq_unregister_driver(current_pstate_driver);
                amd_pstate_driver_cleanup();
                break;
        case AMD_PSTATE_PASSIVE:
index 4153150..ffea640 100644 (file)
@@ -751,10 +751,7 @@ static int brcm_avs_cpufreq_probe(struct platform_device *pdev)
 
 static int brcm_avs_cpufreq_remove(struct platform_device *pdev)
 {
-       int ret;
-
-       ret = cpufreq_unregister_driver(&brcm_avs_driver);
-       WARN_ON(ret);
+       cpufreq_unregister_driver(&brcm_avs_driver);
 
        brcm_avs_prepare_uninit(pdev);
 
index 7e56a42..85a0bea 100644 (file)
@@ -2904,12 +2904,12 @@ EXPORT_SYMBOL_GPL(cpufreq_register_driver);
  * Returns zero if successful, and -EINVAL if the cpufreq_driver is
  * currently not initialised.
  */
-int cpufreq_unregister_driver(struct cpufreq_driver *driver)
+void cpufreq_unregister_driver(struct cpufreq_driver *driver)
 {
        unsigned long flags;
 
-       if (!cpufreq_driver || (driver != cpufreq_driver))
-               return -EINVAL;
+       if (WARN_ON(!cpufreq_driver || (driver != cpufreq_driver)))
+               return;
 
        pr_debug("unregistering driver %s\n", driver->name);
 
@@ -2926,8 +2926,6 @@ int cpufreq_unregister_driver(struct cpufreq_driver *driver)
 
        write_unlock_irqrestore(&cpufreq_driver_lock, flags);
        cpus_read_unlock();
-
-       return 0;
 }
 EXPORT_SYMBOL_GPL(cpufreq_unregister_driver);
 
index 9e97f60..2d23015 100644 (file)
@@ -138,7 +138,9 @@ static int __exit davinci_cpufreq_remove(struct platform_device *pdev)
        if (cpufreq.asyncclk)
                clk_put(cpufreq.asyncclk);
 
-       return cpufreq_unregister_driver(&davinci_driver);
+       cpufreq_unregister_driver(&davinci_driver);
+
+       return 0;
 }
 
 static struct platform_driver davinci_cpufreq_driver = {
index f803397..f21a9e3 100644 (file)
@@ -317,7 +317,9 @@ static int mtk_cpufreq_hw_driver_probe(struct platform_device *pdev)
 
 static int mtk_cpufreq_hw_driver_remove(struct platform_device *pdev)
 {
-       return cpufreq_unregister_driver(&cpufreq_mtk_hw_driver);
+       cpufreq_unregister_driver(&cpufreq_mtk_hw_driver);
+
+       return 0;
 }
 
 static const struct of_device_id mtk_cpufreq_hw_match[] = {
index 1b50df0..81649a1 100644 (file)
@@ -184,7 +184,9 @@ static int omap_cpufreq_probe(struct platform_device *pdev)
 
 static int omap_cpufreq_remove(struct platform_device *pdev)
 {
-       return cpufreq_unregister_driver(&omap_driver);
+       cpufreq_unregister_driver(&omap_driver);
+
+       return 0;
 }
 
 static struct platform_driver omap_cpufreq_platdrv = {
index 957cf6b..b6227fa 100644 (file)
@@ -768,7 +768,9 @@ of_exit:
 
 static int qcom_cpufreq_hw_driver_remove(struct platform_device *pdev)
 {
-       return cpufreq_unregister_driver(&cpufreq_qcom_hw_driver);
+       cpufreq_unregister_driver(&cpufreq_qcom_hw_driver);
+
+       return 0;
 }
 
 static struct platform_driver qcom_cpufreq_hw_driver = {
index 6a94a6e..6562323 100644 (file)
@@ -448,7 +448,7 @@ struct cpufreq_driver {
 #define CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING      BIT(6)
 
 int cpufreq_register_driver(struct cpufreq_driver *driver_data);
-int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
+void cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
 
 bool cpufreq_driver_test_flags(u16 flags);
 const char *cpufreq_get_current_driver(void);