diff options
Diffstat (limited to 'meta/recipes-kernel/kexec')
10 files changed, 257 insertions, 212 deletions
diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch new file mode 100644 index 0000000000..ddc1519126 --- /dev/null +++ b/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch @@ -0,0 +1,70 @@ +From d48ec5e1a5fb7907520dee71b1d94045486a0c29 Mon Sep 17 00:00:00 2001 +From: Alexander Kamensky <alexander.kamensky42@gmail.com> +Date: Thu, 12 Nov 2020 12:56:46 -0800 +Subject: [PATCH] arm64: kexec: disabled check if kaslr-seed dtb property was + wiped + +Kexec when loading arm64 kernel checks if chosen/kaslr-seed dtb property is +wiped. It's a good assertion to verify proper behavior of kernel. However, +if bootloader creates and fills kaslr-seed property and kernel is not +configured with CONFIG_RANDOMIZE_BASE then logic of reading and wiping +kaslr-seed does not run. As a result kaslr-seed property is not zero and when +kexec tries to load secondary kernel it fails with the following message: + +setup_2nd_dtb: kaslr-seed is not wiped to 0. +kexec: setup_2nd_dtb failed. +kexec: load failed. + +This was observed on Yocto Project on qemuarm64 machine with 5.8 kernel, +qemu 5.1.0. Qemu created kaslr-seed property but kernel was not configured +with CONFIG_RANDOMIZE_BASE. + +Although check has some value, there is a use-case where it breaks kexec, +this patch removes it. + +Note in described use-case the fact that kaslr-seed is not wiped and user +readable through /sys/firmware/fdt or +/sys/firmware/devicetree/base/chosen/kaslr-seed is not a security problem +as kaslr is disabled anyway. + +Signed-off-by: Alexander Kamensky <alexander.kamensky42@gmail.com> +Upstream-Status: Submitted [http://lists.infradead.org/pipermail/kexec/2020-November/021740.html] +--- + kexec/arch/arm64/kexec-arm64.c | 14 +------------- + 1 file changed, 1 insertion(+), 13 deletions(-) + +diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c +index ec6df4b..10238d9 100644 +--- a/kexec/arch/arm64/kexec-arm64.c ++++ b/kexec/arch/arm64/kexec-arm64.c +@@ -503,7 +503,7 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash) + int len, range_len; + int nodeoffset; + int new_size; +- int i, result, kaslr_seed; ++ int i, result; + + result = fdt_check_header(dtb->buf); + +@@ -576,18 +576,6 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash) + return result; + } + } else { +- kaslr_seed = fdt64_to_cpu(*prop); +- +- /* kaslr_seed must be wiped clean by primary +- * kernel during boot +- */ +- if (kaslr_seed != 0) { +- dbgprintf("%s: kaslr-seed is not wiped to 0.\n", +- __func__); +- result = -EINVAL; +- goto on_error; +- } +- + /* + * Invoke the getrandom system call with + * GRND_NONBLOCK, to make sure we +-- +2.25.1 + diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-x86-linux-setup.c-Use-POSIX-basename-API.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-x86-linux-setup.c-Use-POSIX-basename-API.patch new file mode 100644 index 0000000000..e223f45998 --- /dev/null +++ b/meta/recipes-kernel/kexec/kexec-tools/0001-x86-linux-setup.c-Use-POSIX-basename-API.patch @@ -0,0 +1,54 @@ +From 32c8ffa7ace6f1b7e63f9ddffab00b00c36a7b57 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 15 May 2024 21:18:08 -0700 +Subject: [PATCH] x86-linux-setup.c: Use POSIX basename API + +Musl C library only supports POSIX basename function. while glibc has +both GNU extention as well as POSIX basename implemented. Switch to +using posix version, so it can work across musl and glibc + +basename prototype has been removed from string.h from latest musl [1] +compilers e.g. clang-18/GCC-14 flags the absense of prototype as error. +therefore include libgen.h for providing it. + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Submitted [https://lists.infradead.org/pipermail/kexec/2024-May/030034.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + kexec/arch/i386/x86-linux-setup.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c +index 9a281dc..73251b9 100644 +--- a/kexec/arch/i386/x86-linux-setup.c ++++ b/kexec/arch/i386/x86-linux-setup.c +@@ -14,6 +14,7 @@ + * + */ + #define _GNU_SOURCE ++#include <libgen.h> + #include <stdint.h> + #include <stdio.h> + #include <string.h> +@@ -329,12 +330,14 @@ static int add_edd_entry(struct x86_linux_param_header *real_mode, + memset(edd_info, 0, sizeof(struct edd_info)); + + /* extract the device number */ +- if (sscanf(basename(sysfs_name), "int13_dev%hhx", &devnum) != 1) { ++ char* sysfs_name_copy = strdup(sysfs_name); ++ if (sscanf(basename(sysfs_name_copy), "int13_dev%hhx", &devnum) != 1) { + fprintf(stderr, "Invalid format of int13_dev dir " +- "entry: %s\n", basename(sysfs_name)); ++ "entry: %s\n", basename(sysfs_name_copy)); ++ free(sysfs_name_copy); + return -1; + } +- ++ free(sysfs_name_copy); + /* if there's a MBR signature, then add it */ + if (file_scanf(sysfs_name, "mbr_signature", "0x%x", &mbr_sig) == 1) { + real_mode->edd_mbr_sig_buffer[*current_mbr] = mbr_sig; +-- +2.45.1 + diff --git a/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch b/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch index 363d5da4ae..a537ac2f0b 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch @@ -1,4 +1,4 @@ -From a04bcf8f683c1a5a7d015920124457ad56fb7cf0 Mon Sep 17 00:00:00 2001 +From e5bc9fbd6029057a4e3815a5326af5bd83a450e6 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 7 Sep 2015 07:59:45 +0000 Subject: [PATCH] purgatory: Pass -r directly to linker @@ -10,15 +10,16 @@ unfiltered Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending + --- purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purgatory/Makefile b/purgatory/Makefile -index 2dd6c47..416e6b9 100644 +index 4d2d071..6673423 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile -@@ -60,7 +60,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ +@@ -61,7 +61,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ -I$(shell $(CC) -print-file-name=include) $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ -Wl,--no-undefined -nostartfiles -nostdlib \ diff --git a/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch b/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch index 832fe67716..489b109285 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch @@ -1,4 +1,4 @@ -From 55e583d20651e829afbbc8dba0f8ec3017cda2d5 Mon Sep 17 00:00:00 2001 +From b62c1da8f8e641397add10367ee9c4cfdedb1cc0 Mon Sep 17 00:00:00 2001 From: Haiqing Bai <Haiqing.Bai@windriver.com> Date: Mon, 9 Jan 2017 15:26:29 +0800 Subject: [PATCH] kexec: ARM: Fix add_buffer_phys_virt() align issue @@ -8,19 +8,20 @@ is used by MMU, the "SECTION_SIZE" is defined with (1 << 21), but 'add_buffer_phys_virt()' hardcode this to (1 << 20). -Upstream-Status: Pending +Upstream-Status: Submitted [via email to horms@kernel.org,http://lists.infradead.org/pipermail/kexec/2024-April/029903.html] Suggested-By:fredrik.markstrom@gmail.com Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com> + --- kexec/arch/arm/crashdump-arm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c -index daa4788..3f72b38 100644 +index 1ec1826..cc20f63 100644 --- a/kexec/arch/arm/crashdump-arm.c +++ b/kexec/arch/arm/crashdump-arm.c -@@ -240,6 +240,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) +@@ -242,6 +242,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) void *buf; int err; int last_ranges; @@ -28,7 +29,7 @@ index daa4788..3f72b38 100644 /* * First fetch all the memory (RAM) ranges that we are going to pass to -@@ -281,6 +282,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) +@@ -283,6 +284,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) /* for support LPAE enabled kernel*/ elf_info.class = ELFCLASS64; @@ -36,7 +37,7 @@ index daa4788..3f72b38 100644 err = crash_create_elf64_headers(info, &elf_info, usablemem_rgns.ranges, -@@ -302,8 +304,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) +@@ -304,8 +306,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) * 1MB) so that available memory passed in kernel command line will be * aligned to 1MB. This is because kernel create_mapping() wants memory * regions to be aligned to SECTION_SIZE. diff --git a/meta/recipes-kernel/kexec/kexec-tools/0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch b/meta/recipes-kernel/kexec/kexec-tools/0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch deleted file mode 100644 index a809d5ba8e..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 8c9a5076543eb3d497e016b3d7707e93d6311883 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com> -Date: Mon, 15 Jul 2013 23:32:36 -0700 -Subject: [PATCH] x86_64: Add support to build kexec-tools with x32 ABI -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Summary of changes, - -configure.ac: Add test for detect x32 ABI. -purgatory/arch/x86_64/Makefile: Not use mcmodel large when - x32 ABI is set. -kexec/arch/x86_64/kexec-elf-rel-x86_64.c: When x32 ABI is set - use ELFCLASS32 instead of ELFCLASS64. -kexec/kexec-syscall.h: Add correct syscall number for x32 ABI. - -Upstream-Status: Submitted - -Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> -Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> ---- - configure.ac | 9 +++++++++ - kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 4 ++++ - kexec/kexec-syscall.h | 4 ++++ - purgatory/arch/x86_64/Makefile | 4 +++- - 4 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index c2b0c68..60882b8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -54,6 +54,15 @@ case $target_cpu in - ;; - ia64|x86_64|alpha|m68k ) - ARCH="$target_cpu" -+ -+ dnl ---Test for x32 ABI in x86_64 -+ if test "x$ARCH" = "xx86_64" ; then -+ AC_EGREP_CPP(x32_test, -+ [#if defined(__x86_64__) && defined (__ILP32__) -+ x32_test -+ #endif -+ ], SUBARCH='x32', SUBARCH='64') -+ fi - ;; - * ) - AC_MSG_ERROR([unsupported architecture $target_cpu]) -diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -index db85b44..0ce1172 100644 ---- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -+++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c -@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_ehdr *ehdr) - if (ehdr->ei_data != ELFDATA2LSB) { - return 0; - } -+#ifdef __ILP32__ -+ if (ehdr->ei_class != ELFCLASS32) { -+#else - if (ehdr->ei_class != ELFCLASS64) { -+#endif - return 0; - } - if (ehdr->e_machine != EM_X86_64) { -diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index dac1c1f..e9479b7 100644 ---- a/kexec/kexec-syscall.h -+++ b/kexec/kexec-syscall.h -@@ -31,8 +31,12 @@ - #define __NR_kexec_load 268 - #endif - #ifdef __x86_64__ -+#ifdef __ILP32__ -+#define __NR_kexec_load 528 -+#else - #define __NR_kexec_load 246 - #endif -+#endif - #ifdef __s390x__ - #define __NR_kexec_load 277 - #endif -diff --git a/purgatory/arch/x86_64/Makefile b/purgatory/arch/x86_64/Makefile -index 7300937..4af11e4 100644 ---- a/purgatory/arch/x86_64/Makefile -+++ b/purgatory/arch/x86_64/Makefile -@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/i386/console-x86.c - x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c - x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c - --x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large -+ifeq ($(SUBARCH),64) -+ x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large -+endif diff --git a/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch b/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch index 7a4b8548ca..6a21744ac1 100644 --- a/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch +++ b/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch @@ -1,4 +1,4 @@ -From c54488ad5fd657e0f154d76d7456d9080be24836 Mon Sep 17 00:00:00 2001 +From 494888bcc3bbf070dfce1b2686ee34c8619aa33d Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sat, 10 Jun 2017 11:18:49 -0700 Subject: [PATCH] Disable PIE during link @@ -9,15 +9,16 @@ just need to match it with linker flags Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purgatory/Makefile b/purgatory/Makefile -index 416e6b9..f00edb4 100644 +index 6673423..a7405ea 100644 --- a/purgatory/Makefile +++ b/purgatory/Makefile -@@ -59,7 +59,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ +@@ -60,7 +60,7 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ -Iinclude \ -I$(shell $(CC) -print-file-name=include) $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ diff --git a/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch b/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch deleted file mode 100644 index 6811dfa597..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b54816eff272324320c490d62dc36b27d2838732 Mon Sep 17 00:00:00 2001 -From: Quanyang Wang <quanyang.wang@windriver.com> -Date: Mon, 16 Sep 2019 10:49:05 +0800 -Subject: [PATCH] kexec/arm: undefine __NR_kexec_file_load for arm - -In the kernel upstream commit 4ab65ba7a5cb -("ARM: add kexec_file_load system call number"), -__NR_kexec_file_load for arm has been defined to be 401. -This results that even if kexec_file_load isn't implemented -for arm but the function is_kexec_file_load_implemented() -will still return true. So undef __NR_kexec_file_load for -arm architecture. - -Upstream-Status: Backport -[https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/commit/kexec/kexec-syscall.h?id=b54816eff272324320c490d62dc36b27d2838732] - -Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> -Signed-off-by: Simon Horman <horms@verge.net.au> ---- - kexec/kexec-syscall.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index dac1c1f..92d51d3 100644 ---- a/kexec/kexec-syscall.h -+++ b/kexec/kexec-syscall.h -@@ -56,6 +56,10 @@ - #endif - #endif /*ifndef __NR_kexec_load*/ - -+#ifdef __arm__ -+#undef __NR_kexec_file_load -+#endif -+ - #ifndef __NR_kexec_file_load - - #ifdef __x86_64__ --- -2.17.1 - diff --git a/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch b/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch deleted file mode 100644 index b91608e52b..0000000000 --- a/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d294c5039753a36506949ba5dc782a4c0b307b74 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Fri, 20 Dec 2019 17:21:08 +0100 -Subject: [PATCH] kexec: un-break the build on 32 bit x86 - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - kexec/arch/i386/Makefile | 1 + - kexec/arch/i386/kexec-x86.h | 4 ++++ - 2 files changed, 5 insertions(+) - -diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile -index 105cefd..25df57a 100644 ---- a/kexec/arch/i386/Makefile -+++ b/kexec/arch/i386/Makefile -@@ -11,6 +11,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c - i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c - i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c - i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c -+i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c - - dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS) \ - kexec/arch/i386/crashdump-x86.h \ -diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h -index 1b58c3b..d6b10c0 100644 ---- a/kexec/arch/i386/kexec-x86.h -+++ b/kexec/arch/i386/kexec-x86.h -@@ -56,9 +56,13 @@ struct arch_options_t { - }; - - int multiboot_x86_probe(const char *buf, off_t len); -+int multiboot2_x86_probe(const char *buf, off_t len); - int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len, - struct kexec_info *info); -+int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info); - void multiboot_x86_usage(void); -+void multiboot2_x86_usage(void); - - int elf_x86_probe(const char *buf, off_t len); - int elf_x86_load(int argc, char **argv, const char *buf, off_t len, diff --git a/meta/recipes-kernel/kexec/kexec-tools/Fix-building-on-x86_64-with-binutils-2.41.patch b/meta/recipes-kernel/kexec/kexec-tools/Fix-building-on-x86_64-with-binutils-2.41.patch new file mode 100644 index 0000000000..4894f044fc --- /dev/null +++ b/meta/recipes-kernel/kexec/kexec-tools/Fix-building-on-x86_64-with-binutils-2.41.patch @@ -0,0 +1,95 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michel Lind <salimma@fedoraproject.org> +Date: Tue, 30 Jan 2024 04:14:31 -0600 +Subject: [PATCH] Fix building on x86_64 with binutils 2.41 + +Newer versions of the GNU assembler (observed with binutils 2.41) will +complain about the ".arch i386" in files assembled with "as --64", +with the message "Error: 64bit mode not supported on 'i386'". + +Fix by moving ".arch i386" below the relevant ".code32" directive, so +that the assembler is no longer expecting 64-bit instructions to be used +by the time that the ".arch i386" directive is encountered. + +Based on similar iPXE fix: +https://github.com/ipxe/ipxe/commit/6ca597eee + +Signed-off-by: Michel Lind <michel@michel-slm.name> +Signed-off-by: Simon Horman <horms@kernel.org> + +Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/commit/?h=main&id=328de8e00e298f00d7ba6b25dc3950147e9642e6] +Signed-off-by: Yoann Congal <yoann.congal@smile.fr> +--- + purgatory/arch/i386/entry32-16-debug.S | 2 +- + purgatory/arch/i386/entry32-16.S | 2 +- + purgatory/arch/i386/entry32.S | 2 +- + purgatory/arch/i386/setup-x86.S | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/purgatory/arch/i386/entry32-16-debug.S b/purgatory/arch/i386/entry32-16-debug.S +index 5167944..12e1164 100644 +--- a/purgatory/arch/i386/entry32-16-debug.S ++++ b/purgatory/arch/i386/entry32-16-debug.S +@@ -25,10 +25,10 @@ + .globl entry16_debug_pre32 + .globl entry16_debug_first32 + .globl entry16_debug_old_first32 +- .arch i386 + .balign 16 + entry16_debug: + .code32 ++ .arch i386 + /* Compute where I am running at (assumes esp valid) */ + call 1f + 1: popl %ebx +diff --git a/purgatory/arch/i386/entry32-16.S b/purgatory/arch/i386/entry32-16.S +index c051aab..eace095 100644 +--- a/purgatory/arch/i386/entry32-16.S ++++ b/purgatory/arch/i386/entry32-16.S +@@ -20,10 +20,10 @@ + #undef i386 + .text + .globl entry16, entry16_regs +- .arch i386 + .balign 16 + entry16: + .code32 ++ .arch i386 + /* Compute where I am running at (assumes esp valid) */ + call 1f + 1: popl %ebx +diff --git a/purgatory/arch/i386/entry32.S b/purgatory/arch/i386/entry32.S +index f7a494f..8ce9e31 100644 +--- a/purgatory/arch/i386/entry32.S ++++ b/purgatory/arch/i386/entry32.S +@@ -20,10 +20,10 @@ + #undef i386 + + .text +- .arch i386 + .globl entry32, entry32_regs + entry32: + .code32 ++ .arch i386 + + /* Setup a gdt that should that is generally usefully */ + lgdt %cs:gdt +diff --git a/purgatory/arch/i386/setup-x86.S b/purgatory/arch/i386/setup-x86.S +index 201bb2c..a212eed 100644 +--- a/purgatory/arch/i386/setup-x86.S ++++ b/purgatory/arch/i386/setup-x86.S +@@ -21,10 +21,10 @@ + #undef i386 + + .text +- .arch i386 + .globl purgatory_start + purgatory_start: + .code32 ++ .arch i386 + + /* Load a gdt so I know what the segment registers are */ + lgdt %cs:gdt +-- +2.39.2 + diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb index 871b36440f..b60c51df4a 100644 --- a/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb +++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.28.bb @@ -1,10 +1,9 @@ SUMMARY = "Kexec fast reboot tools" DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel" -AUTHOR = "Eric Biederman" HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/" SECTION = "kernel/userland" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \ file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09" DEPENDS = "zlib xz" @@ -16,21 +15,20 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://0001-powerpc-change-the-memory-size-limit.patch \ file://0002-purgatory-Pass-r-directly-to-linker.patch \ file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \ - file://0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch \ file://0005-Disable-PIE-during-link.patch \ - file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \ - file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \ + file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \ + file://Fix-building-on-x86_64-with-binutils-2.41.patch \ + file://0001-x86-linux-setup.c-Use-POSIX-basename-API.patch \ " -SRC_URI[md5sum] = "46724b67f32501c5d3e778161347cad9" -SRC_URI[sha256sum] = "cb16d79818e0c9de3bb3e33ede5677c34a1d28c646379c7ab44e0faa3eb57a16" +SRC_URI[sha256sum] = "f33d2660b3e38d25a127e87097978e0f7a9a73ab5151a29eb80974d169ff6a29" inherit autotools update-rc.d systemd export LDFLAGS = "-L${STAGING_LIBDIR}" EXTRA_OECONF = " --with-zlib=yes" -do_compile_prepend() { +do_compile:prepend() { # Remove the prepackaged config.h from the source tree as it overrides # the same file generated by configure and placed in the build tree rm -f ${S}/include/config.h @@ -45,45 +43,45 @@ do_compile_prepend() { done } -do_install_append () { +do_install:append () { install -d ${D}${sysconfdir}/sysconfig - install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig + install -m 0644 ${UNPACKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -D -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump + install -D -m 0755 ${UNPACKDIR}/kdump ${D}${sysconfdir}/init.d/kdump fi if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -D -m 0755 ${WORKDIR}/kdump ${D}${libexecdir}/kdump-helper - install -D -m 0644 ${WORKDIR}/kdump.service ${D}${systemd_unitdir}/system/kdump.service - sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_unitdir}/system/kdump.service + install -D -m 0755 ${UNPACKDIR}/kdump ${D}${libexecdir}/kdump-helper + install -D -m 0644 ${UNPACKDIR}/kdump.service ${D}${systemd_system_unitdir}/kdump.service + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/kdump.service fi } PACKAGES =+ "kexec kdump vmcore-dmesg" -ALLOW_EMPTY_${PN} = "1" -RRECOMMENDS_${PN} = "kexec kdump vmcore-dmesg" +ALLOW_EMPTY:${PN} = "1" +RRECOMMENDS:${PN} = "kexec kdump vmcore-dmesg" -FILES_kexec = "${sbindir}/kexec" -FILES_kdump = "${sbindir}/kdump \ +FILES:kexec = "${sbindir}/kexec" +FILES:kdump = "${sbindir}/kdump \ ${sysconfdir}/sysconfig/kdump.conf \ ${sysconfdir}/init.d/kdump \ ${libexecdir}/kdump-helper \ - ${systemd_unitdir}/system/kdump.service \ + ${systemd_system_unitdir}/kdump.service \ " -FILES_vmcore-dmesg = "${sbindir}/vmcore-dmesg" +FILES:vmcore-dmesg = "${sbindir}/vmcore-dmesg" INITSCRIPT_PACKAGES = "kdump" -INITSCRIPT_NAME_kdump = "kdump" -INITSCRIPT_PARAMS_kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ." +INITSCRIPT_NAME:kdump = "kdump" +INITSCRIPT_PARAMS:kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ." SYSTEMD_PACKAGES = "kdump" -SYSTEMD_SERVICE_kdump = "kdump.service" +SYSTEMD_SERVICE:kdump = "kdump.service" -SECURITY_PIE_CFLAGS_remove = "-fPIE -pie" +SECURITY_PIE_CFLAGS:remove = "-fPIE -pie" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)' -INSANE_SKIP_${PN} = "arch" +INSANE_SKIP:${PN} = "arch" |