From: "H. Peter Anvin" <hpa@zytor.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
Uros Bizjak <ubizjak@gmail.com>, Petr Mladek <pmladek@suse.com>,
Andrew Morton <akpm@linux-foundation.org>,
Kees Cook <kees@kernel.org>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Nathan Chancellor <nathan@kernel.org>,
Kiryl Shutsemau <kas@kernel.org>,
Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev,
x86@kernel.org
Subject: [PATCH v1 00/14] x86 boot code cleanups, batch 1
Date: Tue, 20 Jan 2026 11:53:52 -0800 [thread overview]
Message-ID: <20260120195407.1163051-1-hpa@zytor.com> (raw)
In-Reply-To: <20260119192923.651588-1-hpa@zytor.com>
From: "H. Peter Anvin" (Intel) <hpa@zytor.com>
Uros Bizjak was kind enough to look over my RFC patchset, and so I
feel confident enough to call this a v1 patchset now.
The difference versus RFC are:
1. Remove .code16 from header.S (Uros Bizjak).
2. Split out the changed handling of the old (ancient by now) command
pointer protocol into a separate patch - it had accidentally gotten
mixed into two(!) mostly unrelated patches.
3. Added a missing barrier(); to a20.c, made necessary by having the
compiler aware of fs/gs memory.
4. While changing a20.c anyway, tidy up and optimize the code a bit.
Again, the only potentially controversial thing here is removing the
options for non-relocatable kernels and building kernels without the
EFI stub. Those configurations should be considered obsolete, and they
don't add any cost to the runtime kernel.
This patchset also includes the removal of the gcc-specific version of
the RELOC_HIDE() macro, by Uros Bizjak, as the other changes in this
patchset makes that possible. Per Uros, this is holding back gcc
development, so it seems pretty important.
I am calling this "batch 1", because I have quite a few more cleanups
still being worked on; this patchset will be a prerequisite for those,
obviously.
This patchset is also available as a git tree:
git://git.zytor.com/linux/kernel/boot.git hpa/boot1
https://git.zytor.com/linux/kernel/boot/log/?h=hpa/boot1
The patches are:
01/14: x86/realmode: remove I/O port paravirtualization
02/14: x86/realmode: make %gs == 0 an invariant
03/14: x86/boot: use <linux/compiler.h>
04/14: x86/boot: modernize the segment structure for the header and setup
05/14: x86/boot: call puts() from within die()
06/14: x86/boot: add comment barriers for the different headers
07/14: x86/boot: factor out the 16-bit startup code from header.S
08/14: x86: make CONFIG_EFI_STUB unconditional
09/14: x86/boot: make the relocatable kernel unconditional
10/14: x86/boot: explicitly put the old command line pointer in header.S
11/14: x86/boot: use __seg_fs and __seg_gs in the real-mode boot code
12/14: x86/boot: tweak a20.c for better code generation
13/14: x86/boot: simplify x86/boot/cmdline.c by using __seg_fs
14/14: compiler-gcc: Remove obsolete RELOC_HIDE() macro (Uros Bizjak)
---
arch/x86/Kconfig | 85 ++++---------------------
arch/x86/boot/Makefile | 4 +-
arch/x86/boot/a20.c | 34 +++++-----
arch/x86/boot/boot.h | 116 ++++++++++------------------------
arch/x86/boot/cmdline.c | 79 ++++++++++++++++++-----
arch/x86/boot/compressed/Makefile | 2 -
arch/x86/boot/compressed/cmdline.c | 29 ---------
arch/x86/boot/compressed/error.c | 2 -
arch/x86/boot/compressed/head_32.S | 2 -
arch/x86/boot/compressed/head_64.S | 4 --
arch/x86/boot/{ => compressed}/io.h | 0
arch/x86/boot/compressed/misc.c | 8 ---
arch/x86/boot/compressed/misc.h | 2 +-
arch/x86/boot/compressed/tdx.c | 2 +-
arch/x86/boot/header.S | 123 ++++++++----------------------------
arch/x86/boot/main.c | 43 ++++++-------
arch/x86/boot/pm.c | 5 +-
arch/x86/boot/regs.c | 3 +-
arch/x86/boot/setup.ld | 26 ++++----
arch/x86/boot/start16.S | 108 +++++++++++++++++++++++++++++++
arch/x86/boot/video-bios.c | 5 +-
arch/x86/boot/video-mode.c | 5 +-
arch/x86/boot/video.c | 7 +-
arch/x86/realmode/rm/wakemain.c | 4 --
arch/x86/realmode/rm/wakeup_asm.S | 10 +--
include/linux/compiler-gcc.h | 25 --------
include/linux/compiler.h | 8 +++
27 files changed, 316 insertions(+), 425 deletions(-)
next parent reply other threads:[~2026-01-20 19:55 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260119192923.651588-1-hpa@zytor.com>
2026-01-20 19:53 ` H. Peter Anvin [this message]
2026-01-20 19:53 ` [PATCH v1 01/14] x86/realmode: remove I/O port paravirtualization H. Peter Anvin
2026-01-20 21:47 ` David Laight
2026-01-21 12:27 ` Kiryl Shutsemau
2026-01-28 17:01 ` Borislav Petkov
2026-01-20 19:53 ` [PATCH v1 02/14] x86/realmode: make %gs == 0 an invariant H. Peter Anvin
2026-01-20 22:40 ` David Laight
2026-01-20 22:51 ` H. Peter Anvin
2026-01-21 0:47 ` H. Peter Anvin
2026-01-21 10:03 ` Uros Bizjak
2026-01-20 19:53 ` [PATCH v1 03/14] x86/boot: use <linux/compiler.h> H. Peter Anvin
2026-01-21 10:04 ` Uros Bizjak
2026-01-20 19:53 ` [PATCH v1 04/14] x86/boot: modernize the segment structure for the header and setup H. Peter Anvin
2026-01-20 19:53 ` [PATCH v1 05/14] x86/boot: call puts() from within die() H. Peter Anvin
2026-01-21 10:07 ` Uros Bizjak
2026-01-20 19:53 ` [PATCH v1 06/14] x86/boot: add comment barriers for the different headers H. Peter Anvin
2026-01-20 19:53 ` [PATCH v1 07/14] x86/boot: factor out the 16-bit startup code from header.S H. Peter Anvin
2026-01-21 10:08 ` Uros Bizjak
2026-01-20 19:54 ` [PATCH v1 08/14] x86: make CONFIG_EFI_STUB unconditional H. Peter Anvin
2026-01-20 19:54 ` [PATCH v1 09/14] x86/boot: make the relocatable kernel unconditional H. Peter Anvin
2026-01-20 19:54 ` [PATCH v1 10/14] x86/boot: explicitly put the old command line pointer in header.S H. Peter Anvin
2026-01-20 19:54 ` [PATCH v1 11/14] x86/boot: use __seg_fs and __seg_gs in the real-mode boot code H. Peter Anvin
2026-01-21 8:56 ` Uros Bizjak
2026-01-21 9:40 ` Uros Bizjak
2026-01-21 15:13 ` H. Peter Anvin
2026-01-21 16:03 ` Uros Bizjak
2026-01-22 18:57 ` [PATCH v1 08/14] x86: make CONFIG_EFI_STUB unconditional Simon Glass
2026-01-23 0:11 ` H. Peter Anvin
2026-01-26 21:19 ` Simon Glass
2026-01-26 22:20 ` H. Peter Anvin
2026-01-27 1:44 ` Simon Glass
2026-01-27 2:39 ` H. Peter Anvin
2026-01-27 2:54 ` H. Peter Anvin
2026-01-27 3:14 ` Simon Glass
2026-01-27 3:21 ` H. Peter Anvin
2026-01-29 22:13 ` Simon Glass
2026-01-29 22:22 ` H. Peter Anvin
2026-01-21 16:07 ` [PATCH v1 11/14] x86/boot: use __seg_fs and __seg_gs in the real-mode boot code Uros Bizjak
2026-01-20 19:54 ` [PATCH v1 12/14] x86/boot: tweak a20.c for better code generation H. Peter Anvin
2026-01-21 10:10 ` Uros Bizjak
2026-01-21 11:49 ` David Laight
2026-01-24 3:00 ` Maciej W. Rozycki
2026-01-24 4:24 ` H. Peter Anvin
2026-01-24 23:07 ` David Laight
2026-01-24 23:16 ` H. Peter Anvin
2026-01-24 23:40 ` H. Peter Anvin
2026-01-20 19:54 ` [PATCH v1 13/14] x86/boot: simplify x86/boot/cmdline.c by using __seg_fs H. Peter Anvin
2026-01-21 10:11 ` Uros Bizjak
2026-01-20 19:54 ` [PATCH v1 14/14] compiler-gcc: Remove obsolete RELOC_HIDE() macro H. Peter Anvin
2026-01-21 10:18 ` [PATCH v1 00/14] x86 boot code cleanups, batch 1 Uros Bizjak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260120195407.1163051-1-hpa@zytor.com \
--to=hpa@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=kas@kernel.org \
--cc=kees@kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rick.p.edgecombe@intel.com \
--cc=tglx@kernel.org \
--cc=ubizjak@gmail.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®