Re: [PATCH] KVM: Emulate multibyte NOP

From: Gleb Natapov
Date: Mon Jun 03 2013 - 04:21:17 EST


On Thu, May 30, 2013 at 01:22:39PM +0200, Paolo Bonzini wrote:
> This is encountered when booting RHEL5.9 64-bit. There is another bug
> after this one that is not a simple emulation failure, but this one lets
> the boot proceed a bit.
>
> Cc: <stable@xxxxxxxxxxxxxxx> # 3.9
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Applied to master, thanks.

> ---
> arch/x86/kvm/emulate.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
> index 48e6abd..aa68106 100644
> --- a/arch/x86/kvm/emulate.c
> +++ b/arch/x86/kvm/emulate.c
> @@ -3987,7 +3987,8 @@ static const struct opcode twobyte_table[256] = {
> DI(ImplicitOps | Priv, invd), DI(ImplicitOps | Priv, wbinvd), N, N,
> N, D(ImplicitOps | ModRM), N, N,
> /* 0x10 - 0x1F */
> - N, N, N, N, N, N, N, N, D(ImplicitOps | ModRM), N, N, N, N, N, N, N,
> + N, N, N, N, N, N, N, N,
> + D(ImplicitOps | ModRM), N, N, N, N, N, N, D(ImplicitOps | ModRM),
> /* 0x20 - 0x2F */
> DIP(ModRM | DstMem | Priv | Op3264, cr_read, check_cr_read),
> DIP(ModRM | DstMem | Priv | Op3264, dr_read, check_dr_read),
> @@ -4822,6 +4823,7 @@ twobyte_insn:
> case 0x08: /* invd */
> case 0x0d: /* GrpP (prefetch) */
> case 0x18: /* Grp16 (prefetch/nop) */
> + case 0x1f: /* nop */
> break;
> case 0x20: /* mov cr, reg */
> ctxt->dst.val = ops->get_cr(ctxt, ctxt->modrm_reg);
> --
> 1.8.1.4

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/