Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp8562506ybn; Tue, 1 Oct 2019 09:51:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqxV9or9BBP/QRvgN6ixIggWieaQJu0tGBRTX+XOSyJMLdVO8l3pOWr6PfBUC228BphBSigr X-Received: by 2002:a05:6402:3d2:: with SMTP id t18mr26108803edw.136.1569948679152; Tue, 01 Oct 2019 09:51:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569948679; cv=none; d=google.com; s=arc-20160816; b=b1PD1+vWG/l8sRLWSX3svPThGfl1+pLFXKExd9NPhSNatxj5IXzOOWyevkYs1Y4vax wAg1MyYfGPhAMqJeMTi0L2Gtwu3MoSIjDaAxCNff3yt5vyjEUU4CVaLshLfuAalpSLBw 5VQ/4mg3DX8r01eepTzhQ5rYO8iZrg7z4szD4mdyxzl2GRmg8qCKfYU+hfpgUtraXrrK hoPFdS7avzA/BsV0spYQuqXJAvb9LYRCA4k7VuNmgzsWi9qnDjha9Uvm6AIXVk/04C21 h7na7RGrZO0oHGI1jHEdzD8peavRBWrhEEpd9QIwub1IRmQb/4pB6x/vJPlvHgM5fkuM cUAw== 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 :message-id:date:subject:cc:to:from; bh=mwjlZaHCLCSbxhRNLEbDb4yei1dQtRYimfgmx780Y6Q=; b=1AEKN8jYIz/w5cfquJXf2+Cm00acx7kj8t5XOY2uC4a12NWReHfJ/w/rB1PXkCggdg qiwNzKGXlFDImPb98FHcKYUDBZn4jjJA90e0QBilFFDU4fE7WObyJq9QS8Tf9HyVTbBg +qvSKsGMymDXWbJl6gmpG2/U2r1zHGdBkb5IKpAY/KRlKYZoLg121+DsTupU+BTeM7jz KguGxV8vsvFLLAAErimaP7eJB+RKOaUXTXALjy8KMlHWLou2Wjm8NLsIEXTpT3TtjvQD mkyRBjYTsOLpN33SuMc0kKX+t5llGTCQMsZ1hLz4oZ/NSSFka933iouk3lcgVJ3JKG+v /NFw== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y3si10198907ede.38.2019.10.01.09.50.54; Tue, 01 Oct 2019 09:51:19 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389795AbfJAQVZ (ORCPT + 99 others); Tue, 1 Oct 2019 12:21:25 -0400 Received: from mga17.intel.com ([192.55.52.151]:54870 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389776AbfJAQVZ (ORCPT ); Tue, 1 Oct 2019 12:21:25 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Oct 2019 09:21:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,571,1559545200"; d="scan'208";a="221059554" Received: from sjchrist-coffee.jf.intel.com ([10.54.74.41]) by fmsmga002.fm.intel.com with ESMTP; 01 Oct 2019 09:21:24 -0700 From: Sean Christopherson To: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Cc: Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Nadav Amit Subject: [PATCH] KVM: nVMX: Fix consistency check on injected exception error code Date: Tue, 1 Oct 2019 09:21:23 -0700 Message-Id: <20191001162123.26992-1-sean.j.christopherson@intel.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Current versions of Intel's SDM incorrectly state that "bits 31:15 of the VM-Entry exception error-code field" must be zero. In reality, bits 31:16 must be zero, i.e. error codes are 16-bit values. The bogus error code check manifests as an unexpected VM-Entry failure due to an invalid code field (error number 7) in L1, e.g. when injecting a #GP with error_code=0x9f00. Nadav previously reported the bug[*], both to KVM and Intel, and fixed the associated kvm-unit-test. [*] https://patchwork.kernel.org/patch/11124749/ Reported-by: Nadav Amit Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson --- arch/x86/kvm/vmx/nested.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index 41abc62c9a8a..e76eb4f07f6c 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -2610,7 +2610,7 @@ static int nested_check_vm_entry_controls(struct kvm_vcpu *vcpu, /* VM-entry exception error code */ if (CC(has_error_code && - vmcs12->vm_entry_exception_error_code & GENMASK(31, 15))) + vmcs12->vm_entry_exception_error_code & GENMASK(31, 16))) return -EINVAL; /* VM-entry interruption-info field: reserved bits */ -- 2.22.0