Subject: [bug#75402] [PATCH 1/3] reconfigure: Do not pass KEXEC_FILE_DEBUG.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 6 Jan 2025 13:58:35 +0100

This flag is unsupported in Linux 6.6 and causes ‘kexec_file_load’ to
fail with EINVAL.

Fixes <https://issues.guix.gnu.org/75211>.

* guix/scripts/system/reconfigure.scm (kexec-loading-program): Remove
KEXEC_FILE_DEBUG.
* guix/build/syscalls.scm (KEXEC_FILE_DEBUG): Add comment.

Suggested-by: nathan <[email-masked]>
Reported-by: Simen Endsjø <[email-masked]>
Change-Id: Ia48be7f4cfa9c6352908e4bea6472cd648f866ed
---
 guix/build/syscalls.scm             | 4 ++--
 guix/scripts/system/reconfigure.scm | 5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 960339e8bf..0f8927844b 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2024 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2014-2025 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2015 David Thompson <[email-masked]>
 ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
@@ -783,7 +783,7 @@ (define (string->utf-8/nul-terminated str)
 (define KEXEC_FILE_UNLOAD	#x00000001)
 (define KEXEC_FILE_ON_CRASH	#x00000002)
 (define KEXEC_FILE_NO_INITRAMFS	#x00000004)
-(define KEXEC_FILE_DEBUG	#x00000008)
+(define KEXEC_FILE_DEBUG	#x00000008)       ;missing from Linux 6.6
 
 (define kexec-load-file
   (let* ((proc (syscall->procedure int "syscall"
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index e9e16e3422..96e5bff351 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2022, 2024 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2014-2022, 2024-2025 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2016 Alex Kost <[email-masked]>
 ;;; Copyright © 2016, 2017, 2018 Chris Marusich <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
@@ -198,8 +198,7 @@ (define (kexec-loading-program os)
              (kexec-load-file kernel initrd
                               (string-join
                                (list #$@(operating-system-kernel-arguments
-                                         os root-device)))
-                              KEXEC_FILE_DEBUG)))))))
+                                         os root-device))))))))))
 
 (define* (upgrade-shepherd-services eval os)
   "Using EVAL, a monadic procedure taking a single G-Expression as an argument,
-- 
2.47.1