RE: [RFC PATCH v3 0/2] selftests/x86: sysret_rip update for FRED system

From: Li, Xin3
Date: Tue Jan 24 2023 - 18:20:28 EST


> >>
> >> Xin Li reported sysret_rip test fails at:
> >>
> >> assert(ctx->uc_mcontext.gregs[REG_EFL] ==
> >> ctx->uc_mcontext.gregs[REG_R11]);
> >
> >On FRED systems, flags is 0x200a93 and r11 is 0xfeedfacedeadbeef here.
> >
> >We need to remove or change this assertion, maybe:
> > assert(ctx->uc_mcontext.gregs[REG_EFL] == ctx->uc_mcontext.gregs[REG_R11] ||
> > r11_sentinel == ctx->uc_mcontext.gregs[REG_R11]);
> >
> >>
> >> in a FRED system. Let's handle the FRED system scenario too. The 'syscall'
> >> instruction in a FRED system doesn't set %r11=%rflags.
> >>
>
> This should use check_regs_result() – which is exactly the reason I made that a
> separate function.

Exactly.