Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4751831pxj; Wed, 12 May 2021 12:24:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmYbQX9ihu+hCx7B6s4uCsKCLQIEpamT2pkqAUUhAobrM5hEjxO3A3y4/1xjRBb9jQTjob X-Received: by 2002:a50:ab1d:: with SMTP id s29mr44182559edc.203.1620847466568; Wed, 12 May 2021 12:24:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620847466; cv=none; d=google.com; s=arc-20160816; b=AY7WJBeXflMjejnHv5LdI7EK6QV5deAur2CnewxEZOJpo99kdrakk+1apXgiWYx0tN qOV2Naa1/9AmzzqoKoaCgms2Dp43h0XxpEbzS0ORLNPrutyMJkiyrfnIDOY5jqE95Dho rOIIs013XNwpNbMH37oVt2AV8eZoLDMvsryFE5+Lbj/fSg/XuYJbUtp+Bcm1aizVHEZI SdcZ53eaW8c7hYekL+9dMnuwn6E9UngK4sK3+yvR+Ju6tKyWjJZeJoE6RTPYSfxgNjpP d3/JOavt9LYDBbkNPG59joEX9LXbgHwUVmNn3sS1DrU3bflITP3UoRMhMyq9NLepoigP vy5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YY/Yx79bSQx1PtbIoYZVvuMKrGREOn5vKEJtSQEu3SU=; b=UXFQPek4XbTjLan8Wk0OA9iCYGC62D+nRuMu91A8YEYvRFYJ63XTU+p6roQT1ErNPg FoSQgi7s74JrcbFcmiFvRLSgziS4AUyV776HPA2+kOZOqRGF9XW/CYQBoJcCjY33SZ67 1rqA3Z8VUaDfllhXcPFuZC5ogK1jMee+xdrhDtKRt/yM59IvP7banuIcSSlfakYpU7fw mw7o82pH6/WSNaxSKVc1gA/4cZei7FA3GZ8ZlCy3QscOt5lC+LRM3j1IIzCxtb3bWAuN jiW6UHYAzw81v+9hDoadj2Y0DcENUVZWtQ2wkScQyP7Be+Fc7MvVkkOgLKGs3I/0JU5r sevg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=m1T8g+Qp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id mb14si718869ejb.101.2021.05.12.12.24.03; Wed, 12 May 2021 12:24:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=m1T8g+Qp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379802AbhELTUR (ORCPT + 99 others); Wed, 12 May 2021 15:20:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:46180 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244772AbhELQvK (ORCPT ); Wed, 12 May 2021 12:51:10 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3FB2D61D69; Wed, 12 May 2021 16:17:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620836275; bh=uxTgwmuAjklKrY+YBjaoLQuaLOCj/LEwHs0XYrayVcs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m1T8g+QpJjBnDYBUNt4EM3Dp0Ehzpe1vc+H4zP1ZfhGq00BmVsh2+WQIwPyCxtH0X M1k9/99bTcWE9gw0MLVLTFPcyEOqiaZ7oHzdNwDQnzW4yoR6wyZCBqX66+Cq9bBxKJ nsB2icIng+RoVZ9m6N7Ulg6lC4fW0/NufU61Um1k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Borislav Petkov , Tom Lendacky , Brijesh Singh , Sean Christopherson , Paolo Bonzini , Sasha Levin Subject: [PATCH 5.12 646/677] KVM: SVM: Zero out the VMCB array used to track SEV ASID association Date: Wed, 12 May 2021 16:51:32 +0200 Message-Id: <20210512144858.828419120@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Christopherson [ Upstream commit 3b1902b87bf11f1c6a84368470dc13da6f3da3bd ] Zero out the array of VMCB pointers so that pre_sev_run() won't see garbage when querying the array to detect when an SEV ASID is being associated with a new VMCB. In practice, reading random values is all but guaranteed to be benign as a false negative (which is extremely unlikely on its own) can only happen on CPU0 on the first VMRUN and would only cause KVM to skip the ASID flush. For anything bad to happen, a previous instance of KVM would have to exit without flushing the ASID, _and_ KVM would have to not flush the ASID at any time while building the new SEV guest. Cc: Borislav Petkov Reviewed-by: Tom Lendacky Reviewed-by: Brijesh Singh Fixes: 70cd94e60c73 ("KVM: SVM: VMRUN should use associated ASID when SEV is enabled") Signed-off-by: Sean Christopherson Message-Id: <20210422021125.3417167-2-seanjc@google.com> Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/svm/svm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 9c260c73f334..d5620361eae7 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -564,9 +564,8 @@ static int svm_cpu_init(int cpu) clear_page(page_address(sd->save_area)); if (svm_sev_enabled()) { - sd->sev_vmcbs = kmalloc_array(max_sev_asid + 1, - sizeof(void *), - GFP_KERNEL); + sd->sev_vmcbs = kcalloc(max_sev_asid + 1, sizeof(void *), + GFP_KERNEL); if (!sd->sev_vmcbs) goto free_save_area; } -- 2.30.2