extern "x86-interrupt" fn double_fault_handler(
stack_frame: InterruptStackFrame,
error_code: u64,
) -> !Expand description
Performs the double fault handler operation.
Uses IST stack so the handler always runs on a known-good stack, even
when RSP0 is corrupt. We must still do swapgs if the fault originated
from Ring 3 (or from Ring 0 code that already did swapgs, e.g. the
iretq path in elf_ring3_trampoline).
ยงNote on divergent handler
This handler is -> !, so SwapGsGuard::drop will never run. That is
fine because we never return to the interrupted context.