diff options
Diffstat (limited to 'linux-dragon/0003-kexec-add-kexec_load_disabled-boot-option.patch')
| -rw-r--r-- | linux-dragon/0003-kexec-add-kexec_load_disabled-boot-option.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/linux-dragon/0003-kexec-add-kexec_load_disabled-boot-option.patch b/linux-dragon/0003-kexec-add-kexec_load_disabled-boot-option.patch new file mode 100644 index 0000000..16e131a --- /dev/null +++ b/linux-dragon/0003-kexec-add-kexec_load_disabled-boot-option.patch @@ -0,0 +1,58 @@ +From d1774c0a8f05e59a438123c8f01f0c3586e6e608 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 14 Jul 2022 13:23:51 +0200 +Subject: [PATCH 3/5] kexec: add kexec_load_disabled boot option + +Make kexec_load disabled by default and add a boot option to enable it: +kexec_load_disabled=0 + +Signed-off-by: Achill Gilgenast <achill@achill.org> +--- + init/main.c | 8 +++++--- + kernel/kexec_core.c | 11 ++++++++++- + 2 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/init/main.c b/init/main.c +index 07a3116811c5..82f217ab7e61 100644 +--- a/init/main.c ++++ b/init/main.c +@@ -559,9 +559,11 @@ static int __init unknown_bootoption(char *param, char *val, + repair_env_string(param, val); + + /* Handle bootloader identifier */ +- for (int i = 0; bootloader[i]; i++) { +- if (strstarts(param, bootloader[i])) +- return 0; ++ if (!strstarts(param, "kexec_load_disabled=")) { ++ for (int i = 0; bootloader[i]; i++) { ++ if (strstarts(param, bootloader[i])) ++ return 0; ++ } + } + + /* Handle obsolete-style parameters */ +diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c +index fa00b239c5d9..091ac1dd6e98 100644 +--- a/kernel/kexec_core.c ++++ b/kernel/kexec_core.c +@@ -1032,7 +1032,16 @@ static struct kexec_load_limit load_limit_panic = { + + struct kimage *kexec_image; + struct kimage *kexec_crash_image; +-static int kexec_load_disabled; ++static int kexec_load_disabled = 1; ++ ++static int __init kexec_load_disabled_setup(char *str) ++{ ++ unsigned long disabled; ++ if (!kstrtoul(str, 0, &disabled)) ++ kexec_load_disabled = disabled ? 1 : 0; ++ return 1; ++} ++__setup("kexec_load_disabled=", kexec_load_disabled_setup); + + #ifdef CONFIG_SYSCTL + static int kexec_limit_handler(const struct ctl_table *table, int write, +-- +2.52.0 + |
