On 24/03/2026 8:51 am, Yi Lai wrote: > The existing 'sysret_rip' selftest asserts that 'regs->r11 == > regs->flags'. This check relies on the behavior of the SYSCALL > instruction on legacy x86_64, which saves 'RFLAGS' into 'R11'. > > However, on systems with FRED (Flexible Return and Event Delivery) > enabled, instead of using registers, all state is saved onto the stack. > Consequently, 'R11' retains its userspace value, causing the assertion > to fail. > > Fix this by detecting if FRED is enabled and skipping the register > assertion in that case. The detection is done by checking if the RPL > bits of the GS selector are preserved after a hardware exception. > IDT (via IRET) clears the RPL bits of NULL selectors, while FRED (via > ERETU) preserves them. > > Suggested-by: Andrew Cooper <[email protected]> > Signed-off-by: Yi Lai <[email protected]>
Reviewed-by: Andrew Cooper <[email protected]>

