Message ID | 20241104113615.1397410-1-ruanjinjie@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power() | expand |
On 11/4/24 11:36, Jinjie Ruan wrote: > mtk_cpufreq_get_cpu_power() return 0 if the policy is NULL. Then in > em_create_perf_table(), the later zero check for power is not invalid > as power is uninitialized. As Lukasz suggested, it must return -EINVAL when > the 'policy' is not found. So return -EINVAL to fix it. > > Cc: stable@vger.kernel.org > Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") > Suggested-by: Lukasz Luba <lukasz.luba@arm.com> > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > --- > v2: > - Fix the driver instead of em_create_perf_table() as suggested. > - Update the commit message. > - Add Suggested-by. > --- > drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c > index 8925e096d5b9..aeb5e6304542 100644 > --- a/drivers/cpufreq/mediatek-cpufreq-hw.c > +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c > @@ -62,7 +62,7 @@ mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, > > policy = cpufreq_cpu_get_raw(cpu_dev->id); > if (!policy) > - return 0; > + return -EINVAL; > > data = policy->driver_data; > LGTM, Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
On 2024/11/4 19:36, Jinjie Ruan wrote: > mtk_cpufreq_get_cpu_power() return 0 if the policy is NULL. Then in > em_create_perf_table(), the later zero check for power is not invalid > as power is uninitialized. As Lukasz suggested, it must return -EINVAL when > the 'policy' is not found. So return -EINVAL to fix it. > > Cc: stable@vger.kernel.org > Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") > Suggested-by: Lukasz Luba <lukasz.luba@arm.com> > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> Hi, could this be merged. > --- > v2: > - Fix the driver instead of em_create_perf_table() as suggested. > - Update the commit message. > - Add Suggested-by. > --- > drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c > index 8925e096d5b9..aeb5e6304542 100644 > --- a/drivers/cpufreq/mediatek-cpufreq-hw.c > +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c > @@ -62,7 +62,7 @@ mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, > > policy = cpufreq_cpu_get_raw(cpu_dev->id); > if (!policy) > - return 0; > + return -EINVAL; > > data = policy->driver_data; >
On Thu, Nov 7, 2024 at 2:50 AM Jinjie Ruan <ruanjinjie@huawei.com> wrote: > > > > On 2024/11/4 19:36, Jinjie Ruan wrote: > > mtk_cpufreq_get_cpu_power() return 0 if the policy is NULL. Then in > > em_create_perf_table(), the later zero check for power is not invalid > > as power is uninitialized. As Lukasz suggested, it must return -EINVAL when > > the 'policy' is not found. So return -EINVAL to fix it. > > > > Cc: stable@vger.kernel.org > > Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") > > Suggested-by: Lukasz Luba <lukasz.luba@arm.com> > > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > > Hi, could this be merged. It's for Viresh to take care of and please replace the "PM: EM:" prefix in the subject with the proper cpufreq driver one. Thanks! > > --- > > v2: > > - Fix the driver instead of em_create_perf_table() as suggested. > > - Update the commit message. > > - Add Suggested-by. > > --- > > drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c > > index 8925e096d5b9..aeb5e6304542 100644 > > --- a/drivers/cpufreq/mediatek-cpufreq-hw.c > > +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c > > @@ -62,7 +62,7 @@ mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, > > > > policy = cpufreq_cpu_get_raw(cpu_dev->id); > > if (!policy) > > - return 0; > > + return -EINVAL; > > > > data = policy->driver_data; > >
On 2024/11/7 18:58, Rafael J. Wysocki wrote: > On Thu, Nov 7, 2024 at 2:50 AM Jinjie Ruan <ruanjinjie@huawei.com> wrote: >> >> >> >> On 2024/11/4 19:36, Jinjie Ruan wrote: >>> mtk_cpufreq_get_cpu_power() return 0 if the policy is NULL. Then in >>> em_create_perf_table(), the later zero check for power is not invalid >>> as power is uninitialized. As Lukasz suggested, it must return -EINVAL when >>> the 'policy' is not found. So return -EINVAL to fix it. >>> >>> Cc: stable@vger.kernel.org >>> Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") >>> Suggested-by: Lukasz Luba <lukasz.luba@arm.com> >>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> >> >> Hi, could this be merged. > > It's for Viresh to take care of and please replace the "PM: EM:" > prefix in the subject with the proper cpufreq driver one. Thank you for your kind reminder. > > Thanks! > >>> --- >>> v2: >>> - Fix the driver instead of em_create_perf_table() as suggested. >>> - Update the commit message. >>> - Add Suggested-by. >>> --- >>> drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c >>> index 8925e096d5b9..aeb5e6304542 100644 >>> --- a/drivers/cpufreq/mediatek-cpufreq-hw.c >>> +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c >>> @@ -62,7 +62,7 @@ mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, >>> >>> policy = cpufreq_cpu_get_raw(cpu_dev->id); >>> if (!policy) >>> - return 0; >>> + return -EINVAL; >>> >>> data = policy->driver_data; >>>
diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c index 8925e096d5b9..aeb5e6304542 100644 --- a/drivers/cpufreq/mediatek-cpufreq-hw.c +++ b/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -62,7 +62,7 @@ mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, policy = cpufreq_cpu_get_raw(cpu_dev->id); if (!policy) - return 0; + return -EINVAL; data = policy->driver_data;
mtk_cpufreq_get_cpu_power() return 0 if the policy is NULL. Then in em_create_perf_table(), the later zero check for power is not invalid as power is uninitialized. As Lukasz suggested, it must return -EINVAL when the 'policy' is not found. So return -EINVAL to fix it. Cc: stable@vger.kernel.org Fixes: 4855e26bcf4d ("cpufreq: mediatek-hw: Add support for CPUFREQ HW") Suggested-by: Lukasz Luba <lukasz.luba@arm.com> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> --- v2: - Fix the driver instead of em_create_perf_table() as suggested. - Update the commit message. - Add Suggested-by. --- drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)