From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: "Liran Alon" <liran.alon@oracle.com>,
"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Sasha Levin" <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL for 4.4 02/35] KVM: x86: Don't re-execute instruction when not passing CR2 value
Date: Wed, 24 Jan 2018 04:16:52 +0000 [thread overview]
Message-ID: <20180124041645.32420-2-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180124041645.32420-1-alexander.levin@microsoft.com>
From: Liran Alon <liran.alon@oracle.com>
[ Upstream commit 9b8ae63798cb97e785a667ff27e43fa6220cb734 ]
In case of instruction-decode failure or emulation failure,
x86_emulate_instruction() will call reexecute_instruction() which will
attempt to use the cr2 value passed to x86_emulate_instruction().
However, when x86_emulate_instruction() is called from
emulate_instruction(), cr2 is not passed (passed as 0) and therefore
it doesn't make sense to execute reexecute_instruction() logic at all.
Fixes: 51d8b66199e9 ("KVM: cleanup emulate_instruction")
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
arch/x86/include/asm/kvm_host.h | 3 ++-
arch/x86/kvm/vmx.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 9d2abb2a41d2..74fda1a453bd 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -998,7 +998,8 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu, unsigned long cr2,
static inline int emulate_instruction(struct kvm_vcpu *vcpu,
int emulation_type)
{
- return x86_emulate_instruction(vcpu, 0, emulation_type, NULL, 0);
+ return x86_emulate_instruction(vcpu, 0,
+ emulation_type | EMULTYPE_NO_REEXECUTE, NULL, 0);
}
void kvm_enable_efer_bits(u64);
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index c26255f19603..29f49c39a474 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -6022,7 +6022,7 @@ static int handle_invalid_guest_state(struct kvm_vcpu *vcpu)
if (test_bit(KVM_REQ_EVENT, &vcpu->requests))
return 1;
- err = emulate_instruction(vcpu, EMULTYPE_NO_REEXECUTE);
+ err = emulate_instruction(vcpu, 0);
if (err == EMULATE_USER_EXIT) {
++vcpu->stat.mmio_exits;
--
2.11.0
next prev parent reply other threads:[~2018-01-24 4:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-24 4:16 [PATCH AUTOSEL for 4.4 01/35] KVM: x86: emulator: Return to user-mode on L1 CPL=0 emulation failure Sasha Levin
2018-01-24 4:16 ` Sasha Levin [this message]
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 03/35] KVM: X86: Fix operand/address-size during instruction decoding Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 04/35] KVM: x86: ioapic: Fix level-triggered EOI and IOAPIC reconfigure race Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 05/35] KVM: x86: ioapic: Clear Remote IRR when entry is switched to edge-triggered Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 06/35] KVM: x86: ioapic: Preserve read-only values in the redirection table Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 08/35] cpufreq: Add Loongson machine dependencies Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 07/35] ACPI / bus: Leave modalias empty for devices which are not present Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 09/35] bcache: check return value of register_shrinker Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 10/35] drm/amdgpu: Fix SDMA load/unload sequence on HWS disabled mode Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 11/35] drm/amdkfd: Fix SDMA ring buffer size calculation Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 13/35] openvswitch: fix the incorrect flow action alloc size Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 12/35] drm/amdkfd: Fix SDMA oversubsription handling Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 15/35] btrfs: fix deadlock when writing out space cache Sasha Levin
2018-01-24 4:16 ` [PATCH AUTOSEL for 4.4 14/35] mac80211: fix the update of path metric for RANN frame Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 16/35] KVM: VMX: Fix rflags cache during vCPU reset Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 18/35] nfsd: CLOSE SHOULD return the invalid special stateid for NFSv4.x (x>0) Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 17/35] xen-netfront: remove warning when unloading module Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 20/35] nfsd: Ensure we check stateid validity in the seqid operation checks Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 19/35] nfsd: Ensure we don't recognise lock stateids after freeing them Sasha Levin
2018-01-24 15:48 ` J. Bruce Fields
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 22/35] nfsd: check for use of the closed special stateid Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 21/35] grace: replace BUG_ON by WARN_ONCE in exit_net hook Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 24/35] hwmon: (pmbus) Use 64bit math for DIRECT format values Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 23/35] lockd: fix "list_add double add" caused by legacy signal interface Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 25/35] net: ethernet: xilinx: Mark XILINX_LL_TEMAC broken on 64-bit Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 27/35] SUNRPC: Allow connect to return EHOSTUNREACH Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 26/35] quota: Check for register_shrinker() failure Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 28/35] kmemleak: add scheduling point to kmemleak_scan() Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 29/35] drm/omap: Fix error handling path in 'omap_dmm_probe()' Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 30/35] xfs: ubsan fixes Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 31/35] scsi: aacraid: Prevent crash in case of free interrupt during scsi EH path Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 32/35] scsi: ufs: ufshcd: fix potential NULL pointer dereference in ufshcd_config_vreg Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 33/35] media: usbtv: add a new usbid Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 35/35] staging: rtl8188eu: Fix incorrect response to SIOCGIWESSID Sasha Levin
2018-01-24 4:17 ` [PATCH AUTOSEL for 4.4 34/35] usb: gadget: don't dereference g until after it has been null checked Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180124041645.32420-2-alexander.levin@microsoft.com \
--to=alexander.levin@microsoft.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liran.alon@oracle.com \
--cc=rkrcmar@redhat.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).