[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 10/13/25 13:41, Jan Beulich wrote:
> On 25.08.2025 16:29, Jan Beulich wrote:
>> On 25.08.2025 16:17, Yann Sionneau wrote:
>>> On 8/4/25 11:34, 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 sounds great!
>>> It's clearly better to fix the issue by changing/improving binutils.
>>> Let's drop my patch in Xen if this gets accepted in binutils!
>>
>> Luckily I'm in a position where I don't need "acceptance", but merely
>> "absence of objections". The sole reason for the present delay is with
>> a colliding MIPS patch, which I'd rather see go in first.
>>
>>> It would be nice if you could keep us posted in xen-devel of the
>>> status/progress of the binutils patches.
>>
>> I'll try to remember.
> 
> Here you go - the series went in late last week.
> 
> Jan
> 

Thanks Jan :)

-- 


--
Yann Sionneau | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech





 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.