Re: [PATCH v2 0/2] x86/kexec: Carry forward the boot DTB on kexec
From: Baoquan He <hidden>
Date: 2025-08-14 02:39:51
Also in:
kexec, lkml
On 08/13/25 at 07:24pm, Brian Mak wrote:
On Aug 12, 2025, at 8:54 PM, Dave Young [off-list ref] wrote:quoted
Hi, The #ifdef CONFIG_* which can be replaced by #if defined(), but I do not have a strong opinion. other than that do you have kexec-tools patch ready? It would be better to provide a link so that people can try and test it.Hi Dave, Thanks for looking at this! The #ifdef CONFIG_* is used, as it matches the style of other ifdefs in this file. I'd like to keep it as-is for consistency. I do have a prototype kexec-tools patch ready for testing. The changes can be found at this repo: https://github.com/makb-juniper/kexec-tools.git I've also placed the diff below.
Thanks, I will apply your patch and take a test. Usually, Andrew will merge kexec/kdump patch if the patch is OK to him. I will add comment if I have concern. Otherwise, I don't want Andrew to bother to add my ACK.
quoted hunk ↗ jump to hunk
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h index 9b17578..8419b23 100644 --- a/kexec/kexec-syscall.h +++ b/kexec/kexec-syscall.h@@ -124,6 +124,8 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, #define KEXEC_FILE_ON_CRASH 0x00000002 #define KEXEC_FILE_NO_INITRAMFS 0x00000004 #define KEXEC_FILE_DEBUG 0x00000008 +#define KEXEC_FILE_NO_CMA 0x00000010 +#define KEXEC_FILE_FORCE_DTB 0x00000020 /* These values match the ELF architecture values. * Unless there is a good reason that should continue to be the case.diff --git a/kexec/kexec.c b/kexec/kexec.c index 6bf12d7..0e13b6b 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c@@ -1102,6 +1102,7 @@ void usage(void) " --hotplug Do in-kernel update of kexec segments on CPU/Memory\n" " hot add/remove events, avoiding the need to reload\n" " kdump kernel on online/offline events.\n" + " --force-dtb Carry over the current boot's device tree blob (x86 only).\n" " -d, --debug Enable debugging to help spot a failure.\n" " -S, --status Return 1 if the type (by default crash) is loaded,\n" " 0 if not.\n"@@ -1640,6 +1641,9 @@ int main(int argc, char *argv[]) case OPT_HOTPLUG: do_hotplug = 1; break; + case OPT_FORCE_DTB: + kexec_file_flags |= KEXEC_FILE_FORCE_DTB; + break; default: break; }diff --git a/kexec/kexec.h b/kexec/kexec.h index a2e19c4..2235aa2 100644 --- a/kexec/kexec.h +++ b/kexec/kexec.h@@ -235,7 +235,8 @@ extern int file_types; #define OPT_LOAD_LIVE_UPDATE 263 #define OPT_EXEC_LIVE_UPDATE 264 #define OPT_HOTPLUG 265 -#define OPT_MAX 266 +#define OPT_FORCE_DTB 266 +#define OPT_MAX 267 #define KEXEC_OPTIONS \ { "help", 0, 0, OPT_HELP }, \ { "version", 0, 0, OPT_VERSION }, \@@ -263,6 +264,7 @@ extern int file_types; { "status", 0, 0, OPT_STATUS }, \ { "print-ckr-size", 0, 0, OPT_PRINT_CKR_SIZE }, \ { "hotplug", 0, 0, OPT_HOTPLUG }, \ + { "force-dtb", 0, 0, OPT_FORCE_DTB }, \ #define KEXEC_OPT_STR "h?vdfixyluet:pscaS"base-commit: daa29443819d3045338792b5ba950ed90e79d7a5 -- 2.25.1