[PATCH V3] cpufreq: Make cpufreq_generic_init() return void

Rafael J. Wysocki rjw at rjwysocki.net
Thu Jul 18 18:47:37 AEST 2019


On Tuesday, July 16, 2019 6:06:08 AM CEST Viresh Kumar wrote:
> It always returns 0 (success) and its return type should really be void.
> Over that, many drivers have added error handling code based on its
> return value, which is not required at all.
> 
> change its return type to void and update all the callers.
> 
> Signed-off-by: Viresh Kumar <viresh.kumar at linaro.org>
> ---
> V2->V3:
> - Update bmips cpufreq driver to avoid "warning: 'ret' may be used
>   uninitialized".
> - Build bot reported this issue almost after 4 days of posting this
>   patch, I was expecting this a lot earlier :)
> 
>  drivers/cpufreq/bmips-cpufreq.c     | 17 ++++++-----------
>  drivers/cpufreq/cpufreq.c           |  4 +---
>  drivers/cpufreq/davinci-cpufreq.c   |  3 ++-
>  drivers/cpufreq/imx6q-cpufreq.c     |  6 ++----
>  drivers/cpufreq/kirkwood-cpufreq.c  |  3 ++-
>  drivers/cpufreq/loongson1-cpufreq.c |  8 +++-----
>  drivers/cpufreq/loongson2_cpufreq.c |  3 ++-
>  drivers/cpufreq/maple-cpufreq.c     |  3 ++-
>  drivers/cpufreq/omap-cpufreq.c      | 15 +++++----------
>  drivers/cpufreq/pasemi-cpufreq.c    |  3 ++-
>  drivers/cpufreq/pmac32-cpufreq.c    |  3 ++-
>  drivers/cpufreq/pmac64-cpufreq.c    |  3 ++-
>  drivers/cpufreq/s3c2416-cpufreq.c   |  9 ++-------
>  drivers/cpufreq/s3c64xx-cpufreq.c   | 15 +++------------
>  drivers/cpufreq/s5pv210-cpufreq.c   |  3 ++-
>  drivers/cpufreq/sa1100-cpufreq.c    |  3 ++-
>  drivers/cpufreq/sa1110-cpufreq.c    |  3 ++-
>  drivers/cpufreq/spear-cpufreq.c     |  3 ++-
>  drivers/cpufreq/tegra20-cpufreq.c   |  8 +-------
>  include/linux/cpufreq.h             |  2 +-
>  20 files changed, 46 insertions(+), 71 deletions(-)
> 
> diff --git a/drivers/cpufreq/bmips-cpufreq.c b/drivers/cpufreq/bmips-cpufreq.c
> index 56a4ebbf00e0..f7c23fa468f0 100644
> --- a/drivers/cpufreq/bmips-cpufreq.c
> +++ b/drivers/cpufreq/bmips-cpufreq.c
> @@ -131,23 +131,18 @@ static int bmips_cpufreq_exit(struct cpufreq_policy *policy)
>  static int bmips_cpufreq_init(struct cpufreq_policy *policy)
>  {
>  	struct cpufreq_frequency_table *freq_table;
> -	int ret;
>  
>  	freq_table = bmips_cpufreq_get_freq_table(policy);
>  	if (IS_ERR(freq_table)) {
> -		ret = PTR_ERR(freq_table);
> -		pr_err("%s: couldn't determine frequency table (%d).\n",
> -			BMIPS_CPUFREQ_NAME, ret);
> -		return ret;
> +		pr_err("%s: couldn't determine frequency table (%ld).\n",
> +			BMIPS_CPUFREQ_NAME, PTR_ERR(freq_table));
> +		return PTR_ERR(freq_table);
>  	}
>  
> -	ret = cpufreq_generic_init(policy, freq_table, TRANSITION_LATENCY);
> -	if (ret)
> -		bmips_cpufreq_exit(policy);
> -	else
> -		pr_info("%s: registered\n", BMIPS_CPUFREQ_NAME);
> +	cpufreq_generic_init(policy, freq_table, TRANSITION_LATENCY);
> +	pr_info("%s: registered\n", BMIPS_CPUFREQ_NAME);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static struct cpufreq_driver bmips_cpufreq_driver = {
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 4d6043ee7834..8dda62367816 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -159,7 +159,7 @@ EXPORT_SYMBOL_GPL(arch_set_freq_scale);
>   * - set policies transition latency
>   * - policy->cpus with all possible CPUs
>   */
> -int cpufreq_generic_init(struct cpufreq_policy *policy,
> +void cpufreq_generic_init(struct cpufreq_policy *policy,
>  		struct cpufreq_frequency_table *table,
>  		unsigned int transition_latency)
>  {
> @@ -171,8 +171,6 @@ int cpufreq_generic_init(struct cpufreq_policy *policy,
>  	 * share the clock and voltage and clock.
>  	 */
>  	cpumask_setall(policy->cpus);
> -
> -	return 0;
>  }
>  EXPORT_SYMBOL_GPL(cpufreq_generic_init);
>  
> diff --git a/drivers/cpufreq/davinci-cpufreq.c b/drivers/cpufreq/davinci-cpufreq.c
> index 3de48ae60c29..297d23cad8b5 100644
> --- a/drivers/cpufreq/davinci-cpufreq.c
> +++ b/drivers/cpufreq/davinci-cpufreq.c
> @@ -90,7 +90,8 @@ static int davinci_cpu_init(struct cpufreq_policy *policy)
>  	 * Setting the latency to 2000 us to accommodate addition of drivers
>  	 * to pre/post change notification list.
>  	 */
> -	return cpufreq_generic_init(policy, freq_table, 2000 * 1000);
> +	cpufreq_generic_init(policy, freq_table, 2000 * 1000);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver davinci_driver = {
> diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
> index 47ccfa6b17b7..648a09a1778a 100644
> --- a/drivers/cpufreq/imx6q-cpufreq.c
> +++ b/drivers/cpufreq/imx6q-cpufreq.c
> @@ -190,14 +190,12 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
>  
>  static int imx6q_cpufreq_init(struct cpufreq_policy *policy)
>  {
> -	int ret;
> -
>  	policy->clk = clks[ARM].clk;
> -	ret = cpufreq_generic_init(policy, freq_table, transition_latency);
> +	cpufreq_generic_init(policy, freq_table, transition_latency);
>  	policy->suspend_freq = max_freq;
>  	dev_pm_opp_of_register_em(policy->cpus);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static struct cpufreq_driver imx6q_cpufreq_driver = {
> diff --git a/drivers/cpufreq/kirkwood-cpufreq.c b/drivers/cpufreq/kirkwood-cpufreq.c
> index 7ab564c1f7ae..cb74bdc5baaa 100644
> --- a/drivers/cpufreq/kirkwood-cpufreq.c
> +++ b/drivers/cpufreq/kirkwood-cpufreq.c
> @@ -85,7 +85,8 @@ static int kirkwood_cpufreq_target(struct cpufreq_policy *policy,
>  /* Module init and exit code */
>  static int kirkwood_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, kirkwood_freq_table, 5000);
> +	cpufreq_generic_init(policy, kirkwood_freq_table, 5000);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver kirkwood_cpufreq_driver = {
> diff --git a/drivers/cpufreq/loongson1-cpufreq.c b/drivers/cpufreq/loongson1-cpufreq.c
> index 21c9ce8526c0..0ea88778882a 100644
> --- a/drivers/cpufreq/loongson1-cpufreq.c
> +++ b/drivers/cpufreq/loongson1-cpufreq.c
> @@ -81,7 +81,7 @@ static int ls1x_cpufreq_init(struct cpufreq_policy *policy)
>  	struct device *cpu_dev = get_cpu_device(policy->cpu);
>  	struct cpufreq_frequency_table *freq_tbl;
>  	unsigned int pll_freq, freq;
> -	int steps, i, ret;
> +	int steps, i;
>  
>  	pll_freq = clk_get_rate(cpufreq->pll_clk) / 1000;
>  
> @@ -103,11 +103,9 @@ static int ls1x_cpufreq_init(struct cpufreq_policy *policy)
>  	freq_tbl[i].frequency = CPUFREQ_TABLE_END;
>  
>  	policy->clk = cpufreq->clk;
> -	ret = cpufreq_generic_init(policy, freq_tbl, 0);
> -	if (ret)
> -		kfree(freq_tbl);
> +	cpufreq_generic_init(policy, freq_tbl, 0);
>  
> -	return ret;
> +	return 0;
>  }
>  
>  static int ls1x_cpufreq_exit(struct cpufreq_policy *policy)
> diff --git a/drivers/cpufreq/loongson2_cpufreq.c b/drivers/cpufreq/loongson2_cpufreq.c
> index da344696beed..890813e0bb76 100644
> --- a/drivers/cpufreq/loongson2_cpufreq.c
> +++ b/drivers/cpufreq/loongson2_cpufreq.c
> @@ -95,7 +95,8 @@ static int loongson2_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  	}
>  
>  	policy->clk = cpuclk;
> -	return cpufreq_generic_init(policy, &loongson2_clockmod_table[0], 0);
> +	cpufreq_generic_init(policy, &loongson2_clockmod_table[0], 0);
> +	return 0;
>  }
>  
>  static int loongson2_cpufreq_exit(struct cpufreq_policy *policy)
> diff --git a/drivers/cpufreq/maple-cpufreq.c b/drivers/cpufreq/maple-cpufreq.c
> index f5220b3d4ec5..28d346062166 100644
> --- a/drivers/cpufreq/maple-cpufreq.c
> +++ b/drivers/cpufreq/maple-cpufreq.c
> @@ -140,7 +140,8 @@ static unsigned int maple_cpufreq_get_speed(unsigned int cpu)
>  
>  static int maple_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, maple_cpu_freqs, 12000);
> +	cpufreq_generic_init(policy, maple_cpu_freqs, 12000);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver maple_cpufreq_driver = {
> diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
> index 29643f06a3c3..8d14b42a8c6f 100644
> --- a/drivers/cpufreq/omap-cpufreq.c
> +++ b/drivers/cpufreq/omap-cpufreq.c
> @@ -122,23 +122,18 @@ static int omap_cpu_init(struct cpufreq_policy *policy)
>  			dev_err(mpu_dev,
>  				"%s: cpu%d: failed creating freq table[%d]\n",
>  				__func__, policy->cpu, result);
> -			goto fail;
> +			clk_put(policy->clk);
> +			return result;
>  		}
>  	}
>  
>  	atomic_inc_return(&freq_table_users);
>  
>  	/* FIXME: what's the actual transition time? */
> -	result = cpufreq_generic_init(policy, freq_table, 300 * 1000);
> -	if (!result) {
> -		dev_pm_opp_of_register_em(policy->cpus);
> -		return 0;
> -	}
> +	cpufreq_generic_init(policy, freq_table, 300 * 1000);
> +	dev_pm_opp_of_register_em(policy->cpus);
>  
> -	freq_table_free();
> -fail:
> -	clk_put(policy->clk);
> -	return result;
> +	return 0;
>  }
>  
>  static int omap_cpu_exit(struct cpufreq_policy *policy)
> diff --git a/drivers/cpufreq/pasemi-cpufreq.c b/drivers/cpufreq/pasemi-cpufreq.c
> index 6b1e4abe3248..93f39a1d4c3d 100644
> --- a/drivers/cpufreq/pasemi-cpufreq.c
> +++ b/drivers/cpufreq/pasemi-cpufreq.c
> @@ -196,7 +196,8 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  	policy->cur = pas_freqs[cur_astate].frequency;
>  	ppc_proc_freq = policy->cur * 1000ul;
>  
> -	return cpufreq_generic_init(policy, pas_freqs, get_gizmo_latency());
> +	cpufreq_generic_init(policy, pas_freqs, get_gizmo_latency());
> +	return 0;
>  
>  out_unmap_sdcpwr:
>  	iounmap(sdcpwr_mapbase);
> diff --git a/drivers/cpufreq/pmac32-cpufreq.c b/drivers/cpufreq/pmac32-cpufreq.c
> index 650104d729f3..73621bc11976 100644
> --- a/drivers/cpufreq/pmac32-cpufreq.c
> +++ b/drivers/cpufreq/pmac32-cpufreq.c
> @@ -372,7 +372,8 @@ static int pmac_cpufreq_target(	struct cpufreq_policy *policy,
>  
>  static int pmac_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, pmac_cpu_freqs, transition_latency);
> +	cpufreq_generic_init(policy, pmac_cpu_freqs, transition_latency);
> +	return 0;
>  }
>  
>  static u32 read_gpio(struct device_node *np)
> diff --git a/drivers/cpufreq/pmac64-cpufreq.c b/drivers/cpufreq/pmac64-cpufreq.c
> index 1af3492a000d..d7542a106e6b 100644
> --- a/drivers/cpufreq/pmac64-cpufreq.c
> +++ b/drivers/cpufreq/pmac64-cpufreq.c
> @@ -321,7 +321,8 @@ static unsigned int g5_cpufreq_get_speed(unsigned int cpu)
>  
>  static int g5_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, g5_cpu_freqs, transition_latency);
> +	cpufreq_generic_init(policy, g5_cpu_freqs, transition_latency);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver g5_cpufreq_driver = {
> diff --git a/drivers/cpufreq/s3c2416-cpufreq.c b/drivers/cpufreq/s3c2416-cpufreq.c
> index f7ff1ed7fef1..106910351c41 100644
> --- a/drivers/cpufreq/s3c2416-cpufreq.c
> +++ b/drivers/cpufreq/s3c2416-cpufreq.c
> @@ -447,21 +447,16 @@ static int s3c2416_cpufreq_driver_init(struct cpufreq_policy *policy)
>  	/* Datasheet says PLL stabalisation time must be at least 300us,
>  	 * so but add some fudge. (reference in LOCKCON0 register description)
>  	 */
> -	ret = cpufreq_generic_init(policy, s3c_freq->freq_table,
> +	cpufreq_generic_init(policy, s3c_freq->freq_table,
>  			(500 * 1000) + s3c_freq->regulator_latency);
> -	if (ret)
> -		goto err_freq_table;
> -
>  	register_reboot_notifier(&s3c2416_cpufreq_reboot_notifier);
>  
>  	return 0;
>  
> -err_freq_table:
>  #ifdef CONFIG_ARM_S3C2416_CPUFREQ_VCORESCALE
> -	regulator_put(s3c_freq->vddarm);
>  err_vddarm:
> -#endif
>  	clk_put(s3c_freq->armclk);
> +#endif
>  err_armclk:
>  	clk_put(s3c_freq->hclk);
>  err_hclk:
> diff --git a/drivers/cpufreq/s3c64xx-cpufreq.c b/drivers/cpufreq/s3c64xx-cpufreq.c
> index 37df2d892eb0..af0c00dabb22 100644
> --- a/drivers/cpufreq/s3c64xx-cpufreq.c
> +++ b/drivers/cpufreq/s3c64xx-cpufreq.c
> @@ -144,7 +144,6 @@ static void s3c64xx_cpufreq_config_regulator(void)
>  
>  static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
>  {
> -	int ret;
>  	struct cpufreq_frequency_table *freq;
>  
>  	if (policy->cpu != 0)
> @@ -165,8 +164,7 @@ static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
>  #ifdef CONFIG_REGULATOR
>  	vddarm = regulator_get(NULL, "vddarm");
>  	if (IS_ERR(vddarm)) {
> -		ret = PTR_ERR(vddarm);
> -		pr_err("Failed to obtain VDDARM: %d\n", ret);
> +		pr_err("Failed to obtain VDDARM: %ld\n", PTR_ERR(vddarm));
>  		pr_err("Only frequency scaling available\n");
>  		vddarm = NULL;
>  	} else {
> @@ -196,16 +194,9 @@ static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
>  	 * the PLLs, which we don't currently) is ~300us worst case,
>  	 * but add some fudge.
>  	 */
> -	ret = cpufreq_generic_init(policy, s3c64xx_freq_table,
> +	cpufreq_generic_init(policy, s3c64xx_freq_table,
>  			(500 * 1000) + regulator_latency);
> -	if (ret != 0) {
> -		pr_err("Failed to configure frequency table: %d\n",
> -		       ret);
> -		regulator_put(vddarm);
> -		clk_put(policy->clk);
> -	}
> -
> -	return ret;
> +	return 0;
>  }
>  
>  static struct cpufreq_driver s3c64xx_cpufreq_driver = {
> diff --git a/drivers/cpufreq/s5pv210-cpufreq.c b/drivers/cpufreq/s5pv210-cpufreq.c
> index e5cb17d4be7b..5d10030f2560 100644
> --- a/drivers/cpufreq/s5pv210-cpufreq.c
> +++ b/drivers/cpufreq/s5pv210-cpufreq.c
> @@ -541,7 +541,8 @@ static int s5pv210_cpu_init(struct cpufreq_policy *policy)
>  	s5pv210_dram_conf[1].freq = clk_get_rate(dmc1_clk);
>  
>  	policy->suspend_freq = SLEEP_FREQ;
> -	return cpufreq_generic_init(policy, s5pv210_freq_table, 40000);
> +	cpufreq_generic_init(policy, s5pv210_freq_table, 40000);
> +	return 0;
>  
>  out_dmc1:
>  	clk_put(dmc0_clk);
> diff --git a/drivers/cpufreq/sa1100-cpufreq.c b/drivers/cpufreq/sa1100-cpufreq.c
> index ab5cab93e638..5c075ef6adc0 100644
> --- a/drivers/cpufreq/sa1100-cpufreq.c
> +++ b/drivers/cpufreq/sa1100-cpufreq.c
> @@ -181,7 +181,8 @@ static int sa1100_target(struct cpufreq_policy *policy, unsigned int ppcr)
>  
>  static int __init sa1100_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, sa11x0_freq_table, 0);
> +	cpufreq_generic_init(policy, sa11x0_freq_table, 0);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver sa1100_driver __refdata = {
> diff --git a/drivers/cpufreq/sa1110-cpufreq.c b/drivers/cpufreq/sa1110-cpufreq.c
> index dab54e051c0e..d9d04d935b3a 100644
> --- a/drivers/cpufreq/sa1110-cpufreq.c
> +++ b/drivers/cpufreq/sa1110-cpufreq.c
> @@ -303,7 +303,8 @@ static int sa1110_target(struct cpufreq_policy *policy, unsigned int ppcr)
>  
>  static int __init sa1110_cpu_init(struct cpufreq_policy *policy)
>  {
> -	return cpufreq_generic_init(policy, sa11x0_freq_table, 0);
> +	cpufreq_generic_init(policy, sa11x0_freq_table, 0);
> +	return 0;
>  }
>  
>  /* sa1110_driver needs __refdata because it must remain after init registers
> diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c
> index 4074e2615522..73bd8dc47074 100644
> --- a/drivers/cpufreq/spear-cpufreq.c
> +++ b/drivers/cpufreq/spear-cpufreq.c
> @@ -153,8 +153,9 @@ static int spear_cpufreq_target(struct cpufreq_policy *policy,
>  static int spear_cpufreq_init(struct cpufreq_policy *policy)
>  {
>  	policy->clk = spear_cpufreq.clk;
> -	return cpufreq_generic_init(policy, spear_cpufreq.freq_tbl,
> +	cpufreq_generic_init(policy, spear_cpufreq.freq_tbl,
>  			spear_cpufreq.transition_latency);
> +	return 0;
>  }
>  
>  static struct cpufreq_driver spear_cpufreq_driver = {
> diff --git a/drivers/cpufreq/tegra20-cpufreq.c b/drivers/cpufreq/tegra20-cpufreq.c
> index 3c32cc7b0671..f84ecd22f488 100644
> --- a/drivers/cpufreq/tegra20-cpufreq.c
> +++ b/drivers/cpufreq/tegra20-cpufreq.c
> @@ -118,17 +118,11 @@ static int tegra_target(struct cpufreq_policy *policy, unsigned int index)
>  static int tegra_cpu_init(struct cpufreq_policy *policy)
>  {
>  	struct tegra20_cpufreq *cpufreq = cpufreq_get_driver_data();
> -	int ret;
>  
>  	clk_prepare_enable(cpufreq->cpu_clk);
>  
>  	/* FIXME: what's the actual transition time? */
> -	ret = cpufreq_generic_init(policy, freq_table, 300 * 1000);
> -	if (ret) {
> -		clk_disable_unprepare(cpufreq->cpu_clk);
> -		return ret;
> -	}
> -
> +	cpufreq_generic_init(policy, freq_table, 300 * 1000);
>  	policy->clk = cpufreq->cpu_clk;
>  	policy->suspend_freq = freq_table[0].frequency;
>  	return 0;
> diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
> index d757a56a74dc..536a049d7ecc 100644
> --- a/include/linux/cpufreq.h
> +++ b/include/linux/cpufreq.h
> @@ -992,7 +992,7 @@ extern struct freq_attr *cpufreq_generic_attr[];
>  int cpufreq_table_validate_and_sort(struct cpufreq_policy *policy);
>  
>  unsigned int cpufreq_generic_get(unsigned int cpu);
> -int cpufreq_generic_init(struct cpufreq_policy *policy,
> +void cpufreq_generic_init(struct cpufreq_policy *policy,
>  		struct cpufreq_frequency_table *table,
>  		unsigned int transition_latency);
>  #endif /* _LINUX_CPUFREQ_H */
> 

Applied, thanks!





More information about the Linuxppc-dev mailing list