2021-05-06 02:06:52

by Youling Tang

[permalink] [raw]
Subject: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

On the Loongson64 platform, if CONFIG_SMP is not set, the following build
error will occur:
arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args' undeclared

Because the definition and declaration of secondary_kexec_args are in the
CONFIG_SMP, the secondary_kexec_args variable should be used in CONFIG_SMP.

Reported-by: kernel test robot <[email protected]>
Signed-off-by: Youling Tang <[email protected]>
---
arch/mips/loongson64/reset.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
index c97bfdc..758d5d2 100644
--- a/arch/mips/loongson64/reset.c
+++ b/arch/mips/loongson64/reset.c
@@ -126,11 +126,12 @@ static void loongson_kexec_shutdown(void)
for_each_possible_cpu(cpu)
if (!cpu_online(cpu))
cpu_device_up(get_cpu_device(cpu));
+
+ secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
#endif
kexec_args[0] = kexec_argc;
kexec_args[1] = fw_arg1;
kexec_args[2] = fw_arg2;
- secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
memcpy((void *)fw_arg1, kexec_argv, KEXEC_ARGV_SIZE);
memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
}
@@ -141,7 +142,9 @@ static void loongson_crash_shutdown(struct pt_regs *regs)
kexec_args[0] = kdump_argc;
kexec_args[1] = fw_arg1;
kexec_args[2] = fw_arg2;
+#ifdef CONFIG_SMP
secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
+#endif
memcpy((void *)fw_arg1, kdump_argv, KEXEC_ARGV_SIZE);
memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
}
--
2.1.0


2021-05-06 02:22:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

On 5/5/21 7:02 PM, Youling Tang wrote:
> On the Loongson64 platform, if CONFIG_SMP is not set, the following build
> error will occur:
> arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args' undeclared
>
> Because the definition and declaration of secondary_kexec_args are in the
> CONFIG_SMP, the secondary_kexec_args variable should be used in CONFIG_SMP.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Youling Tang <[email protected]>
> ---
> arch/mips/loongson64/reset.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
> index c97bfdc..758d5d2 100644
> --- a/arch/mips/loongson64/reset.c
> +++ b/arch/mips/loongson64/reset.c
> @@ -126,11 +126,12 @@ static void loongson_kexec_shutdown(void)
> for_each_possible_cpu(cpu)
> if (!cpu_online(cpu))
> cpu_device_up(get_cpu_device(cpu));
> +
> + secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> #endif
> kexec_args[0] = kexec_argc;
> kexec_args[1] = fw_arg1;
> kexec_args[2] = fw_arg2;
> - secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> memcpy((void *)fw_arg1, kexec_argv, KEXEC_ARGV_SIZE);
> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
> }
> @@ -141,7 +142,9 @@ static void loongson_crash_shutdown(struct pt_regs *regs)
> kexec_args[0] = kdump_argc;
> kexec_args[1] = fw_arg1;
> kexec_args[2] = fw_arg2;
> +#ifdef CONFIG_SMP
> secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> +#endif
> memcpy((void *)fw_arg1, kdump_argv, KEXEC_ARGV_SIZE);
> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
> }
>


Acked-by: Randy Dunlap <[email protected]>

Yep, slightly better than my version:
https://lore.kernel.org/lkml/[email protected]/

--
~Randy

2021-05-06 02:53:41

by Jinyang He

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

On 05/06/2021 10:02 AM, Youling Tang wrote:

> On the Loongson64 platform, if CONFIG_SMP is not set, the following build
> error will occur:
> arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args' undeclared
>
> Because the definition and declaration of secondary_kexec_args are in the
> CONFIG_SMP, the secondary_kexec_args variable should be used in CONFIG_SMP.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Youling Tang <[email protected]>
> ---
> arch/mips/loongson64/reset.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
> index c97bfdc..758d5d2 100644
> --- a/arch/mips/loongson64/reset.c
> +++ b/arch/mips/loongson64/reset.c
> @@ -126,11 +126,12 @@ static void loongson_kexec_shutdown(void)
> for_each_possible_cpu(cpu)
> if (!cpu_online(cpu))
> cpu_device_up(get_cpu_device(cpu));
> +
> + secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> #endif
> kexec_args[0] = kexec_argc;
> kexec_args[1] = fw_arg1;
> kexec_args[2] = fw_arg2;
> - secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> memcpy((void *)fw_arg1, kexec_argv, KEXEC_ARGV_SIZE);
> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
> }
> @@ -141,7 +142,9 @@ static void loongson_crash_shutdown(struct pt_regs *regs)
> kexec_args[0] = kdump_argc;
> kexec_args[1] = fw_arg1;
> kexec_args[2] = fw_arg2;
> +#ifdef CONFIG_SMP
> secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
> +#endif
> memcpy((void *)fw_arg1, kdump_argv, KEXEC_ARGV_SIZE);
> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
> }

Hi, Youling,

The earlier fix is here,
https://lkml.org/lkml/2021/4/30/874

Thanks.

2021-05-06 02:54:40

by Youling Tang

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

