Message ID | 20190216170623.12634-1-tiny.windzz@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | viresh kumar |
Headers | show |
Series | cpufreq: powernv: fix missing check of return value in init_powernv_pstates() | expand |
On Sat, Feb 16, 2019 at 12:06:23PM -0500, Yangtao Li wrote: > kmalloc() could fail, so insert a check of its return value. And > if it fails, returns -ENOMEM. > > And remove (struct pstate_idx_revmap_data *) to fix coccinelle WARNING > by the way. > > WARNING: casting value returned by memory allocation function to (struct > pstate_idx_revmap_data *) is useless. > > Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> > --- > drivers/cpufreq/powernv-cpufreq.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > Looks good to me. Thanks for fixing this.
On 16-02-19, 12:06, Yangtao Li wrote: > kmalloc() could fail, so insert a check of its return value. And > if it fails, returns -ENOMEM. > > And remove (struct pstate_idx_revmap_data *) to fix coccinelle WARNING > by the way. > > WARNING: casting value returned by memory allocation function to (struct > pstate_idx_revmap_data *) is useless. > > Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> > --- > drivers/cpufreq/powernv-cpufreq.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c > index 7e7ad3879c4e..d2230812fa4b 100644 > --- a/drivers/cpufreq/powernv-cpufreq.c > +++ b/drivers/cpufreq/powernv-cpufreq.c > @@ -244,6 +244,7 @@ static int init_powernv_pstates(void) > u32 len_ids, len_freqs; > u32 pstate_min, pstate_max, pstate_nominal; > u32 pstate_turbo, pstate_ultra_turbo; > + int rc = -ENODEV; > > power_mgt = of_find_node_by_path("/ibm,opal/power-mgt"); > if (!power_mgt) { > @@ -327,8 +328,11 @@ static int init_powernv_pstates(void) > powernv_freqs[i].frequency = freq * 1000; /* kHz */ > powernv_freqs[i].driver_data = id & 0xFF; > > - revmap_data = (struct pstate_idx_revmap_data *) > - kmalloc(sizeof(*revmap_data), GFP_KERNEL); > + revmap_data = kmalloc(sizeof(*revmap_data), GFP_KERNEL); > + if (!revmap_data) { > + rc = -ENOMEM; > + goto out; > + } > > revmap_data->pstate_id = id & 0xFF; > revmap_data->cpufreq_table_idx = i; > @@ -357,7 +361,7 @@ static int init_powernv_pstates(void) > return 0; > out: > of_node_put(power_mgt); > - return -ENODEV; > + return rc; > } > > /* Returns the CPU frequency corresponding to the pstate_id. */ Applied. Thanks.
diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c index 7e7ad3879c4e..d2230812fa4b 100644 --- a/drivers/cpufreq/powernv-cpufreq.c +++ b/drivers/cpufreq/powernv-cpufreq.c @@ -244,6 +244,7 @@ static int init_powernv_pstates(void) u32 len_ids, len_freqs; u32 pstate_min, pstate_max, pstate_nominal; u32 pstate_turbo, pstate_ultra_turbo; + int rc = -ENODEV; power_mgt = of_find_node_by_path("/ibm,opal/power-mgt"); if (!power_mgt) { @@ -327,8 +328,11 @@ static int init_powernv_pstates(void) powernv_freqs[i].frequency = freq * 1000; /* kHz */ powernv_freqs[i].driver_data = id & 0xFF; - revmap_data = (struct pstate_idx_revmap_data *) - kmalloc(sizeof(*revmap_data), GFP_KERNEL); + revmap_data = kmalloc(sizeof(*revmap_data), GFP_KERNEL); + if (!revmap_data) { + rc = -ENOMEM; + goto out; + } revmap_data->pstate_id = id & 0xFF; revmap_data->cpufreq_table_idx = i; @@ -357,7 +361,7 @@ static int init_powernv_pstates(void) return 0; out: of_node_put(power_mgt); - return -ENODEV; + return rc; } /* Returns the CPU frequency corresponding to the pstate_id. */
kmalloc() could fail, so insert a check of its return value. And if it fails, returns -ENOMEM. And remove (struct pstate_idx_revmap_data *) to fix coccinelle WARNING by the way. WARNING: casting value returned by memory allocation function to (struct pstate_idx_revmap_data *) is useless. Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> --- drivers/cpufreq/powernv-cpufreq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)