Re: [PATCH v3] x86/hyperv: Use __naked attribute to fix stackless C function
From: Wei Liu
Date: Wed Mar 04 2026 - 00:50:55 EST
On Mon, Mar 02, 2026 at 05:45:31PM +0100, Ard Biesheuvel wrote:
> hv_crash_c_entry() is a C function that is entered without a stack,
> and this is only allowed for functions that have the __naked attribute,
> which informs the compiler that it must not emit the usual prologue and
> epilogue or emit any other kind of instrumentation that relies on a
> stack frame.
>
> So split up the function, and set the __naked attribute on the initial
> part that sets up the stack, GDT, IDT and other pieces that are needed
> for ordinary C execution. Given that function calls are not permitted
> either, use the existing long return coded in an asm() block to call the
> second part of the function, which is an ordinary function that is
> permitted to call other functions as usual.
>
> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> # asm parts, not hv parts
> Reviewed-by: Mukesh Rathor <mrathor@xxxxxxxxxxxxxxxxxxx>
> Acked-by: Uros Bizjak <ubizjak@xxxxxxxxx>
> Cc: Wei Liu <wei.liu@xxxxxxxxxx>
> Cc: linux-hyperv@xxxxxxxxxxxxxxx
> Fixes: 94212d34618c ("x86/hyperv: Implement hypervisor RAM collection into vmcore")
> Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
Applied to hyperv-fixes. Thanks Ard!