Re: [PATCH v1 0/3] x86/boot: Supply boot_param in rdi instead of rsi from startup_64()

From: Brian Gerst
Date: Mon Jun 23 2025 - 08:34:01 EST


On Mon, Jun 23, 2025 at 4:16 AM Khalid Ali <khaliidcaliy@xxxxxxxxx> wrote:
>
> From: Khalid Ali <khaliidcaliy@xxxxxxxxx>
>
> The current kernel entry point takes one argument which is boot_param
> from RSI. The only argument entry point recieves is pointer to
> boot_param.
>
> In order to comply with the ABI calling convension the entry point must
> recieve the boot_param from RDI instead of RSI. There were no specific
> use case used for RDI, so the kernel can safely recieve argument from
> that register to better comply with ABI.
>
> This patch makes the kernel to recieve boot_param which is the only
> argument it recieves, from RDI instead of RSI. All changes needed for
> stability and clarity have being changed.
>
> Changelog:
> * Kernel uncompressed entry point expects boot_param from RDI instead
> of RSI.
> * The decompressor has being adjusted to supply argument from RDI
> instead RSI.
> * libstub has being adjusted to supply argument from RDI instead of RSI.
>
> After throughly tested there were no regression and UDs has being
> observed. Looking forward for feedback.
>
> arch/x86/boot/compressed/head_64.S | 2 +-
> arch/x86/kernel/head_64.S | 4 ++--
> drivers/firmware/efi/libstub/x86-stub.c | 4 ++--
> 3 files changed, 5 insertions(+), 5 deletions(-)

This was never intended to conform to the C ABI, why is it necessary
to change it?

Also, you cannot break this up into three patches. Every patch must
be fully functional so that git bisect will work.


Brian Gerst