|
Michal Suchanek |
144258 |
From 5f6665e400569de479733677e77862542aebb6cc Mon Sep 17 00:00:00 2001
|
|
Michal Suchanek |
144258 |
From: Nathan Lynch <nathanl@linux.ibm.com>
|
|
Michal Suchanek |
144258 |
Date: Mon, 7 Dec 2020 15:51:48 -0600
|
|
Michal Suchanek |
144258 |
Subject: [PATCH] powerpc/rtas: remove rtas_ibm_suspend_me_unsafe()
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
References: bsc#1181674 ltc#189159
|
|
Michal Suchanek |
144258 |
Patch-mainline: v5.11-rc1
|
|
Michal Suchanek |
144258 |
Git-commit: 5f6665e400569de479733677e77862542aebb6cc
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
rtas_ibm_suspend_me_unsafe() is now unused; remove it and
|
|
Michal Suchanek |
144258 |
rtas_percpu_suspend_me() which becomes unused as a result.
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
|
|
Michal Suchanek |
144258 |
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
|
Michal Suchanek |
144258 |
Link: https://lore.kernel.org/r/20201207215200.1785968-17-nathanl@linux.ibm.com
|
|
Michal Suchanek |
144258 |
Acked-by: Michal Suchanek <msuchanek@suse.de>
|
|
Michal Suchanek |
144258 |
---
|
|
Michal Suchanek |
144258 |
arch/powerpc/include/asm/rtas.h | 1 -
|
|
Michal Suchanek |
144258 |
arch/powerpc/kernel/rtas.c | 67 +--------------------------------
|
|
Michal Suchanek |
144258 |
2 files changed, 1 insertion(+), 67 deletions(-)
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
|
|
Michal Suchanek |
144258 |
index 3b52d8574fcc..9a6107ffe378 100644
|
|
Michal Suchanek |
144258 |
--- a/arch/powerpc/include/asm/rtas.h
|
|
Michal Suchanek |
144258 |
+++ b/arch/powerpc/include/asm/rtas.h
|
|
Michal Suchanek |
144258 |
@@ -258,7 +258,6 @@ extern int rtas_set_indicator_fast(int indicator, int index, int new_value);
|
|
Michal Suchanek |
144258 |
extern void rtas_progress(char *s, unsigned short hex);
|
|
Michal Suchanek |
144258 |
extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data);
|
|
Michal Suchanek |
144258 |
extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data);
|
|
Michal Suchanek |
144258 |
-int rtas_ibm_suspend_me_unsafe(u64 handle);
|
|
Michal Suchanek |
144258 |
int rtas_ibm_suspend_me(int *fw_status);
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
struct rtc_time;
|
|
Michal Suchanek |
144258 |
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
|
|
Michal Suchanek |
144258 |
--- a/arch/powerpc/kernel/rtas.c
|
|
Michal Suchanek |
144258 |
+++ b/arch/powerpc/kernel/rtas.c
|
|
Michal Suchanek |
144258 |
@@ -923,73 +923,7 @@ int rtas_suspend_cpu(struct rtas_suspend
|
|
Michal Suchanek |
144258 |
{
|
|
Michal Suchanek |
144258 |
return __rtas_suspend_cpu(data, 0);
|
|
Michal Suchanek |
144258 |
}
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
-static void rtas_percpu_suspend_me(void *info)
|
|
Michal Suchanek |
144258 |
-{
|
|
Michal Suchanek |
144258 |
- __rtas_suspend_cpu((struct rtas_suspend_me_data *)info, 1);
|
|
Michal Suchanek |
144258 |
-}
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
-int rtas_ibm_suspend_me_unsafe(u64 handle)
|
|
Michal Suchanek |
144258 |
-{
|
|
Michal Suchanek |
144258 |
- long state;
|
|
Michal Suchanek |
144258 |
- long rc;
|
|
Michal Suchanek |
144258 |
- unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
|
|
Michal Suchanek |
144258 |
- struct rtas_suspend_me_data data;
|
|
Michal Suchanek |
144258 |
- DECLARE_COMPLETION_ONSTACK(done);
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- if (!rtas_service_present("ibm,suspend-me"))
|
|
Michal Suchanek |
144258 |
- return -ENOSYS;
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- /* Make sure the state is valid */
|
|
Michal Suchanek |
144258 |
- rc = plpar_hcall(H_VASI_STATE, retbuf, handle);
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- state = retbuf[0];
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- if (rc) {
|
|
Michal Suchanek |
144258 |
- printk(KERN_ERR "rtas_ibm_suspend_me: vasi_state returned %ld\n",rc);
|
|
Michal Suchanek |
144258 |
- return rc;
|
|
Michal Suchanek |
144258 |
- } else if (state == H_VASI_ENABLED) {
|
|
Michal Suchanek |
144258 |
- return -EAGAIN;
|
|
Michal Suchanek |
144258 |
- } else if (state != H_VASI_SUSPENDING) {
|
|
Michal Suchanek |
144258 |
- printk(KERN_ERR "rtas_ibm_suspend_me: vasi_state returned state %ld\n",
|
|
Michal Suchanek |
144258 |
- state);
|
|
Michal Suchanek |
144258 |
- return -EIO;
|
|
Michal Suchanek |
144258 |
- }
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- atomic_set(&data.working, 0);
|
|
Michal Suchanek |
144258 |
- atomic_set(&data.done, 0);
|
|
Michal Suchanek |
144258 |
- atomic_set(&data.error, 0);
|
|
Michal Suchanek |
144258 |
- data.token = rtas_token("ibm,suspend-me");
|
|
Michal Suchanek |
144258 |
- data.complete = &don;;
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- lock_device_hotplug();
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- cpu_hotplug_disable();
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- /* Call function on all CPUs. One of us will make the
|
|
Michal Suchanek |
144258 |
- * rtas call
|
|
Michal Suchanek |
144258 |
- */
|
|
Michal Suchanek |
144258 |
- if (on_each_cpu(rtas_percpu_suspend_me, &data, 0))
|
|
Michal Suchanek |
144258 |
- atomic_set(&data.error, -EINVAL);
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- wait_for_completion(&done);
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- if (atomic_read(&data.error) != 0)
|
|
Michal Suchanek |
144258 |
- printk(KERN_ERR "Error doing global join\n");
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- cpu_hotplug_enable();
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- unlock_device_hotplug();
|
|
Michal Suchanek |
144258 |
-
|
|
Michal Suchanek |
144258 |
- return atomic_read(&data.error);
|
|
Michal Suchanek |
144258 |
-}
|
|
Michal Suchanek |
144258 |
-#else /* CONFIG_PPC_PSERIES */
|
|
Michal Suchanek |
144258 |
-int rtas_ibm_suspend_me_unsafe(u64 handle)
|
|
Michal Suchanek |
144258 |
-{
|
|
Michal Suchanek |
144258 |
- return -ENOSYS;
|
|
Michal Suchanek |
144258 |
-}
|
|
Michal Suchanek |
144258 |
-#endif
|
|
Michal Suchanek |
144258 |
+#endif /* CONFIG_PPC_PSERIES */
|
|
Michal Suchanek |
144258 |
|
|
Michal Suchanek |
144258 |
/**
|
|
Michal Suchanek |
144258 |
* Find a specific pseries error log in an RTAS extended event log.
|
|
Michal Suchanek |
144258 |
--
|
|
Michal Suchanek |
144258 |
2.26.2
|
|
Michal Suchanek |
144258 |
|