diff mbox series

[-stable] MIPS: Fix build for LTS kernel caused by backporting lpj adjustment

Message ID 1594892369-28060-1-git-send-email-chenhc@lemote.com (mailing list archive)
State Not Applicable
Headers show
Series [-stable] MIPS: Fix build for LTS kernel caused by backporting lpj adjustment | expand

Commit Message

Huacai Chen July 16, 2020, 9:39 a.m. UTC
Commit ed26aacfb5f71eecb20a ("mips: Add udelay lpj numbers adjustment")
has backported to 4.4~5.4, but the "struct cpufreq_freqs" (and also the
cpufreq notifier machanism) of 4.4~4.19 are different from the upstream
kernel. These differences cause build errors, and this patch can fix the
build.

Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Stable <stable@vger.kernel.org> # 4.4/4.9/4.14/4.19
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
 arch/mips/kernel/time.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

Comments

Huacai Chen July 19, 2020, 3:24 a.m. UTC | #1
Hi, Serge,

Could you please have a look at this patch?

Huacai

On Thu, Jul 16, 2020 at 5:37 PM Huacai Chen <chenhc@lemote.com> wrote:
>
> Commit ed26aacfb5f71eecb20a ("mips: Add udelay lpj numbers adjustment")
> has backported to 4.4~5.4, but the "struct cpufreq_freqs" (and also the
> cpufreq notifier machanism) of 4.4~4.19 are different from the upstream
> kernel. These differences cause build errors, and this patch can fix the
> build.
>
> Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Stable <stable@vger.kernel.org> # 4.4/4.9/4.14/4.19
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
>  arch/mips/kernel/time.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
> index b7f7e08..b15ee12 100644
> --- a/arch/mips/kernel/time.c
> +++ b/arch/mips/kernel/time.c
> @@ -40,10 +40,8 @@ static unsigned long glb_lpj_ref_freq;
>  static int cpufreq_callback(struct notifier_block *nb,
>                             unsigned long val, void *data)
>  {
> -       struct cpufreq_freqs *freq = data;
> -       struct cpumask *cpus = freq->policy->cpus;
> -       unsigned long lpj;
>         int cpu;
> +       struct cpufreq_freqs *freq = data;
>
>         /*
>          * Skip lpj numbers adjustment if the CPU-freq transition is safe for
> @@ -64,6 +62,7 @@ static int cpufreq_callback(struct notifier_block *nb,
>                 }
>         }
>
> +       cpu = freq->cpu;
>         /*
>          * Adjust global lpj variable and per-CPU udelay_val number in
>          * accordance with the new CPU frequency.
> @@ -74,12 +73,8 @@ static int cpufreq_callback(struct notifier_block *nb,
>                                                 glb_lpj_ref_freq,
>                                                 freq->new);
>
> -               for_each_cpu(cpu, cpus) {
> -                       lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
> -                                           per_cpu(pcp_lpj_ref_freq, cpu),
> -                                           freq->new);
> -                       cpu_data[cpu].udelay_val = (unsigned int)lpj;
> -               }
> +               cpu_data[cpu].udelay_val = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
> +                                          per_cpu(pcp_lpj_ref_freq, cpu), freq->new);
>         }
>
>         return NOTIFY_OK;
> --
> 2.7.0
>
Jiaxun Yang July 19, 2020, 2:51 p.m. UTC | #2
在 2020/7/19 上午11:24, Huacai Chen 写道:
> Hi, Serge,
>
> Could you please have a look at this patch?


+ Gregkh

This is urgent for next stable release, please take a look.

Thanks


>
> Huacai
>
> On Thu, Jul 16, 2020 at 5:37 PM Huacai Chen <chenhc@lemote.com> wrote:
>> Commit ed26aacfb5f71eecb20a ("mips: Add udelay lpj numbers adjustment")
>> has backported to 4.4~5.4, but the "struct cpufreq_freqs" (and also the
>> cpufreq notifier machanism) of 4.4~4.19 are different from the upstream
>> kernel. These differences cause build errors, and this patch can fix the
>> build.
>>
>> Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>
>> Cc: Stable <stable@vger.kernel.org> # 4.4/4.9/4.14/4.19
>> Signed-off-by: Huacai Chen <chenhc@lemote.com>
>> ---
>>   arch/mips/kernel/time.c | 13 ++++---------
>>   1 file changed, 4 insertions(+), 9 deletions(-)
>>
>> diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
>> index b7f7e08..b15ee12 100644
>> --- a/arch/mips/kernel/time.c
>> +++ b/arch/mips/kernel/time.c
>> @@ -40,10 +40,8 @@ static unsigned long glb_lpj_ref_freq;
>>   static int cpufreq_callback(struct notifier_block *nb,
>>                              unsigned long val, void *data)
>>   {
>> -       struct cpufreq_freqs *freq = data;
>> -       struct cpumask *cpus = freq->policy->cpus;
>> -       unsigned long lpj;
>>          int cpu;
>> +       struct cpufreq_freqs *freq = data;
>>
>>          /*
>>           * Skip lpj numbers adjustment if the CPU-freq transition is safe for
>> @@ -64,6 +62,7 @@ static int cpufreq_callback(struct notifier_block *nb,
>>                  }
>>          }
>>
>> +       cpu = freq->cpu;
>>          /*
>>           * Adjust global lpj variable and per-CPU udelay_val number in
>>           * accordance with the new CPU frequency.
>> @@ -74,12 +73,8 @@ static int cpufreq_callback(struct notifier_block *nb,
>>                                                  glb_lpj_ref_freq,
>>                                                  freq->new);
>>
>> -               for_each_cpu(cpu, cpus) {
>> -                       lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
>> -                                           per_cpu(pcp_lpj_ref_freq, cpu),
>> -                                           freq->new);
>> -                       cpu_data[cpu].udelay_val = (unsigned int)lpj;
>> -               }
>> +               cpu_data[cpu].udelay_val = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
>> +                                          per_cpu(pcp_lpj_ref_freq, cpu), freq->new);
>>          }
>>
>>          return NOTIFY_OK;
>> --
>> 2.7.0
>>
Greg Kroah-Hartman July 19, 2020, 3:13 p.m. UTC | #3
On Sun, Jul 19, 2020 at 10:51:11PM +0800, Jiaxun Yang wrote:
> 
> 在 2020/7/19 上午11:24, Huacai Chen 写道:
> > Hi, Serge,
> > 
> > Could you please have a look at this patch?
> 
> 
> + Gregkh
> 
> This is urgent for next stable release, please take a look.

Relax, it was only sent 3 days ago, we will get to this...

Also, why was this not caught by any of the testing systems that we
have?  That might be good to determine so we don't mess up again in the
future.

thanks,

greg k-h
Huacai Chen July 20, 2020, 1:42 a.m. UTC | #4
Hi, Greg,

On Sun, Jul 19, 2020 at 11:13 PM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Sun, Jul 19, 2020 at 10:51:11PM +0800, Jiaxun Yang wrote:
> >
> > 在 2020/7/19 上午11:24, Huacai Chen 写道:
> > > Hi, Serge,
> > >
> > > Could you please have a look at this patch?
> >
> >
> > + Gregkh
> >
> > This is urgent for next stable release, please take a look.
>
> Relax, it was only sent 3 days ago, we will get to this...
>
> Also, why was this not caught by any of the testing systems that we
> have?  That might be good to determine so we don't mess up again in the
> future.
I think that is because CPUFREQ is disabled by default on MIPS.

Huacai

>
> thanks,
>
> greg k-h
Jiaxun Yang July 20, 2020, 4:58 a.m. UTC | #5
在 2020/7/20 上午9:42, Huacai Chen 写道:
> Hi, Greg,
>
> On Sun, Jul 19, 2020 at 11:13 PM Greg KH <gregkh@linuxfoundation.org> wrote:
>> On Sun, Jul 19, 2020 at 10:51:11PM +0800, Jiaxun Yang wrote:
>>> 在 2020/7/19 上午11:24, Huacai Chen 写道:
>>>> Hi, Serge,
>>>>
>>>> Could you please have a look at this patch?
>>>
>>> + Gregkh
>>>
>>> This is urgent for next stable release, please take a look.
>> Relax, it was only sent 3 days ago, we will get to this...


Ahh, sorry for the rush~


>>
>> Also, why was this not caught by any of the testing systems that we
>> have?  That might be good to determine so we don't mess up again in the
>> future.
> I think that is because CPUFREQ is disabled by default on MIPS.


Yeah, I'm working with kernel-ci to get more config covered.

Thanks.

- Jiaxun


>
> Huacai
>
>> thanks,
>>
>> greg k-h
Serge Semin July 20, 2020, 8:54 p.m. UTC | #6
Hello Huacai,

Thanks for the fix. The patch looks good to me except a small cleanup
comment.

On Thu, Jul 16, 2020 at 05:39:29PM +0800, Huacai Chen wrote:
> Commit ed26aacfb5f71eecb20a ("mips: Add udelay lpj numbers adjustment")
> has backported to 4.4~5.4, but the "struct cpufreq_freqs" (and also the
> cpufreq notifier machanism) of 4.4~4.19 are different from the upstream
> kernel. These differences cause build errors, and this patch can fix the
> build.
> 
> Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Stable <stable@vger.kernel.org> # 4.4/4.9/4.14/4.19
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
>  arch/mips/kernel/time.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
> index b7f7e08..b15ee12 100644
> --- a/arch/mips/kernel/time.c
> +++ b/arch/mips/kernel/time.c
> @@ -40,10 +40,8 @@ static unsigned long glb_lpj_ref_freq;
>  static int cpufreq_callback(struct notifier_block *nb,
>  			    unsigned long val, void *data)
>  {
> -	struct cpufreq_freqs *freq = data;
> -	struct cpumask *cpus = freq->policy->cpus;
> -	unsigned long lpj;
>  	int cpu;
> +	struct cpufreq_freqs *freq = data;

Why do you want to rearrange the cpu and freq variables declarations?
IMO the order should be left as before since the change doesn't really
make the code looking or working any better. If so the change is unneeded.
Moreover reverse xmas tree-like variables declaration looks neater than any
other.

After fixing that feel free to add

Reviewed-by: Serge Semin <fancer.lancer@gmail.com>

-Sergey

>  
>  	/*
>  	 * Skip lpj numbers adjustment if the CPU-freq transition is safe for
> @@ -64,6 +62,7 @@ static int cpufreq_callback(struct notifier_block *nb,
>  		}
>  	}
>  
> +	cpu = freq->cpu;
>  	/*
>  	 * Adjust global lpj variable and per-CPU udelay_val number in
>  	 * accordance with the new CPU frequency.
> @@ -74,12 +73,8 @@ static int cpufreq_callback(struct notifier_block *nb,
>  						glb_lpj_ref_freq,
>  						freq->new);
>  
> -		for_each_cpu(cpu, cpus) {
> -			lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
> -					    per_cpu(pcp_lpj_ref_freq, cpu),
> -					    freq->new);
> -			cpu_data[cpu].udelay_val = (unsigned int)lpj;
> -		}
> +		cpu_data[cpu].udelay_val = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
> +					   per_cpu(pcp_lpj_ref_freq, cpu), freq->new);
>  	}
>  
>  	return NOTIFY_OK;
> -- 
> 2.7.0
>
diff mbox series

Patch

diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index b7f7e08..b15ee12 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -40,10 +40,8 @@  static unsigned long glb_lpj_ref_freq;
 static int cpufreq_callback(struct notifier_block *nb,
 			    unsigned long val, void *data)
 {
-	struct cpufreq_freqs *freq = data;
-	struct cpumask *cpus = freq->policy->cpus;
-	unsigned long lpj;
 	int cpu;
+	struct cpufreq_freqs *freq = data;
 
 	/*
 	 * Skip lpj numbers adjustment if the CPU-freq transition is safe for
@@ -64,6 +62,7 @@  static int cpufreq_callback(struct notifier_block *nb,
 		}
 	}
 
+	cpu = freq->cpu;
 	/*
 	 * Adjust global lpj variable and per-CPU udelay_val number in
 	 * accordance with the new CPU frequency.
@@ -74,12 +73,8 @@  static int cpufreq_callback(struct notifier_block *nb,
 						glb_lpj_ref_freq,
 						freq->new);
 
-		for_each_cpu(cpu, cpus) {
-			lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
-					    per_cpu(pcp_lpj_ref_freq, cpu),
-					    freq->new);
-			cpu_data[cpu].udelay_val = (unsigned int)lpj;
-		}
+		cpu_data[cpu].udelay_val = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
+					   per_cpu(pcp_lpj_ref_freq, cpu), freq->new);
 	}
 
 	return NOTIFY_OK;