From nobody Tue Dec 2 00:05:28 2025 Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8BE53016E0 for ; Wed, 26 Nov 2025 08:46:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.194.254.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146785; cv=none; b=BrIC5ie6/7yNFDcHmqPz1YAg9qFEPMXM1MMSEq6ZmrH7DyWMNSKpOHwHKdjqlt5hKWNPcwHbjt+VdTF2ReMlh+pCX/UU1QJecN1c1ZwoQe77qIJBt9xSiACaUnlrlXCztEcUVqJoNN1w8/WbNoyWndlwlnQE2Ryw3B5piCB8cwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146785; c=relaxed/simple; bh=yLUHORhrfP352glP2MX4o+4v0s1rh1zWnAisxPzFrP8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=V4oJYS25VEwiG8/Y2A3IGP2t1eASl5JDS7X8d1v9GYM17wIs+jjPyF82su8wqU7YOyaqtCl6vCjE+12qXgv8tTSbBUqXC88ax6heuLHQfgHCXwguBg6Q+pkc5ZqEzkYP95yQJiKKmjr12npbw7HsjMvkug8YBkwehxzbFkGmd4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com; spf=pass smtp.mailfrom=uniontech.com; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b=nLCTK4kd; arc=none smtp.client-ip=18.194.254.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=uniontech.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b="nLCTK4kd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uniontech.com; s=onoh2408; t=1764146739; bh=tZCgdJ6wSf1lbQtjUTeGU2iEfKy0JpdjJL00moVGe2s=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=nLCTK4kd93wxfS99Tfw8iH3g281slWiayxJth715EtdRyUQmdZRr4si6kar7TPqG5 /GhZMqlSB61aqGsZ+XnQcdnjyFztZIXxWIYPA7WoJdvMuawU/fQ8IIiJHzZDx0CXwX hHUXcRpuaAqMx6J52hyRFF6doZt2IbWjXPvfnXDU= X-QQ-mid: zesmtpgz7t1764146735tbed976db X-QQ-Originating-IP: xoV5lrxXt6GCOYkdPevaU868SaCX+M/fBGhMs9dYeD4= Received: from localhost.localdomain ( [123.114.60.34]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 26 Nov 2025 16:45:33 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 1 X-BIZMAIL-ID: 12371583234594709573 EX-QQ-RecipientCnt: 5 From: Qiang Ma To: akpm@linux-foundation.org, bhe@redhat.com Cc: kexec@lists.infradead.org, linux-kernel@vger.kernel.org, Qiang Ma Subject: [PATCH v3 2/3] kexec: add kexec flag to control debug printing Date: Wed, 26 Nov 2025 16:44:26 +0800 Message-Id: <20251126084427.3222212-3-maqianga@uniontech.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20251126084427.3222212-1-maqianga@uniontech.com> References: <20251126084427.3222212-1-maqianga@uniontech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpgz:uniontech.com:qybglogicsvrsz:qybglogicsvrsz3b-0 X-QQ-XMAILINFO: OZsapEVPoiO6Qg5kvumin7El44TTwIOHw4YEtbhE9q8ibGhPZiz+i7S+ YWFoEK0ne0zKD8h/iYBrcxlehgLJtwkI1lvOja/hu8TwSlS8pxxQ3nmCKPbHsiw0YTpy7Ef ucTX4qx15A54w0bLi9CtmTxtRzbdF1Yewv8UhVrxGSOUDCpAhe/iSVCLQR6+M8D/qeVci0V QRnMkF4o2UQYhPsQYKc1BspxmqYjpU8pBFNyelXH42/QPb1nDdaIRTkqzaJ2wSsYOUX5usZ qrnTqjnz8mQBN0K7fJqzwcs1F1XMMBFLeZYDanw+aIbGIo0wwsagh9mul1EvXWEIb/mEdwX mszl8vEMJFYuWZlqmXGfBuLk2lH9FpDfCmwQKF1kkZh/DdmhzDVMRIfdxY+o0dTgVjFxQZH QPsIuMR7WArYueK0tdGuAlsGyIqAKYdaxDsSuouqG3mo9rImC475bJLFcVTgeZES9+KtzF2 Q5oAlyx/5oFkKWTt7F1mJNl3fEbwqbNh+Jf8zLYWWZ+2Sfrc/I4ZA2csUDwt/yZxcB6XmkY 5ez3RqlOB/t1266tyAvnGS7p9f4vjXKfrdzB++VPaj6vrTtqr5jicL/B7p6YzoZLwR6WEC1 ttD/Gmh65Mhs08hz4OGFmf96fpACdXPGYHDCu8LqhlTGqAm8yxBXMUNm0eKP1GMvcqmyd0O Ws/SLyb0QQkLI3ypuqxLWvPpW3dV2/eojb1jVJ+sp/ak1w40A0kxZl11X8fdd8WNk75eff8 aDaXBpg+YqTCnunnb1iv/ib7BoQ6XCWKdws4/s/iyPpjvMHVBAfGOEs4f2pbo8iRBMZqgKv zdrbYMgOuIp0tTpgOJxuQBJMLquqb5Pfja7QaegnAqrasAV7W8hoPeb1CMMVE0UuqPXWxiK MhBmeY/vrj8jrbZVjlLW5aQRtbY2ootYR4hdFFqg30753Ww8KcDI7A6OslQqVD1N6lm7D9x ylsNXR8lfHVJq+3YlVIHirOhRRQXsmJ7jkw1Xf4P41uLCuHuXHgxwxjLrbFJDiJ80kF1X7P P3tiqx/XAp2fnzuRQtQ5ZgDDpRG7o= X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= X-QQ-RECHKSPAM: 0 Content-Type: text/plain; charset="utf-8" The commit a85ee18c7900 ("kexec_file: print out debugging message if required") has added general code printing in kexec_file_load(), but not in kexec_load(). Since kexec_load and kexec_file_load are not triggered simultaneously, we can unify the debug flag of kexec and kexec_file as kexec_dbg_print. Next, we need to do four things: 1. rename kexec_file_dbg_print to kexec_dbg_print 2. Add KEXEC_DEBUG 3. Initialize kexec_dbg_print for kexec 4. Set the reset of kexec_dbg_print to kimage_free Signed-off-by: Qiang Ma --- include/linux/kexec.h | 9 +++++---- include/uapi/linux/kexec.h | 1 + kernel/kexec.c | 1 + kernel/kexec_core.c | 4 +++- kernel/kexec_file.c | 4 +--- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/linux/kexec.h b/include/linux/kexec.h index ff7e231b0485..23f10aec0b34 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -455,10 +455,11 @@ bool kexec_load_permitted(int kexec_image_type); =20 /* List of defined/legal kexec flags */ #ifndef CONFIG_KEXEC_JUMP -#define KEXEC_FLAGS (KEXEC_ON_CRASH | KEXEC_UPDATE_ELFCOREHDR | KEXEC_C= RASH_HOTPLUG_SUPPORT) +#define KEXEC_FLAGS (KEXEC_ON_CRASH | KEXEC_UPDATE_ELFCOREHDR | KEXEC_C= RASH_HOTPLUG_SUPPORT | \ + KEXEC_DEBUG) #else #define KEXEC_FLAGS (KEXEC_ON_CRASH | KEXEC_PRESERVE_CONTEXT | KEXEC_UP= DATE_ELFCOREHDR | \ - KEXEC_CRASH_HOTPLUG_SUPPORT) + KEXEC_CRASH_HOTPLUG_SUPPORT | KEXEC_DEBUG) #endif =20 /* List of defined/legal kexec file flags */ @@ -525,10 +526,10 @@ static inline int arch_kexec_post_alloc_pages(void *v= addr, unsigned int pages, g static inline void arch_kexec_pre_free_pages(void *vaddr, unsigned int pag= es) { } #endif =20 -extern bool kexec_file_dbg_print; +extern bool kexec_dbg_print; =20 #define kexec_dprintk(fmt, arg...) \ - do { if (kexec_file_dbg_print) pr_info(fmt, ##arg); } while (0) + do { if (kexec_dbg_print) pr_info(fmt, ##arg); } while (0) =20 extern void *kimage_map_segment(struct kimage *image, unsigned long addr, = unsigned long size); extern void kimage_unmap_segment(void *buffer); diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h index 55749cb0b81d..819c600af125 100644 --- a/include/uapi/linux/kexec.h +++ b/include/uapi/linux/kexec.h @@ -14,6 +14,7 @@ #define KEXEC_PRESERVE_CONTEXT 0x00000002 #define KEXEC_UPDATE_ELFCOREHDR 0x00000004 #define KEXEC_CRASH_HOTPLUG_SUPPORT 0x00000008 +#define KEXEC_DEBUG 0x00000010 #define KEXEC_ARCH_MASK 0xffff0000 =20 /* diff --git a/kernel/kexec.c b/kernel/kexec.c index 9bb1f2b6b268..f6c58c767eb0 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -42,6 +42,7 @@ static int kimage_alloc_init(struct kimage **rimage, unsi= gned long entry, if (!image) return -ENOMEM; =20 + kexec_dbg_print =3D !!(flags & KEXEC_DEBUG); image->start =3D entry; image->nr_segments =3D nr_segments; memcpy(image->segment, segments, nr_segments * sizeof(*segments)); diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index fa00b239c5d9..7bc1cd4105fc 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -53,7 +53,7 @@ atomic_t __kexec_lock =3D ATOMIC_INIT(0); /* Flag to indicate we are going to kexec a new kernel */ bool kexec_in_progress =3D false; =20 -bool kexec_file_dbg_print; +bool kexec_dbg_print; =20 /* * When kexec transitions to the new kernel there is a one-to-one @@ -576,6 +576,8 @@ void kimage_free(struct kimage *image) kimage_entry_t *ptr, entry; kimage_entry_t ind =3D 0; =20 + kexec_dbg_print =3D false; + if (!image) return; =20 diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c index eb62a9794242..3f1d6c4e8ff2 100644 --- a/kernel/kexec_file.c +++ b/kernel/kexec_file.c @@ -138,8 +138,6 @@ void kimage_file_post_load_cleanup(struct kimage *image) */ kfree(image->image_loader_data); image->image_loader_data =3D NULL; - - kexec_file_dbg_print =3D false; } =20 #ifdef CONFIG_KEXEC_SIG @@ -314,7 +312,7 @@ kimage_file_alloc_init(struct kimage **rimage, int kern= el_fd, if (!image) return -ENOMEM; =20 - kexec_file_dbg_print =3D !!(flags & KEXEC_FILE_DEBUG); + kexec_dbg_print =3D !!(flags & KEXEC_FILE_DEBUG); image->file_mode =3D 1; =20 #ifdef CONFIG_CRASH_DUMP --=20 2.20.1