riscv: Remove unused members from struct cpu_operations
authorSamuel Holland <samuel.holland@sifive.com>
Tue, 21 Nov 2023 23:47:25 +0000 (15:47 -0800)
committerPalmer Dabbelt <palmer@rivosinc.com>
Thu, 4 Jan 2024 23:03:06 +0000 (15:03 -0800)
name is not used anywhere at all. cpu_prepare and cpu_disable do nothing
and always return 0 if implemented.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20231121234736.3489608-3-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/include/asm/cpu_ops.h
arch/riscv/kernel/cpu-hotplug.c
arch/riscv/kernel/cpu_ops.c
arch/riscv/kernel/cpu_ops_sbi.c
arch/riscv/kernel/cpu_ops_spinwait.c
arch/riscv/kernel/head.S
arch/riscv/kernel/setup.c
arch/riscv/kernel/smpboot.c

index aa128466c4d4ec7b533dd8403d8c43e97aff0eac..18af75e6873c57501c921414301cb47a905a79ab 100644 (file)
 /**
  * struct cpu_operations - Callback operations for hotplugging CPUs.
  *
- * @name:              Name of the boot protocol.
- * @cpu_prepare:       Early one-time preparation step for a cpu. If there
- *                     is a mechanism for doing so, tests whether it is
- *                     possible to boot the given HART.
  * @cpu_start:         Boots a cpu into the kernel.
- * @cpu_disable:       Prepares a cpu to die. May fail for some
- *                     mechanism-specific reason, which will cause the hot
- *                     unplug to be aborted. Called from the cpu to be killed.
  * @cpu_stop:          Makes a cpu leave the kernel. Must not fail. Called from
  *                     the cpu being stopped.
  * @cpu_is_stopped:    Ensures a cpu has left the kernel. Called from another
  *                     cpu.
  */
 struct cpu_operations {
-       const char      *name;
-       int             (*cpu_prepare)(unsigned int cpu);
        int             (*cpu_start)(unsigned int cpu,
                                     struct task_struct *tidle);
 #ifdef CONFIG_HOTPLUG_CPU
-       int             (*cpu_disable)(unsigned int cpu);
        void            (*cpu_stop)(void);
        int             (*cpu_is_stopped)(unsigned int cpu);
 #endif
index 457a18efcb114880511f9eb342ccb2fb7e377382..934eb64da0d0bdb29c27bb0a220dce1374f15e2d 100644 (file)
@@ -29,25 +29,18 @@ bool cpu_has_hotplug(unsigned int cpu)
  */
 int __cpu_disable(void)
 {
-       int ret = 0;
        unsigned int cpu = smp_processor_id();
 
        if (!cpu_ops[cpu] || !cpu_ops[cpu]->cpu_stop)
                return -EOPNOTSUPP;
 
-       if (cpu_ops[cpu]->cpu_disable)
-               ret = cpu_ops[cpu]->cpu_disable(cpu);
-
-       if (ret)
-               return ret;
-
        remove_cpu_topology(cpu);
        numa_remove_cpu(cpu);
        set_cpu_online(cpu, false);
        riscv_ipi_disable();
        irq_migrate_all_off_this_cpu();
 
-       return ret;
+       return 0;
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
index eb479a88a954ef07be7b887485bbbb2834b1b6bd..5540e2880abbbb1c5f5ec1fb472f6960e5042185 100644 (file)
@@ -18,8 +18,6 @@ const struct cpu_operations *cpu_ops[NR_CPUS] __ro_after_init;
 extern const struct cpu_operations cpu_ops_sbi;
 #ifndef CONFIG_RISCV_BOOT_SPINWAIT
 const struct cpu_operations cpu_ops_spinwait = {
-       .name           = "",
-       .cpu_prepare    = NULL,
        .cpu_start      = NULL,
 };
 #endif
index efa0f0816634c40772005bfe564cda4411957a81..1cc7df740eddc9a2977fde8c428e19fd90ec9126 100644 (file)
@@ -79,23 +79,7 @@ static int sbi_cpu_start(unsigned int cpuid, struct task_struct *tidle)
        return sbi_hsm_hart_start(hartid, boot_addr, hsm_data);
 }
 
-static int sbi_cpu_prepare(unsigned int cpuid)
-{
-       if (!cpu_ops_sbi.cpu_start) {
-               pr_err("cpu start method not defined for CPU [%d]\n", cpuid);
-               return -ENODEV;
-       }
-       return 0;
-}
-
 #ifdef CONFIG_HOTPLUG_CPU
-static int sbi_cpu_disable(unsigned int cpuid)
-{
-       if (!cpu_ops_sbi.cpu_stop)
-               return -EOPNOTSUPP;
-       return 0;
-}
-
 static void sbi_cpu_stop(void)
 {
        int ret;
@@ -118,11 +102,8 @@ static int sbi_cpu_is_stopped(unsigned int cpuid)
 #endif
 
 const struct cpu_operations cpu_ops_sbi = {
-       .name           = "sbi",
-       .cpu_prepare    = sbi_cpu_prepare,
        .cpu_start      = sbi_cpu_start,
 #ifdef CONFIG_HOTPLUG_CPU
-       .cpu_disable    = sbi_cpu_disable,
        .cpu_stop       = sbi_cpu_stop,
        .cpu_is_stopped = sbi_cpu_is_stopped,
 #endif
index d98d19226b5f5175aca387cf22558bad9df1f2c5..613872b0a21acb2a708f194d22f186f376f8a748 100644 (file)
@@ -39,15 +39,6 @@ static void cpu_update_secondary_bootdata(unsigned int cpuid,
        WRITE_ONCE(__cpu_spinwait_task_pointer[hartid], tidle);
 }
 
-static int spinwait_cpu_prepare(unsigned int cpuid)
-{
-       if (!cpu_ops_spinwait.cpu_start) {
-               pr_err("cpu start method not defined for CPU [%d]\n", cpuid);
-               return -ENODEV;
-       }
-       return 0;
-}
-
 static int spinwait_cpu_start(unsigned int cpuid, struct task_struct *tidle)
 {
        /*
@@ -64,7 +55,5 @@ static int spinwait_cpu_start(unsigned int cpuid, struct task_struct *tidle)
 }
 
 const struct cpu_operations cpu_ops_spinwait = {
-       .name           = "spinwait",
-       .cpu_prepare    = spinwait_cpu_prepare,
        .cpu_start      = spinwait_cpu_start,
 };
index b77397432403d9ef028fea6855cdc97aea143d00..0349e5cdfe1d4ffd8e347279ae5b80836539e5fc 100644 (file)
@@ -11,7 +11,6 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/csr.h>
-#include <asm/cpu_ops_sbi.h>
 #include <asm/hwcap.h>
 #include <asm/image.h>
 #include <asm/scs.h>
index 535a837de55d1ba3aa8a45fe4123404ce1a9430f..2bf88280462440e03b0a2e5a2fcabf77c6d49f71 100644 (file)
@@ -26,7 +26,6 @@
 #include <asm/alternative.h>
 #include <asm/cacheflush.h>
 #include <asm/cpufeature.h>
-#include <asm/cpu_ops.h>
 #include <asm/early_ioremap.h>
 #include <asm/pgtable.h>
 #include <asm/setup.h>
index 1c68e61fb8529a1e96c68f7caa558b8f2180db1f..5551945255cdcccdfa72cb51bfabdbcccc56f070 100644 (file)
@@ -49,7 +49,6 @@ void __init smp_prepare_boot_cpu(void)
 void __init smp_prepare_cpus(unsigned int max_cpus)
 {
        int cpuid;
-       int ret;
        unsigned int curr_cpuid;
 
        init_cpu_topology();
@@ -66,11 +65,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
        for_each_possible_cpu(cpuid) {
                if (cpuid == curr_cpuid)
                        continue;
-               if (cpu_ops[cpuid]->cpu_prepare) {
-                       ret = cpu_ops[cpuid]->cpu_prepare(cpuid);
-                       if (ret)
-                               continue;
-               }
                set_cpu_present(cpuid, true);
                numa_store_cpu_info(cpuid);
        }