mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
kexec: factor out kexec_load_permitted
Both syscalls (kexec and kexec_file) do the same check, let's factor it out. Link: https://lkml.kernel.org/r/20221114-disable-kexec-reset-v6-2-6a8531a09b9a@chromium.org Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org> Acked-by: Baoquan He <bhe@redhat.com> Cc: Bagas Sanjaya <bagasdotme@gmail.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Guilherme G. Piccoli <gpiccoli@igalia.com> Cc: Joel Fernandes (Google) <joel@joelfernandes.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Philipp Rudo <prudo@redhat.com> Cc: Ross Zwisler <zwisler@kernel.org> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
06dcb0138f
commit
7e99f8b69c
@@ -922,7 +922,7 @@ int kimage_load_segment(struct kimage *image,
|
||||
|
||||
struct kimage *kexec_image;
|
||||
struct kimage *kexec_crash_image;
|
||||
int kexec_load_disabled;
|
||||
static int kexec_load_disabled;
|
||||
#ifdef CONFIG_SYSCTL
|
||||
static struct ctl_table kexec_core_sysctls[] = {
|
||||
{
|
||||
@@ -946,6 +946,15 @@ static int __init kexec_core_sysctl_init(void)
|
||||
late_initcall(kexec_core_sysctl_init);
|
||||
#endif
|
||||
|
||||
bool kexec_load_permitted(void)
|
||||
{
|
||||
/*
|
||||
* Only the superuser can use the kexec syscall and if it has not
|
||||
* been disabled.
|
||||
*/
|
||||
return capable(CAP_SYS_BOOT) && !kexec_load_disabled;
|
||||
}
|
||||
|
||||
/*
|
||||
* No panic_cpu check version of crash_kexec(). This function is called
|
||||
* only when panic_cpu holds the current CPU number; this is the only CPU
|
||||
|
Reference in New Issue
Block a user