On Tue, Aug 27, 2019 at 01:07:04PM +0000, Jan Dakinevich wrote:
> x86_emulate_instruction(), the caller of x86_decode_insn(), expects
> that x86_decode_insn()'s returning value belongs to EMULATION_* name
> space. However, this function may return value from X86EMUL_* name
> space.
> 
> Although, the code behaves properly (because both X86EMUL_CONTINUE and
> EMULATION_OK are equal to 0) this change makes code more consistent and
> it is required for further fixes.
> 
> Cc: Denis Lunev <[email protected]>
> Cc: Roman Kagan <[email protected]>
> Cc: Denis Plotnikov <[email protected]>
> Signed-off-by: Jan Dakinevich <[email protected]>
> ---
>  arch/x86/kvm/emulate.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
> index 718f7d9..6170ddf 100644
> --- a/arch/x86/kvm/emulate.c
> +++ b/arch/x86/kvm/emulate.c
> @@ -5144,7 +5144,7 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void 
> *insn, int insn_len)
>       else {
>               rc = __do_insn_fetch_bytes(ctxt, 1);
>               if (rc != X86EMUL_CONTINUE)
> -                     return rc;
> +                     goto done;

Funny how things go unnoticed for years and then suddenly...

https://lkml.kernel.org/r/[email protected]

>       }
>  
>       switch (mode) {
> -- 
> 2.1.4
> 

Reply via email to