kexec: split kexec_load syscall from kexec core code
authorDave Young <dyoung@redhat.com>
Wed, 9 Sep 2015 22:38:55 +0000 (15:38 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 10 Sep 2015 20:29:01 +0000 (13:29 -0700)
commit2965faa5e03d1e71e9ff9aa143fff39e0a77543a
tree78b12008d7078a9cd40e157d5b18b795b14d5d9c
parenta43cac0d9dc2073ff2245a171429ddbe1accece7
kexec: split kexec_load syscall from kexec core code

There are two kexec load syscalls, kexec_load another and kexec_file_load.
 kexec_file_load has been splited as kernel/kexec_file.c.  In this patch I
split kexec_load syscall code to kernel/kexec.c.

And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and
use kexec_file_load only, or vice verse.

The original requirement is from Ted Ts'o, he want kexec kernel signature
being checked with CONFIG_KEXEC_VERIFY_SIG enabled.  But kexec-tools use
kexec_load syscall can bypass the checking.

Vivek Goyal proposed to create a common kconfig option so user can compile
in only one syscall for loading kexec kernel.  KEXEC/KEXEC_FILE selects
KEXEC_CORE so that old config files still work.

Because there's general code need CONFIG_KEXEC_CORE, so I updated all the
architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects
KEXEC_CORE in arch Kconfig.  Also updated general kernel code with to
kexec_load syscall.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Dave Young <dyoung@redhat.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Josh Boyer <jwboyer@fedoraproject.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
32 files changed:
arch/Kconfig
arch/arm/Kconfig
arch/ia64/Kconfig
arch/m68k/Kconfig
arch/mips/Kconfig
arch/powerpc/Kconfig
arch/s390/Kconfig
arch/sh/Kconfig
arch/tile/Kconfig
arch/x86/Kconfig
arch/x86/boot/header.S
arch/x86/include/asm/kdebug.h
arch/x86/kernel/Makefile
arch/x86/kernel/kvmclock.c
arch/x86/kernel/reboot.c
arch/x86/kernel/setup.c
arch/x86/kernel/vmlinux.lds.S
arch/x86/kvm/vmx.c
arch/x86/platform/efi/efi.c
arch/x86/platform/uv/uv_nmi.c
drivers/firmware/efi/Kconfig
drivers/pci/pci-driver.c
include/linux/kexec.h
init/initramfs.c
kernel/Makefile
kernel/events/core.c
kernel/kexec.c
kernel/kexec_core.c [new file with mode: 0644]
kernel/ksysfs.c
kernel/printk/printk.c
kernel/reboot.c
kernel/sysctl.c