mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 13:41:30 +00:00
[PATCH] kexec: add kexec syscalls
This patch introduces the architecture independent implementation the sys_kexec_load, the compat_sys_kexec_load system calls. Kexec on panic support has been integrated into the core patch and is relatively clean. In addition the hopefully architecture independent option crashkernel=size@location has been docuemented. It's purpose is to reserve space for the panic kernel to live, and where no DMA transfer will ever be setup to access. Signed-off-by: Eric Biederman <ebiederm@xmission.com> Signed-off-by: Alexander Nyberg <alexn@telia.com> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d0537508a9
commit
dc009d9243
10 changed files with 1227 additions and 4 deletions
20
kernel/sys.c
20
kernel/sys.c
|
@ -16,6 +16,8 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/highuid.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/kexec.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/key.h>
|
||||
|
@ -439,6 +441,24 @@ asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user
|
|||
machine_restart(buffer);
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_KEXEC
|
||||
case LINUX_REBOOT_CMD_KEXEC:
|
||||
{
|
||||
struct kimage *image;
|
||||
image = xchg(&kexec_image, 0);
|
||||
if (!image) {
|
||||
unlock_kernel();
|
||||
return -EINVAL;
|
||||
}
|
||||
notifier_call_chain(&reboot_notifier_list, SYS_RESTART, NULL);
|
||||
system_state = SYSTEM_RESTART;
|
||||
device_shutdown();
|
||||
printk(KERN_EMERG "Starting new kernel\n");
|
||||
machine_shutdown();
|
||||
machine_kexec(image);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_SOFTWARE_SUSPEND
|
||||
case LINUX_REBOOT_CMD_SW_SUSPEND:
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue