> -----Original Message----- > From: Jan Beulich [mailto:[email protected]] > Sent: 07 September 2017 11:42 > To: xen-devel <[email protected]> > Cc: Andrew Cooper <[email protected]>; Paul Durrant > <[email protected]> > Subject: [PATCH] x86/HVM: correct repeat count update in linear->phys > translation > > For the insn emulator's fallback logic in REP MOVS/STOS/INS/OUTS > handling to work correctly, *reps must not be set to zero when > returning X86EMUL_UNHANDLEABLE. > > Signed-off-by: Jan Beulich <[email protected]> >
Acked-by: Paul Durrant <[email protected]> > --- a/xen/arch/x86/hvm/emulate.c > +++ b/xen/arch/x86/hvm/emulate.c > @@ -566,15 +566,16 @@ static int hvmemul_linear_to_phys( > if ( pfec & (PFEC_page_paged | PFEC_page_shared) ) > return X86EMUL_RETRY; > done /= bytes_per_rep; > - *reps = done; > if ( done == 0 ) > { > ASSERT(!reverse); > if ( npfn != gfn_x(INVALID_GFN) ) > return X86EMUL_UNHANDLEABLE; > + *reps = 0; > x86_emul_pagefault(pfec, addr & PAGE_MASK, &hvmemul_ctxt- > >ctxt); > return X86EMUL_EXCEPTION; > } > + *reps = done; > break; > } > > > _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
