Re: [PATCH v8 00/23] efi/x86: Avoid bare metal decompressor during EFI boot

From: Ard Biesheuvel
Date: Sun Aug 06 2023 - 06:05:46 EST


On Sun, 6 Aug 2023 at 00:19, Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
>
> On Sat, 5 Aug 2023 at 23:07, Borislav Petkov <bp@xxxxxxxxx> wrote:
> >
> > On Sat, Aug 05, 2023 at 07:37:17PM +0200, Ard Biesheuvel wrote:
> > > So this is the host booting, right?
> >
> > Yes.
> >
> > > So is the position of the C bit perhaps getting detect incorrectly?
> >
> > I don't know yet. But the evildoer is someone else:
> >
> > 02d47ce2ae02 ("x86/head_64: Store boot_params pointer in callee save register")
> >
> > after bisection. More staring later as to why...
> >
>
> How bizarre.
>
> But that was a bonus patch anyway, so we could just drop it for now.

I suspect this should fix the issue:

--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -110,6 +110,7 @@ SYM_CODE_START_NOALIGN(startup_64)
* programmed into CR3.
*/
leaq _text(%rip), %rdi
+ movq %r15, %rsi
call __startup_64

/* Form the CR3 value being sure to include the CR3 modifier */