[PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()

Jinjie Ruan posted 1 patch 2 weeks, 6 days ago
drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()
Posted by Jinjie Ruan 2 weeks, 6 days ago
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;
 
-- 
2.34.1
Re: [PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()
Posted by Jinjie Ruan 2 weeks, 3 days ago

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;
>
Re: [PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()
Posted by Rafael J. Wysocki 2 weeks, 3 days ago
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;
> >
Re: [PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()
Posted by Jinjie Ruan 2 weeks, 3 days ago

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;
>>>
Re: [PATCH v2] PM: EM: Fix wrong return value in mtk_cpufreq_get_cpu_power()
Posted by Lukasz Luba 2 weeks, 6 days ago

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>