Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp576825ybn; Thu, 3 Oct 2019 09:05:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqwODOkiWHpwZ8OfDgMt6cm368xvLbmlt9D3ZgdihZ8YholIcoF+UvUpNOlSHQF/BC7dKT1x X-Received: by 2002:a50:b884:: with SMTP id l4mr10301137ede.295.1570118740688; Thu, 03 Oct 2019 09:05:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570118740; cv=none; d=google.com; s=arc-20160816; b=oocUgcdZWGg2U43qogn6/M4FC8vUIO09sT5AC3Z0SAIfTNHxaQ0wuZYWvaGUzmznD+ obkSOBbruUrszdNNw9x4ITXLwGkUU63zsQNdJYHML/27RJdCIObT2Ul4JTOfj3exgo4I z+84oOiyc1ZHK1AmU2ByOopRvbsNq5JvBG8Ijrv6y0I87Tiy3Dro4bqsc8EbAZQqYvnZ uVvL8mpcSkB+YLSo9Bjw+p3eiXvt6T86kkF7fsiFIeSvf8nnKHqgOhJMf9zWJY8nr7sX 3AmRC0cvNct0RPT0TYKPX3y1BTVY/qjneQ2omKSyOmqEPvyqRcFdxfloepfybY/tRvqL 92gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=aGYAhEavws39zU8Zk2jZONMjWTf7VaxAsdGPpukDz2Q=; b=gzqBv7/XP7ZiI7LhAgv+KOBtudoW5jBDBzelcUIY01jpls4zCS9OC6/vQ/Du4AsMAn kzyeDQApUxJbrBPOYDvbDt2rvPb7DY94UEimozVjzBFYrKBp7VE5Spee16LubRLYfY8l 6riVKCoOVMX67bNEE95UDVIz3Co/54Aa6gkumUWs16mAzK77XlGWCd8OywNBIoIBo0rn WG/xWddJHvE3gto6n+0eImV/YJz+bsNuZWnzF8uzBPDhqnyz1q9mj0+WTshwerTnSK0C hEoVKQAn3WBo/0WbN9gpApgb9Rb6bA2rugjCrc+LQ2UK0xM0Y67eTavsJ1wI2BObVCvl hDmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=u820+P7Y; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g21si1659376edm.116.2019.10.03.09.05.16; Thu, 03 Oct 2019 09:05:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=u820+P7Y; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730672AbfJCQAb (ORCPT + 99 others); Thu, 3 Oct 2019 12:00:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:44158 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731580AbfJCQA1 (ORCPT ); Thu, 3 Oct 2019 12:00:27 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 686E120700; Thu, 3 Oct 2019 16:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570118426; bh=F5QrHJ8dW3ius4QmW17jT6/U5gly7/R3QyccOZun8hY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u820+P7YAWfjMvZ6/im9M3GcUs/ZmERNkgliYHqxduh5h58nhpOhaJ7xujdkOFraz Kwc8b1IhNh4uMU4/pUAiVQ8OvyGdJ84RuSTl9q+Nj5NZ1QGBJN8J4YrZh5vpMUeFWL LW8F4BJlon3SRhM4yC7jmM2AyTq7Ckzz6BlifnFA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Denis Lunev , Roman Kagan , Denis Plotnikov , Jan Dakinevich , Paolo Bonzini Subject: [PATCH 4.4 82/99] KVM: x86: set ctxt->have_exception in x86_decode_insn() Date: Thu, 3 Oct 2019 17:53:45 +0200 Message-Id: <20191003154336.086758733@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154252.297991283@linuxfoundation.org> References: <20191003154252.297991283@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jan Dakinevich commit c8848cee74ff05638e913582a476bde879c968ad upstream. x86_emulate_instruction() takes into account ctxt->have_exception flag during instruction decoding, but in practice this flag is never set in x86_decode_insn(). Fixes: 6ea6e84309ca ("KVM: x86: inject exceptions produced by x86_decode_insn") Cc: stable@vger.kernel.org Cc: Denis Lunev Cc: Roman Kagan Cc: Denis Plotnikov Signed-off-by: Jan Dakinevich Signed-off-by: Paolo Bonzini Signed-off-by: Greg Kroah-Hartman --- arch/x86/kvm/emulate.c | 2 ++ arch/x86/kvm/x86.c | 6 ++++++ 2 files changed, 8 insertions(+) --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -5245,6 +5245,8 @@ done_prefixes: ctxt->memopp->addr.mem.ea + ctxt->_eip); done: + if (rc == X86EMUL_PROPAGATE_FAULT) + ctxt->have_exception = true; return (rc != X86EMUL_CONTINUE) ? EMULATION_FAILED : EMULATION_OK; } --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -5487,6 +5487,12 @@ int x86_emulate_instruction(struct kvm_v emulation_type)) return EMULATE_DONE; if (ctxt->have_exception) { + /* + * #UD should result in just EMULATION_FAILED, and trap-like + * exception should not be encountered during decode. + */ + WARN_ON_ONCE(ctxt->exception.vector == UD_VECTOR || + exception_type(ctxt->exception.vector) == EXCPT_TRAP); inject_emulated_exception(vcpu); return EMULATE_DONE; }