Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1316373pxb; Fri, 22 Jan 2021 12:26:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJwtXEz9++T5p7W7tgvWzvUwuas9QpSshYimH2XdLpCCAfap6gPKaU2/b8ZtXuUxAVTUkgP1 X-Received: by 2002:a17:907:d04:: with SMTP id gn4mr2939057ejc.126.1611347161707; Fri, 22 Jan 2021 12:26:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611347161; cv=none; d=google.com; s=arc-20160816; b=1GVdxVqYVWMlbCtSqq9NPIne/vsrgyG3Og1uhob1kxpGaUuZYOgkjzLsL9FdTa/6dc 3m06ZPRQrLYgzKRh486wNJmrsvf80iw8kZxRFRnTj5ZmNT77ul5ZpawwGUMZZIP7Z/oz JMHDel8NzsAZ38r6YcxmsLQVy0BaPmqcvSOTW4nE0lJrBD/Zp9p37Yxe9Onpy6iaHufw hvkobKNwNY2RkLs/JKrYoAmz0yyjFpwBvbygy+UqFjo/PaPyxr+n0P7ud+HEtFvfisnA UuMpIshHWvBIzkQcYPpAsoa6blfGAx87fpGHAgLa8ZYLecld9Hn7CDWB8p8czyEyRP7B Plew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:reply-to:sender:dkim-signature; bh=na/73VMReTKtB9cBdzddT3dFufGs+FA2GpJ7zLFbNE0=; b=AEsnq36O0L4KFpMX0RnrcJc56Rt0e2xbNfdzj1tpGZraW9+czGgmsWg4zsIwnvlIhq K0F/hBZhrAssekfb+ZQgoUgPukp3/VKFW47+xEbzRjnRDew+euBNPJqhAZ4opwOIxfkj Ndbk8DX8v4sY9WKpxPj8Gs3taAY1Av+fodlPq0uN7cURXH9Iayo7v8iExvZbSOYlEtTW 7f/oc2cQf0thl5451Toq6A2LkubBF9ZJOZ45rRiefCAzmmTP7idJlXhXKNGIKrQvm6qZ dxm6ykYICw5hqd1TOQ28pdhW6EXwtrrj8WjeUbPkmLUQ9UZVENGCAnduXnakJuq6Y0V2 3gXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=sR2mbkVc; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r18si1870567edi.216.2021.01.22.12.25.37; Fri, 22 Jan 2021 12:26:01 -0800 (PST) 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=@google.com header.s=20161025 header.b=sR2mbkVc; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728323AbhAVUYd (ORCPT + 99 others); Fri, 22 Jan 2021 15:24:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728266AbhAVUWe (ORCPT ); Fri, 22 Jan 2021 15:22:34 -0500 Received: from mail-qv1-xf49.google.com (mail-qv1-xf49.google.com [IPv6:2607:f8b0:4864:20::f49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC873C061786 for ; Fri, 22 Jan 2021 12:21:54 -0800 (PST) Received: by mail-qv1-xf49.google.com with SMTP id u8so4718921qvm.5 for ; Fri, 22 Jan 2021 12:21:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:reply-to:date:in-reply-to:message-id:mime-version:references :subject:from:to:cc; bh=na/73VMReTKtB9cBdzddT3dFufGs+FA2GpJ7zLFbNE0=; b=sR2mbkVcciaudaJO/zw/eEvj6Q7oBcRY0RAz4GWPIa6JEVX53Nzqlr8lncX51w1OwK NO1X6XCfd3jEzWpq6fGB2xVpt0Lg6NZcjz2/R7NlryJ1+POAaxFG/hxOvp9Of1+tWHHq imVj9l7I3JWun1lRk8K91cV3TZnqClWXRT6UYWdr/jxAI6FEGrGPoeDDnnk0qfzZKzA1 kPQH9v+FcflIEL/D2/uwmccwELlbDWP59fh3wzE3ZQKsYfA2sunWnE9ge3/KoioYRyj8 EE7Za1PS9leb0CUYRu8NGP+oDsMzNXNCg9pfBLIiFwlKXdGt1L+Clc0cRZH8UcWJxMam quJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:reply-to:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=na/73VMReTKtB9cBdzddT3dFufGs+FA2GpJ7zLFbNE0=; b=tU27+dEAeVJTLMUdPxe/EiDLmhKecTacMuBjTfjpu7XfsUD4IBrnFzTvAO2/j0g0hU cHWpPbuxMIsqlx/vqFxrfmeilHxyDqziqJky6QhnDxfg/6tLOGMAPJPJL1JYUQ5PRlk8 mX02sUomhgkS2LY46u2IH+iabECBvAbNO7bObFL1w1GE4RO9/6gcfsugneSIsALTkWy7 ngByEEagMD3SjYYcLT+Nd/ki5cxcKZ4tK2QQ4hcOg3AupHZwTDLY0E8GPTHIagj4OnRY r89FqcH6G7X54IPtWMSb2G2Oqxr+kDXysCl30Nc8obuXio6K+4aJ5Zk/YLikbU6rdGV5 Hglg== X-Gm-Message-State: AOAM532rkziSHrU+qRprRZYDLcH937Ux0tYD86K0VEm48+gNN500sxX0 m1U2fR8yd4pfootZkzMhXuCLl2NFQPA= Sender: "seanjc via sendgmr" X-Received: from seanjc798194.pdx.corp.google.com ([2620:15c:f:10:1ea0:b8ff:fe73:50f5]) (user=seanjc job=sendgmr) by 2002:a0c:becc:: with SMTP id f12mr2470648qvj.31.1611346913861; Fri, 22 Jan 2021 12:21:53 -0800 (PST) Reply-To: Sean Christopherson Date: Fri, 22 Jan 2021 12:21:32 -0800 In-Reply-To: <20210122202144.2756381-1-seanjc@google.com> Message-Id: <20210122202144.2756381-2-seanjc@google.com> Mime-Version: 1.0 References: <20210122202144.2756381-1-seanjc@google.com> X-Mailer: git-send-email 2.30.0.280.ga3ce27912f-goog Subject: [PATCH v3 01/13] KVM: SVM: Zero out the VMCB array used to track SEV ASID association From: Sean Christopherson To: Paolo Bonzini , Dave Hansen , Andy Lutomirski , Peter Zijlstra Cc: Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Borislav Petkov , Tom Lendacky , Brijesh Singh Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 7ef171790d02..5bd797c7ee60 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -571,9 +571,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.0.280.ga3ce27912f-goog