powerpc/rtas: remove rtas_suspend_cpu()
authorNathan Lynch <nathanl@linux.ibm.com>
Mon, 7 Dec 2020 21:51:53 +0000 (15:51 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 8 Dec 2020 10:41:01 +0000 (21:41 +1100)
rtas_suspend_cpu() no longer has users; remove it and
__rtas_suspend_cpu() which now becomes unused as well.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201207215200.1785968-22-nathanl@linux.ibm.com
arch/powerpc/include/asm/rtas.h
arch/powerpc/kernel/rtas.c

index 9a6107ffe378d34b2eab9b4e9f71ae1d5ea54c29..97ccb40fb09f23eb799e247046885411c01be8d2 100644 (file)
@@ -256,7 +256,6 @@ extern bool rtas_indicator_present(int token, int *maxindex);
 extern int rtas_set_indicator(int indicator, int index, int new_value);
 extern int rtas_set_indicator_fast(int indicator, int index, int new_value);
 extern void rtas_progress(char *s, unsigned short hex);
-extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data);
 extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data);
 int rtas_ibm_suspend_me(int *fw_status);
 
index 7e6024f570da989da35dbca969859480bef97938..aedd46967b99e8fd3dcb1cc4bbe0da0800e010dd 100644 (file)
@@ -873,58 +873,6 @@ int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data)
        return __rtas_suspend_last_cpu(data, 0);
 }
 
-static int __rtas_suspend_cpu(struct rtas_suspend_me_data *data, int wake_when_done)
-{
-       long rc = H_SUCCESS;
-       unsigned long msr_save;
-       int cpu;
-
-       atomic_inc(&data->working);
-
-       /* really need to ensure MSR.EE is off for H_JOIN */
-       msr_save = mfmsr();
-       mtmsr(msr_save & ~(MSR_EE));
-
-       while (rc == H_SUCCESS && !atomic_read(&data->done) && !atomic_read(&data->error))
-               rc = plpar_hcall_norets(H_JOIN);
-
-       mtmsr(msr_save);
-
-       if (rc == H_SUCCESS) {
-               /* This cpu was prodded and the suspend is complete. */
-               goto out;
-       } else if (rc == H_CONTINUE) {
-               /* All other cpus are in H_JOIN, this cpu does
-                * the suspend.
-                */
-               return __rtas_suspend_last_cpu(data, wake_when_done);
-       } else {
-               printk(KERN_ERR "H_JOIN on cpu %i failed with rc = %ld\n",
-                      smp_processor_id(), rc);
-               atomic_set(&data->error, rc);
-       }
-
-       if (wake_when_done) {
-               atomic_set(&data->done, 1);
-
-               /* This cpu did the suspend or got an error; in either case,
-                * we need to prod all other other cpus out of join state.
-                * Extra prods are harmless.
-                */
-               for_each_online_cpu(cpu)
-                       plpar_hcall_norets(H_PROD, get_hard_smp_processor_id(cpu));
-       }
-out:
-       if (atomic_dec_return(&data->working) == 0)
-               complete(data->complete);
-       return rc;
-}
-
-int rtas_suspend_cpu(struct rtas_suspend_me_data *data)
-{
-       return __rtas_suspend_cpu(data, 0);
-}
-
 /**
  * rtas_call_reentrant() - Used for reentrant rtas calls
  * @token:     Token for desired reentrant RTAS call