[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] xen/x86: fix xen.efi boot crash from some bootloaders
On 04.08.2025 13:00, Andrew Cooper wrote: > On 04/08/2025 10:34 am, Jan Beulich wrote: >> On 24.07.2025 16:07, Yann Sionneau wrote: >>> xen.efi PE does not boot when loaded from shim or some patched >>> downstream grub2. >>> >>> What happens is the bootloader would honour the MEM_DISCARDABLE >>> flag of the .reloc section meaning it would not load its content >>> into memory. >>> >>> But Xen is parsing the .reloc section content twice at boot: >>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362 >>> * >>> https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237 >>> >>> Therefore it would crash with the following message: >>> "Unsupported relocation type" as reported there: >>> >>> * >>> https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838 >>> * >>> https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@xxxxxxxx/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5 >>> >>> This commit adds a small C host tool named keeprelocs >>> that is called after xen.efi is produced by the build system >>> in order to remove this bit from its .reloc section header. >>> >>> Signed-off-by: Yann Sionneau <yann.sionneau@xxxxxxxxxx> >> So I found a way to deal with this at the linker side, without any new >> command >> line options. Behavior is solely driven by the attributes of any incoming >> .reloc >> sections (of which there would be none by default, retaining original >> behavior). >> The important patch is [1], but at least the first patch of the series [2] >> would >> in most cases also be wanted/needed (patch 04 is obviously a mechanical >> prereq >> for the main patch). Need for other of the prereqs there depends on the scope >> and purpose of one's binutils build(s). >> >> [1] https://sourceware.org/pipermail/binutils/2025-August/143153.html >> [2] https://sourceware.org/pipermail/binutils/2025-August/143141.html > > That's good to see. Do we need any matching changes in Xen? Well, we'll need some (zero-size) contribution to .reloc then. For my testing I hacked this into the linking rule (which is a mess already anyway), but I hope / expect to find a cleaner solution for upstreaming. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |