Re: [PATCH] MIPS: No need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable()

From: liwei (GF)
Date: Mon Dec 14 2020 - 22:28:27 EST


Hi,

On 2020/11/25 18:11, Tiezhu Yang wrote:
> After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),

Why CPU#0 is not hotpluggable on MIPS? Does that unrealizable?

> c->hotpluggable is 0 for CPU 0 and it will not generate a control
> file in sysfs for this CPU:
>
> [root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
> cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
> [root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
> bash: /sys/devices/system/cpu/cpu0/online: Permission denied
>
> So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),

missing cps_cpu_disable()?

Thanks,
Wei

> just remove them.
>
> Signed-off-by: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
> ---
> arch/mips/cavium-octeon/smp.c | 3 ---
> arch/mips/kernel/smp-bmips.c | 3 ---
> arch/mips/loongson64/smp.c | 3 ---
> 3 files changed, 9 deletions(-)
>
> diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
> index 076db9a..66ce552 100644
> --- a/arch/mips/cavium-octeon/smp.c
> +++ b/arch/mips/cavium-octeon/smp.c
> @@ -290,9 +290,6 @@ static int octeon_cpu_disable(void)
> {
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> if (!octeon_bootloader_entry_addr)
> return -ENOTSUPP;
>
> diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c
> index 1dbfb5a..359b176 100644
> --- a/arch/mips/kernel/smp-bmips.c
> +++ b/arch/mips/kernel/smp-bmips.c
> @@ -362,9 +362,6 @@ static int bmips_cpu_disable(void)
> {
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> pr_info("SMP: CPU%d is offline\n", cpu);
>
> set_cpu_online(cpu, false);
> diff --git a/arch/mips/loongson64/smp.c b/arch/mips/loongson64/smp.c
> index aa0cd72..b8c1fc3 100644
> --- a/arch/mips/loongson64/smp.c
> +++ b/arch/mips/loongson64/smp.c
> @@ -544,9 +544,6 @@ static int loongson3_cpu_disable(void)
> unsigned long flags;
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> set_cpu_online(cpu, false);
> calculate_cpu_foreign_map();
> local_irq_save(flags);
>