summaryrefslogtreecommitdiffstats
path: root/arch/riscv/kernel
diff options
context:
space:
mode:
authorChristoph Hellwig2019-04-15 11:14:42 +0200
committerPalmer Dabbelt2019-04-25 23:51:12 +0200
commitbf0102a0fdd9fa2b41c2646c4f96e91b678de89e (patch)
treeac4e34e4857396f804d7b9cca14ca8ce206e05d0 /arch/riscv/kernel
parentriscv: print the unexpected interrupt cause (diff)
downloadkernel-qcow2-linux-bf0102a0fdd9fa2b41c2646c4f96e91b678de89e.tar.gz
kernel-qcow2-linux-bf0102a0fdd9fa2b41c2646c4f96e91b678de89e.tar.xz
kernel-qcow2-linux-bf0102a0fdd9fa2b41c2646c4f96e91b678de89e.zip
riscv: call pm_power_off from machine_halt / machine_power_off
This way any override of pm_power_off also affects the halt path and we don't need additional infrastructure for it. Also remove the pm_power_off export - at least for now we don't have any modular drivers overriding it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Atish Patra <atish.patra@wdc.com> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv/kernel')
-rw-r--r--arch/riscv/kernel/reset.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c
index 2a53d26ffdd6..ed637aee514b 100644
--- a/arch/riscv/kernel/reset.c
+++ b/arch/riscv/kernel/reset.c
@@ -12,11 +12,15 @@
*/
#include <linux/reboot.h>
-#include <linux/export.h>
#include <asm/sbi.h>
-void (*pm_power_off)(void) = machine_power_off;
-EXPORT_SYMBOL(pm_power_off);
+static void default_power_off(void)
+{
+ sbi_shutdown();
+ while (1);
+}
+
+void (*pm_power_off)(void) = default_power_off;
void machine_restart(char *cmd)
{
@@ -26,11 +30,10 @@ void machine_restart(char *cmd)
void machine_halt(void)
{
- machine_power_off();
+ pm_power_off();
}
void machine_power_off(void)
{
- sbi_shutdown();
- while (1);
+ pm_power_off();
}