Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp63525ybp; Thu, 3 Oct 2019 10:12:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqwZMeRhzawi9KEBcrtvfRMPbP1IlHjCIeRfWVJh/Ar0rYosS7+56YtACsm2W311e+uS57vf X-Received: by 2002:a17:906:18e2:: with SMTP id e2mr8631906ejf.129.1570122766896; Thu, 03 Oct 2019 10:12:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570122766; cv=none; d=google.com; s=arc-20160816; b=Y9n1UP3KgUou7RZH8lEw+ayFl82YVeNdbb+9jkH1ngHt3EH8jGt3w5HPLcvs9zVevn Bo0VCe9YE6bUDW91B8/G1WcKXnlMgAb9aJLizARAFk85GBSqo1bSABCGeeykHQRJ3ePf iRvLQlQaZ1zlYpswpwUvR9PwHSPtC5efb5Rupzo/f+5Px+9unxlhoLhKrkKyC/+fGR3k DVMCM8+GjIaKoSkiFJ0Ob9B+suWPfAPUnr2gimU0A/u5Va1f4uIywZcT9UIQvg+s/OgC 4/y6zPKwJX/OUzWt5asbmJQtU/snF6haDAU3mgkGSoEBRZyvYtb8kOD1+JnDxQxhI3DJ mF0g== 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=A+8yUsF1F55gTyMXLyyFo7KAgCrTSvR8veQz0nsN58w=; b=YovfS9CpUDnD5HnY9eVnFlF2XWdYLDNTV7ZbSDKlpxXvNbG2mEx4Lj1OTXJlESIGAV /YX07pjWg0EqUjRTsabR2OOIxrg8evKoTQxyT3uWw0gKCBhA+FHiOXrrkZDG7KGzZFQf Zk6zyItjFqD8QVodf4fLDYaq3fvpgmOLvn+T7iMq2PQ9MYwHgp8V9lqbBqS+5KcQ1gIu jZ3UPs8b+LcQ6NALCEtGBRT2TktBwf+xADWD83xSJfgJAd1z3jQReUNrJDjrNVmTDblB ixFVqwOXiQ+JpGzW1ZbfjIG+/FSov9T3YEzxGRs+C4GmVnyXMTp9fj5Fo36l6U7iCVWb /3DQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Lo1a0Oyj; 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 p14si1635495ejn.192.2019.10.03.10.12.22; Thu, 03 Oct 2019 10:12:46 -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=Lo1a0Oyj; 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 S2392189AbfJCQfB (ORCPT + 99 others); Thu, 3 Oct 2019 12:35:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:43648 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392166AbfJCQez (ORCPT ); Thu, 3 Oct 2019 12:34:55 -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 545312070B; Thu, 3 Oct 2019 16:34:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120494; bh=m9qnTR0LR1iK60+h83avMrZtFdUbDuMY45XhFOrTCCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lo1a0OyjHAi5Bq/RcEVUisL8363pBtScQebjYiZm0ipOilbkoEDteuFuUdi6/8Bzn WbZGfPl/48t5q/djy+q+Bn91+ZMgnCoTDgX9WBXAvk/3C59I75g8BidCgS/OxM2aDt VFmqwndEtGyMHrbQ3lYzaIWYEwIdEEidtVXgaL1w= 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 5.2 241/313] KVM: x86: set ctxt->have_exception in x86_decode_insn() Date: Thu, 3 Oct 2019 17:53:39 +0200 Message-Id: <20191003154556.780722120@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@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 @@ -5377,6 +5377,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 @@ -6482,6 +6482,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; }