|
@@ -4,6 +4,8 @@
|
|
|
* Copyright (C) 2013 Linus Torvalds
|
|
|
*/
|
|
|
|
|
|
+#define pr_fmt(fmt) "reboot: " fmt
|
|
|
+
|
|
|
#include <linux/export.h>
|
|
|
#include <linux/kexec.h>
|
|
|
#include <linux/kmod.h>
|
|
@@ -114,9 +116,9 @@ void kernel_restart(char *cmd)
|
|
|
migrate_to_reboot_cpu();
|
|
|
syscore_shutdown();
|
|
|
if (!cmd)
|
|
|
- printk(KERN_EMERG "Restarting system.\n");
|
|
|
+ pr_emerg("Restarting system\n");
|
|
|
else
|
|
|
- printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
|
|
|
+ pr_emerg("Restarting system with command '%s'\n", cmd);
|
|
|
kmsg_dump(KMSG_DUMP_RESTART);
|
|
|
machine_restart(cmd);
|
|
|
}
|
|
@@ -125,7 +127,7 @@ EXPORT_SYMBOL_GPL(kernel_restart);
|
|
|
static void kernel_shutdown_prepare(enum system_states state)
|
|
|
{
|
|
|
blocking_notifier_call_chain(&reboot_notifier_list,
|
|
|
- (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL);
|
|
|
+ (state == SYSTEM_HALT) ? SYS_HALT : SYS_POWER_OFF, NULL);
|
|
|
system_state = state;
|
|
|
usermodehelper_disable();
|
|
|
device_shutdown();
|
|
@@ -140,11 +142,10 @@ void kernel_halt(void)
|
|
|
kernel_shutdown_prepare(SYSTEM_HALT);
|
|
|
migrate_to_reboot_cpu();
|
|
|
syscore_shutdown();
|
|
|
- printk(KERN_EMERG "System halted.\n");
|
|
|
+ pr_emerg("System halted\n");
|
|
|
kmsg_dump(KMSG_DUMP_HALT);
|
|
|
machine_halt();
|
|
|
}
|
|
|
-
|
|
|
EXPORT_SYMBOL_GPL(kernel_halt);
|
|
|
|
|
|
/**
|
|
@@ -159,7 +160,7 @@ void kernel_power_off(void)
|
|
|
pm_power_off_prepare();
|
|
|
migrate_to_reboot_cpu();
|
|
|
syscore_shutdown();
|
|
|
- printk(KERN_EMERG "Power down.\n");
|
|
|
+ pr_emerg("Power down\n");
|
|
|
kmsg_dump(KMSG_DUMP_POWEROFF);
|
|
|
machine_power_off();
|
|
|
}
|
|
@@ -188,10 +189,10 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
|
|
|
|
|
|
/* For safety, we require "magic" arguments. */
|
|
|
if (magic1 != LINUX_REBOOT_MAGIC1 ||
|
|
|
- (magic2 != LINUX_REBOOT_MAGIC2 &&
|
|
|
- magic2 != LINUX_REBOOT_MAGIC2A &&
|
|
|
+ (magic2 != LINUX_REBOOT_MAGIC2 &&
|
|
|
+ magic2 != LINUX_REBOOT_MAGIC2A &&
|
|
|
magic2 != LINUX_REBOOT_MAGIC2B &&
|
|
|
- magic2 != LINUX_REBOOT_MAGIC2C))
|
|
|
+ magic2 != LINUX_REBOOT_MAGIC2C))
|
|
|
return -EINVAL;
|
|
|
|
|
|
/*
|
|
@@ -234,7 +235,8 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
|
|
|
break;
|
|
|
|
|
|
case LINUX_REBOOT_CMD_RESTART2:
|
|
|
- if (strncpy_from_user(&buffer[0], arg, sizeof(buffer) - 1) < 0) {
|
|
|
+ ret = strncpy_from_user(&buffer[0], arg, sizeof(buffer) - 1);
|
|
|
+ if (ret < 0) {
|
|
|
ret = -EFAULT;
|
|
|
break;
|
|
|
}
|
|
@@ -300,14 +302,11 @@ static int __orderly_poweroff(bool force)
|
|
|
ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
|
|
|
argv_free(argv);
|
|
|
} else {
|
|
|
- printk(KERN_WARNING "%s failed to allocate memory for \"%s\"\n",
|
|
|
- __func__, poweroff_cmd);
|
|
|
ret = -ENOMEM;
|
|
|
}
|
|
|
|
|
|
if (ret && force) {
|
|
|
- printk(KERN_WARNING "Failed to start orderly shutdown: "
|
|
|
- "forcing the issue\n");
|
|
|
+ pr_warn("Failed to start orderly shutdown: forcing the issue\n");
|
|
|
/*
|
|
|
* I guess this should try to kick off some daemon to sync and
|
|
|
* poweroff asap. Or not even bother syncing if we're doing an
|