Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1636545ybv; Fri, 21 Feb 2020 00:45:04 -0800 (PST) X-Google-Smtp-Source: APXvYqxpe1njQ2bVX5nWxnnAlmdULEwIueeYiu9/apBQMRh2xCdkXBcQ9crokcpTGiWgZO2tbBIU X-Received: by 2002:a05:6808:315:: with SMTP id i21mr1014949oie.139.1582274704494; Fri, 21 Feb 2020 00:45:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582274704; cv=none; d=google.com; s=arc-20160816; b=R6L4N35WoBW6WpDaFvNsif6CeXQuRmUxpaOZ8b//3aMmi10tiYSLgDxEaWgRIW/5Ll P1zmpoJ/6TcXq40xQik8LjyGsH8YrZFvm65UJP3lq5YzeA9STjmSzzR6zsh4ikeHfv4A hbhyq7hVOjjFeKcwaoRhjvhurXmMEuQSTZjnq9GLyLhrxIOrF++HvqluYyFhQOoP8V0a 5DbWftKUlQkf91uW1nUw3/hWw3yqGNGkZGer1CrGskrX0WwTbGx8CRaxxkXyVeOWlcER 6HZCZC2pFkSNxgVRf2IOyFhhiYwu/Yfg/ZwlfzHeo4E5s+0lMXPltcOf/uvydkjbUIXT nMYw== 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=2CRWX6TpQzCPP8sjuowzI0LxFPrVeZSo/rg1FpmzGHc=; b=QCbmGCH3aoT89+2eTQeNaOdAWqrvdlRfPy3VN/npIToA+TgO9Abqiwg472nFouDXKa 7XRDKQt6Bxe/gKa01oqlhHVQKtKpsJPjf5/Fa/ArxyrlL0b/+VuemTh5UFyg9I0yhfYD vSLxmwm6axK8+y7DozJlbbUy0bgInqYYpIe0DHbqWz2gjoy+ck+NvHU/+CaUmc2sgosp YzR4VMEFU2ZvOhAFiwQIicYr6yGEODk3p7RC2FMGwECy+rxHTYyBoYq3ybv7EG8d+ukt DBISDpKXiTfrYpV7XjVZ4Kbf6CW/Jndb4kd6EnLYhyYxf7YFsgVBYW5evTQo2MJvwoOd 7olA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="V/uMzDUn"; 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 z7si1170360oth.181.2020.02.21.00.44.52; Fri, 21 Feb 2020 00:45:04 -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="V/uMzDUn"; 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 S1729946AbgBUHwl (ORCPT + 99 others); Fri, 21 Feb 2020 02:52:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:50568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729934AbgBUHwj (ORCPT ); Fri, 21 Feb 2020 02:52:39 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 18C2820578; Fri, 21 Feb 2020 07:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582271558; bh=dQlmWmfJYqyzHqxjP0GJKiHLOyZv9MPDy5qO2NfH+s8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V/uMzDUnSbGGB0CwpLkr3G7Iy8skrNMkXXhaS2JGEmwGyCdiXfCqVJyziFfqm10tS Yhsym+6rX/fPEeShg5ELf53vjpPrnwbJhPNeEloXuKNl4Ra4OOX/fpS8AE/asC7DUg D1pNaqllHy7M7lleLBODbO0nepkL4yxzucgX9x94= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jacob Pan , Eric Auger , Lu Baolu , Joerg Roedel , Sasha Levin Subject: [PATCH 5.5 212/399] iommu/vt-d: Match CPU and IOMMU paging mode Date: Fri, 21 Feb 2020 08:38:57 +0100 Message-Id: <20200221072423.596495876@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200221072402.315346745@linuxfoundation.org> References: <20200221072402.315346745@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Jacob Pan [ Upstream commit 79db7e1b4cf2a006f556099c13de3b12970fc6e3 ] When setting up first level page tables for sharing with CPU, we need to ensure IOMMU can support no less than the levels supported by the CPU. It is not adequate, as in the current code, to set up 5-level paging in PASID entry First Level Paging Mode(FLPM) solely based on CPU. Currently, intel_pasid_setup_first_level() is only used by native SVM code which already checks paging mode matches. However, future use of this helper function may not be limited to native SVM. https://lkml.org/lkml/2019/11/18/1037 Fixes: 437f35e1cd4c8 ("iommu/vt-d: Add first level page table interface") Signed-off-by: Jacob Pan Reviewed-by: Eric Auger Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin --- drivers/iommu/intel-pasid.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel-pasid.c b/drivers/iommu/intel-pasid.c index 040a445be3009..e7cb0b8a73327 100644 --- a/drivers/iommu/intel-pasid.c +++ b/drivers/iommu/intel-pasid.c @@ -499,8 +499,16 @@ int intel_pasid_setup_first_level(struct intel_iommu *iommu, } #ifdef CONFIG_X86 - if (cpu_feature_enabled(X86_FEATURE_LA57)) - pasid_set_flpm(pte, 1); + /* Both CPU and IOMMU paging mode need to match */ + if (cpu_feature_enabled(X86_FEATURE_LA57)) { + if (cap_5lp_support(iommu->cap)) { + pasid_set_flpm(pte, 1); + } else { + pr_err("VT-d has no 5-level paging support for CPU\n"); + pasid_clear_entry(pte); + return -EINVAL; + } + } #endif /* CONFIG_X86 */ pasid_set_domain_id(pte, did); -- 2.20.1