Re: [PATCH v3] x86/hyperv: Use __naked attribute to fix stackless C function

Wei Liu
2026-03-04T05:50:29Z

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@citrix.com> # asm parts, not hv parts
> Reviewed-by: Mukesh Rathor <mrathor@linux.microsoft.com>
> Acked-by: Uros Bizjak <ubizjak@gmail.com>
> Cc: Wei Liu <wei.liu@kernel.org>
> Cc: linux-hyperv@vger.kernel.org
> Fixes: 94212d34618c ("x86/hyperv: Implement hypervisor RAM collection into vmcore")
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

Applied to hyperv-fixes. Thanks Ard!