Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2273981imb; Mon, 4 Mar 2019 00:26:00 -0800 (PST) X-Google-Smtp-Source: APXvYqy4H5MQhFGqg7DNUEQ1hBd0gCw83ogC8JDrxPTAJijOt2leZNfAhMJqUbvsBHLQckEhp0xe X-Received: by 2002:a65:49c4:: with SMTP id t4mr4845685pgs.421.1551687960298; Mon, 04 Mar 2019 00:26:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551687960; cv=none; d=google.com; s=arc-20160816; b=ib/SjxEXgsK5M/kV/HhjyFPXfgXcwr/3hQq3BEHxIchrjXKM9LA8aTEurqr06BBjC0 gvoAAlHhMlVNYwYkMqDkHal8U9sbkgbAkkeHNZRa16G0ZNuD7VgiiuG3WizAJdHWcEE8 KQ5sEw6aA3ji4ZGneaB6FzqtUekVPcgOxHC8jc+/k7YB0jSdm6cpL8LyXBjlc0HwNMqf wHXS/1Rqx49rWynN+W++DiGJeueGa5ueJbGag4jinTCcTH6gs/11x9CJ7mdK/7nzmYFy ZcX0srZ1uc87ILq/+CywIJMaZX711n+jTYD1GkTGAOR8a6U9DLzW0QyrSD7PYNkoxgIg 66ng== 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=34rlZmzqZb02VbZgWL2wfAuHyc+CmqtYZvA4BA7ueKc=; b=ji6P3u0KzZXJ5tqlInSSQUt52kU+b3qype/VKBX64S0UfvdgtEqejgygS6dgunqoAT maZQEVW/EzfWuTukhjx4hq2KwK5IagVg/3hwIVoA7d2xfX0IKeYlFIWNf/e+vjcFEhjI 7DNbumvuP/SodEpKRrKgVcR1STfr4+076AkbHz4BFUgKlZ/TLibDZI8iZhQ87chhTtYR MirqFUWgpi0vyesjxbb4/zMhZoh4ODturBehMuiS9An+aZjEaJjS4bAG8tNeqXPhn+XS fEOw8h+KNweePVTMcrO0bTeuVeMugCqfCCpVlluAziyO7CJFdWIS3hMVC05RdyOkg5n7 qo2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0G52PXmD; 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 a16si4495914pgw.75.2019.03.04.00.25.45; Mon, 04 Mar 2019 00:26:00 -0800 (PST) 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=0G52PXmD; 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 S1726660AbfCDIXl (ORCPT + 99 others); Mon, 4 Mar 2019 03:23:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:39840 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726622AbfCDIXe (ORCPT ); Mon, 4 Mar 2019 03:23:34 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.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 5176620863; Mon, 4 Mar 2019 08:23:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551687813; bh=65c27tibzNIDbtERYjy8MwgRS76XbpiTKqn4ZKx1DSY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0G52PXmDtl+QXSivT95JadYk666nbltU3UZbZr9VwIGLR3NoBPwMh1nV2HPhG2Bx5 sUNE7Y1GaKeVsHfPvVjlGJG7VIxxc8R1vXZdmo5VVZXK9SMjQxS2bBSX9pDKVD8Oqw 72Xlt3aTCG6GuPtYWoWWmoNT3xaENeJGOwYE/C8M= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vitaly Kuznetsov , Paolo Bonzini , Sasha Levin Subject: [PATCH 4.9 28/32] KVM: nSVM: clear events pending from svm_complete_interrupts() when exiting to L1 Date: Mon, 4 Mar 2019 09:22:16 +0100 Message-Id: <20190304081604.373320084@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190304081602.307094059@linuxfoundation.org> References: <20190304081602.307094059@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 619ad846fc3452adaf71ca246c5aa711e2055398 ] kvm-unit-tests' eventinj "NMI failing on IDT" test results in NMI being delivered to the host (L1) when it's running nested. The problem seems to be: svm_complete_interrupts() raises 'nmi_injected' flag but later we decide to reflect EXIT_NPF to L1. The flag remains pending and we do NMI injection upon entry so it got delivered to L1 instead of L2. It seems that VMX code solves the same issue in prepare_vmcs12(), this was introduced with code refactoring in commit 5f3d5799974b ("KVM: nVMX: Rework event injection and recovery"). Signed-off-by: Vitaly Kuznetsov Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/svm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index afc2bd03b4d9e..01eb0451b96d3 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -2862,6 +2862,14 @@ static int nested_svm_vmexit(struct vcpu_svm *svm) kvm_mmu_reset_context(&svm->vcpu); kvm_mmu_load(&svm->vcpu); + /* + * Drop what we picked up for L2 via svm_complete_interrupts() so it + * doesn't end up in L1. + */ + svm->vcpu.arch.nmi_injected = false; + kvm_clear_exception_queue(&svm->vcpu); + kvm_clear_interrupt_queue(&svm->vcpu); + return 0; } -- 2.19.1