Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2284150imb; Mon, 4 Mar 2019 00:46:45 -0800 (PST) X-Google-Smtp-Source: APXvYqwPiRy9+tLG2hKzug8x2e3SYaY5y9Zsm0rfmhXZCbdGGAkg0nDPO6/Ak4/x9k4QiduP7/7E X-Received: by 2002:a63:1a5d:: with SMTP id a29mr16351471pgm.369.1551689205179; Mon, 04 Mar 2019 00:46:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551689205; cv=none; d=google.com; s=arc-20160816; b=y2z97yhLc7F4tBVeZGIhQInOwy0JmjqX9LpUac6wd+hxXVffFN1lRu0jRRS2z26zqA BGBZg3udOoJIZcFpoydz49T4zXfJsx1BNbuZChx2oQl4DiNIYA3VNoXd5/5OdeeSIbXf W4bEVEyl43+F4aY8wnoOkfEa3PVPBJIXZysKDT7RIofN3ewhj570wlMnOmTCHxx0HC+6 oEdwI6Diwpbd0TG9js/hK/D8CsI2juycRm+j15SGBBkI+uNzmK/vkCOWxZfgm1jinK/r J8t0sRma1P5kjtJ8bVg9S4Zc7lZC2TRKl9znXV70sNIgqPnFBrIdndMdsgamcjAs6608 eVMQ== 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=K7E8znXotGAfWlktwtLdr/btkrlpAr8xOAb8oY/XRFo=; b=f+pwV+i3ag3z8BHdMF+JYPIm/iW5E1F3iKi0x1Z31CiDBMD4YrkENOY6Qnm1VyjyZX irOfcP3H59B8YMitakYCfHbDeitq2SCBVzSRnOnelRFpvgcZf9fLb/WojXiHArcHrCfK vGOtr28NZkJFLALQYhexl4ZVka3731DSe67WVkHSU0oQvCluLtgwNBqdv6ZDjkEdKXVg IHXNJtjJ9e+ylBYl63sN8XInhUHMX6V/q7FjAtQi3O0UnjWdURNZx3X7J6FDiylz4ABk j5B+/Ia2UuO0qrqdbwj0SBNLWUO4TAd7/pmGtBYODUGuQmBfw0RGUUPETyKtF3I9HJtH Msow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aeifuzGz; 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 u10si4865909pgh.255.2019.03.04.00.46.29; Mon, 04 Mar 2019 00:46:45 -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=aeifuzGz; 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 S1726066AbfCDIqK (ORCPT + 99 others); Mon, 4 Mar 2019 03:46:10 -0500 Received: from mail.kernel.org ([198.145.29.99]:49526 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727176AbfCDI07 (ORCPT ); Mon, 4 Mar 2019 03:26:59 -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 859A420863; Mon, 4 Mar 2019 08:26:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551688019; bh=xkd372WcYQ6mzn5tVTYWZO5iyd2+BRzFA787fLZz1y4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aeifuzGzoH8//42YAoZpMmCeq70Ro6g2eZBo/a68LZ51LGxEJGqnWb+1GEhAHR/1V ZQjc7bATbtrjkA/qi1i+Xik0Mj5pWMor7n5Zh0ej0bNzFqLrVVFEFw3tj8UXdiq0uX 9KmMXxdaF9yBgcoJzLcXAf14wyPPdAJEB3MuSzik= 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.14 43/52] KVM: nSVM: clear events pending from svm_complete_interrupts() when exiting to L1 Date: Mon, 4 Mar 2019 09:22:41 +0100 Message-Id: <20190304081619.591774451@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190304081617.159014799@linuxfoundation.org> References: <20190304081617.159014799@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.14-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 a94beaecd3e02..c387047e926a2 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -2929,6 +2929,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