Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4754396pxj; Wed, 12 May 2021 12:28:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxNPlEO5EzX91j27Erk/X2QVhhzq/PwypxCvb5IuGlEPXgqBFdtm8ciktcMi50kirV/F8DU X-Received: by 2002:a17:906:a06:: with SMTP id w6mr39243419ejf.32.1620847713898; Wed, 12 May 2021 12:28:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620847713; cv=none; d=google.com; s=arc-20160816; b=qqbcAZAeClP37PH8d01PUpcXA5TBAZTZ+Uuf55WJTOI7bGauBI9na3MPR6SU5/6SJO DZ3XLrQ4eRXmEf0hO4tYNIM/5tLtCKR8yqFoY/xaUpgZ29hMTQWQN/pA+FAodbVAztKS WY5rJIekaktPs38iRrqcOYvogHj3yYkpZVmqRza3nnTZwI9JRWyVDBpd1RV+67RoXUAE Duh6FenkNvR/n13D4zcyGJgjAxG/Q0ZLi+vXPxaGx07F0nOzeRs6j+YL7Enbfc1AeH9/ mrqg/H5fYo65QRoBktpHEe/YeqJ1nqNgWKpx4G6aY2UL9TEcv/JsheSEmHqJZyHSpsrU tTrA== 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=BBTqzh9KJybljxJDzc9rW8XICdfZIjkSL59AiivFGEY=; b=god8l/uwYEJnwv/v5uckEQJE38NpTDdBsqaPY9SC9jWPK0uHDaoqWjOe6jNxlj7MXb TBx4n8WG4D4C2Da5vkknyE+Gk77LBv57qB48o9NhfZ/CltsIw/BBzIxR2Lf+CcQBytwH iz53871fuV+fH7ig3HMpwkaEVvAYMZaCPQWD9XFl/sZznLUoTOmZuoXyNASVTu8wPw/v 7oi8LsI8n+q+9ryKp1w4W4D1wQI33aGQh0ns1SBedf4gc93fw37q0qkSzndt9PzXu4rt GXTHgZSI6+t0a+AagIJunuov7bi08GYtJyILswakI3VlpE1oBwNXhouZiXZUKmbSDcOt VqsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=mMw3E4lZ; 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 v4si452751edq.442.2021.05.12.12.28.10; Wed, 12 May 2021 12:28:33 -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=mMw3E4lZ; 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 S1379277AbhELTTC (ORCPT + 99 others); Wed, 12 May 2021 15:19:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:42466 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242530AbhELQuZ (ORCPT ); Wed, 12 May 2021 12:50:25 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 76AF361E8F; Wed, 12 May 2021 16:16:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620836192; bh=zVo2qWTUfNmChk0Lfx8n9Al/jsit1Inq1Mfk6wA8Nw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mMw3E4lZ/RpMdxqXwGInaUWIQTdSUVSG4f8oKcJXho8/ieVR8qpEHTjVyRgHM6Ki4 P4yGn0lfCcBXoKGOtYhtKdnRO+VHG5ER/nZoGtfaj48BlTeFXLOSLyycmtXEdQLfV1 k5TzUWAbsDtDvXt9/zxRL4HOmm/lJbWYnvdnyik8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tom Lendacky , Sean Christopherson , Paolo Bonzini , Sasha Levin Subject: [PATCH 5.12 648/677] KVM: SVM: Disable SEV/SEV-ES if NPT is disabled Date: Wed, 12 May 2021 16:51:34 +0200 Message-Id: <20210512144858.891777378@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 fa13680f5668cff05302a2f4753c49334a83a064 ] Disable SEV and SEV-ES if NPT is disabled. While the APM doesn't clearly state that NPT is mandatory, it's alluded to by: The guest page tables, managed by the guest, may mark data memory pages as either private or shared, thus allowing selected pages to be shared outside the guest. And practically speaking, shadow paging can't work since KVM can't read the guest's page tables. Fixes: e9df09428996 ("KVM: SVM: Add sev module_param") Cc: Brijesh Singh Signed-off-by: Sean Christopherson Message-Id: <20210422021125.3417167-4-seanjc@google.com> Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- arch/x86/kvm/svm/svm.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index d5620361eae7..309725151313 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -968,21 +968,6 @@ static __init int svm_hardware_setup(void) kvm_enable_efer_bits(EFER_SVME | EFER_LMSLE); } - if (IS_ENABLED(CONFIG_KVM_AMD_SEV) && sev) { - sev_hardware_setup(); - } else { - sev = false; - sev_es = false; - } - - svm_adjust_mmio_mask(); - - for_each_possible_cpu(cpu) { - r = svm_cpu_init(cpu); - if (r) - goto err; - } - /* * KVM's MMU doesn't support using 2-level paging for itself, and thus * NPT isn't supported if the host is using 2-level paging since host @@ -997,6 +982,21 @@ static __init int svm_hardware_setup(void) kvm_configure_mmu(npt_enabled, get_max_npt_level(), PG_LEVEL_1G); pr_info("kvm: Nested Paging %sabled\n", npt_enabled ? "en" : "dis"); + if (IS_ENABLED(CONFIG_KVM_AMD_SEV) && sev && npt_enabled) { + sev_hardware_setup(); + } else { + sev = false; + sev_es = false; + } + + svm_adjust_mmio_mask(); + + for_each_possible_cpu(cpu) { + r = svm_cpu_init(cpu); + if (r) + goto err; + } + if (nrips) { if (!boot_cpu_has(X86_FEATURE_NRIPS)) nrips = false; -- 2.30.2