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

Reply via email to