diff options
| author | Ard Biesheuvel <ardb@kernel.org> | 2026-03-02 19:45:31 +0300 |
|---|---|---|
| committer | Wei Liu <wei.liu@kernel.org> | 2026-03-11 19:54:24 +0300 |
| commit | 3fde5281b805370a6c3bd2ef462ebff70a0ea2c6 (patch) | |
| tree | bc02643ac010243c812b48f9f338596945e016dd /include/linux/debugobjects.h | |
| parent | edd20cb693d9cb5e3d6fcecd858093dab4e2b0aa (diff) | |
| download | linux-3fde5281b805370a6c3bd2ef462ebff70a0ea2c6.tar.xz | |
x86/hyperv: Use __naked attribute to fix stackless C function
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>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions
