> >> > >> 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.