Hi,Randy

On 05/06/2021 10:19 AM, Randy Dunlap wrote:
> On 5/5/21 7:02 PM, Youling Tang wrote:
>> On the Loongson64 platform, if CONFIG_SMP is not set, the following build
>> error will occur:
>> arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args' undeclared
>>
>> Because the definition and declaration of secondary_kexec_args are in the
>> CONFIG_SMP, the secondary_kexec_args variable should be used in CONFIG_SMP.
>>
>> Reported-by: kernel test robot <[email protected]>
>> Signed-off-by: Youling Tang <[email protected]>
>> ---
>> arch/mips/loongson64/reset.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
>> index c97bfdc..758d5d2 100644
>> --- a/arch/mips/loongson64/reset.c
>> +++ b/arch/mips/loongson64/reset.c
>> @@ -126,11 +126,12 @@ static void loongson_kexec_shutdown(void)
>> for_each_possible_cpu(cpu)
>> if (!cpu_online(cpu))
>> cpu_device_up(get_cpu_device(cpu));
>> +
>> + secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> #endif
>> kexec_args[0] = kexec_argc;
>> kexec_args[1] = fw_arg1;
>> kexec_args[2] = fw_arg2;
>> - secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> memcpy((void *)fw_arg1, kexec_argv, KEXEC_ARGV_SIZE);
>> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
>> }
>> @@ -141,7 +142,9 @@ static void loongson_crash_shutdown(struct pt_regs *regs)
>> kexec_args[0] = kdump_argc;
>> kexec_args[1] = fw_arg1;
>> kexec_args[2] = fw_arg2;
>> +#ifdef CONFIG_SMP
>> secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> +#endif
>> memcpy((void *)fw_arg1, kdump_argv, KEXEC_ARGV_SIZE);
>> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
>> }
>>
>
> Acked-by: Randy Dunlap <[email protected]>
>
> Yep, slightly better than my version:
> https://lore.kernel.org/lkml/[email protected]/
Sorry, I didn’t see the patch you sent at that time.

Thanks,
Youling.

2021-05-06 03:03:17

by Youling Tang

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

Hi, Jinyang

On 05/06/2021 10:21 AM, Jinyang He wrote:
> On 05/06/2021 10:02 AM, Youling Tang wrote:
>
>> On the Loongson64 platform, if CONFIG_SMP is not set, the following
>> build
>> error will occur:
>> arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args'
>> undeclared
>>
>> Because the definition and declaration of secondary_kexec_args are in
>> the
>> CONFIG_SMP, the secondary_kexec_args variable should be used in
>> CONFIG_SMP.
>>
>> Reported-by: kernel test robot <[email protected]>
>> Signed-off-by: Youling Tang <[email protected]>
>> ---
>> arch/mips/loongson64/reset.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/loongson64/reset.c b/arch/mips/loongson64/reset.c
>> index c97bfdc..758d5d2 100644
>> --- a/arch/mips/loongson64/reset.c
>> +++ b/arch/mips/loongson64/reset.c
>> @@ -126,11 +126,12 @@ static void loongson_kexec_shutdown(void)
>> for_each_possible_cpu(cpu)
>> if (!cpu_online(cpu))
>> cpu_device_up(get_cpu_device(cpu));
>> +
>> + secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> #endif
>> kexec_args[0] = kexec_argc;
>> kexec_args[1] = fw_arg1;
>> kexec_args[2] = fw_arg2;
>> - secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> memcpy((void *)fw_arg1, kexec_argv, KEXEC_ARGV_SIZE);
>> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
>> }
>> @@ -141,7 +142,9 @@ static void loongson_crash_shutdown(struct
>> pt_regs *regs)
>> kexec_args[0] = kdump_argc;
>> kexec_args[1] = fw_arg1;
>> kexec_args[2] = fw_arg2;
>> +#ifdef CONFIG_SMP
>> secondary_kexec_args[0] = TO_UNCAC(0x3ff01000);
>> +#endif
>> memcpy((void *)fw_arg1, kdump_argv, KEXEC_ARGV_SIZE);
>> memcpy((void *)fw_arg2, kexec_envp, KEXEC_ENVP_SIZE);
>> }
>
> Hi, Youling,
>
> The earlier fix is here,
> https://lkml.org/lkml/2021/4/30/874
>
Thank you for reminding me.

Thanks,
Youling.
> Thanks.

2021-05-11 20:49:39

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Loongson64: Fix build error 'secondary_kexec_args' undeclared under !SMP

On Thu, May 06, 2021 at 10:02:50AM +0800, Youling Tang wrote:
> On the Loongson64 platform, if CONFIG_SMP is not set, the following build
> error will occur:
> arch/mips/loongson64/reset.c:133:2: error:'secondary_kexec_args' undeclared
>
> Because the definition and declaration of secondary_kexec_args are in the
> CONFIG_SMP, the secondary_kexec_args variable should be used in CONFIG_SMP.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Youling Tang <[email protected]>
> ---
> arch/mips/loongson64/reset.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)

applied to mips-next.

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]