Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1731615rwl; Fri, 31 Mar 2023 16:08:44 -0700 (PDT) X-Google-Smtp-Source: AKy350ZueIt6J/MXdIycByZlREgwrFYhnkeALQhm6YmAmzedd3dGM4VisQBt9Ogr0r+aBaAqVJt8 X-Received: by 2002:a05:6a20:9383:b0:cb:af96:9436 with SMTP id x3-20020a056a20938300b000cbaf969436mr9539527pzh.0.1680304124189; Fri, 31 Mar 2023 16:08:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680304124; cv=none; d=google.com; s=arc-20160816; b=o298bEAPgm4Kpc+OBEy4H+CYUggx4u9MDMi3hhAtNm/zIS/YCZoLSyLloTjPnu0BX9 lcNnRk1Y8aLAGjmAtC3jguA935poUp0EWJxlNxliCccdPOB3ks0KG4Oe7zMWtpUfFTiS 2Xq/yISeEj68o+2Oz9NLOyf8v0+YPOFCXAMjcVVK6VZO6EcwOzCsm0honxi8q16ySvte JIx2Wojm3nNPm/VXqPD9d+CviT/GwfV8B1ZdI8Xt8+99MJauCm4jr4rlMGkx/8BRAz73 It5/f7ffTvXzV8mzvnrW2DKBrcKAKNh6/rO23TSMa/erQDJm3COH/NHA67uvZQglLWM4 NFzA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=EbHzM+jQoiSYkZHI8m/FgcwUG9Tz3f34TINxnrmmTGw=; b=J0Uc3Ygwl2HP1+aFfYV2iZ6qFnvUbMiOTDG2n+pR+e+Nrv64lllDFfpizZAHqybJeZ uPlJAq+Q5Dqirta9o+66YVX8DSL/rbCwv+Zcgs2lVomUifMpLruywKnGdlh5s8pM+jS7 A4i9W/XWL+fgrzEZWTb6yLBfevnb205stCuYkIvgQV9KK1ZqRxD+HQaEUnS09B3vOcB4 FXpgE7N+i0lQ1cGB+cP7aIdbXW/y8VYv4fBkGlyp1Q6CXjsD83xQGr6yRDZO5qUUqbw4 HxrdDgeVOGxUJIBqg0hVPtenbhdB5+AmwzT9yVL98WBKhvqUQqXzJ/XUrbEc79KcBuyc IAGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="McU/oGOh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u11-20020a6540cb000000b0050be02c590asi3422604pgp.666.2023.03.31.16.08.10; Fri, 31 Mar 2023 16:08:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="McU/oGOh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233156AbjCaXHk (ORCPT + 99 others); Fri, 31 Mar 2023 19:07:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231918AbjCaXHf (ORCPT ); Fri, 31 Mar 2023 19:07:35 -0400 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 414A81A947; Fri, 31 Mar 2023 16:07:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680304054; x=1711840054; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JiKWRtMCJrQDoJeK3U/0yd9kaHBuQqQPeP9njgeoB0o=; b=McU/oGOhFLteBkGLnUJyOhMNYsdiAjbDMe0WGGHmIToYgGqFEQgBJTFY pxcWgpz3xOLzOSydXFArqggWNiBeVA99kN8i6XbOr6LtEfyZFX7NC4GM0 KFeJRseQVssNcswz+DDOzs+AiEZm8ZLPgUsWh6E3VH8UP5eMq+mxNO7Qz JeUzoQ5izUDNWKCWYHMMiyYSQ8qkoi9UG1DAuQDoE8NgvRLjNGXbfVseG OroeMAhHist5psZSY0Zgo6dDMfwslpM8hijOeM0NfnkWVq+HwptFhWDiY o2xKY+9kluSSZPH9N6Fv//A2cJ6xgrFsbPsBF8Zpvl3BpP2PKa3Ym2QUu Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10666"; a="343245130" X-IronPort-AV: E=Sophos;i="5.98,307,1673942400"; d="scan'208";a="343245130" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2023 16:07:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10666"; a="717888340" X-IronPort-AV: E=Sophos;i="5.98,307,1673942400"; d="scan'208";a="717888340" Received: from srinivas-otcpl-7600.jf.intel.com (HELO jacob-builder.jf.intel.com) ([10.54.39.106]) by orsmga001.jf.intel.com with ESMTP; 31 Mar 2023 16:07:32 -0700 From: Jacob Pan To: LKML , iommu@lists.linux.dev, "Robin Murphy" , Jason Gunthorpe , "Lu Baolu" , Joerg Roedel , dmaengine@vger.kernel.org, vkoul@kernel.org Cc: "Will Deacon" , David Woodhouse , Raj Ashok , "Tian, Kevin" , Yi Liu , "Yu, Fenghua" , Dave Jiang , Tony Luck , "Zanussi, Tom" , Jacob Pan Subject: [PATCH v3 2/7] iommu/vt-d: Remove PASID supervisor request support Date: Fri, 31 Mar 2023 16:11:32 -0700 Message-Id: <20230331231137.1947675-3-jacob.jun.pan@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230331231137.1947675-1-jacob.jun.pan@linux.intel.com> References: <20230331231137.1947675-1-jacob.jun.pan@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.4 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There's no more usage, remove PASID supervisor support. Suggested-by: Lu Baolu Reviewed-by: Lu Baolu Signed-off-by: Jacob Pan --- drivers/iommu/intel/pasid.c | 43 ------------------------------------- drivers/iommu/intel/pasid.h | 7 ------ 2 files changed, 50 deletions(-) diff --git a/drivers/iommu/intel/pasid.c b/drivers/iommu/intel/pasid.c index 633e0a4a01e7..c5d479770e12 100644 --- a/drivers/iommu/intel/pasid.c +++ b/drivers/iommu/intel/pasid.c @@ -335,15 +335,6 @@ static inline void pasid_set_fault_enable(struct pasid_entry *pe) pasid_set_bits(&pe->val[0], 1 << 1, 0); } -/* - * Setup the SRE(Supervisor Request Enable) field (Bit 128) of a - * scalable mode PASID entry. - */ -static inline void pasid_set_sre(struct pasid_entry *pe) -{ - pasid_set_bits(&pe->val[2], 1 << 0, 1); -} - /* * Setup the WPE(Write Protect Enable) field (Bit 132) of a * scalable mode PASID entry. @@ -521,23 +512,6 @@ int intel_pasid_setup_first_level(struct intel_iommu *iommu, return -EINVAL; } - if (flags & PASID_FLAG_SUPERVISOR_MODE) { -#ifdef CONFIG_X86 - unsigned long cr0 = read_cr0(); - - /* CR0.WP is normally set but just to be sure */ - if (unlikely(!(cr0 & X86_CR0_WP))) { - pr_err("No CPU write protect!\n"); - return -EINVAL; - } -#endif - if (!ecap_srs(iommu->ecap)) { - pr_err("No supervisor request support on %s\n", - iommu->name); - return -EINVAL; - } - } - if ((flags & PASID_FLAG_FL5LP) && !cap_fl5lp_support(iommu->cap)) { pr_err("No 5-level paging support for first-level on %s\n", iommu->name); @@ -560,10 +534,6 @@ int intel_pasid_setup_first_level(struct intel_iommu *iommu, /* Setup the first level page table pointer: */ pasid_set_flptr(pte, (u64)__pa(pgd)); - if (flags & PASID_FLAG_SUPERVISOR_MODE) { - pasid_set_sre(pte); - pasid_set_wpe(pte); - } if (flags & PASID_FLAG_FL5LP) pasid_set_flpm(pte, 1); @@ -658,12 +628,6 @@ int intel_pasid_setup_second_level(struct intel_iommu *iommu, pasid_set_fault_enable(pte); pasid_set_page_snoop(pte, !!ecap_smpwc(iommu->ecap)); - /* - * Since it is a second level only translation setup, we should - * set SRE bit as well (addresses are expected to be GPAs). - */ - if (pasid != PASID_RID2PASID && ecap_srs(iommu->ecap)) - pasid_set_sre(pte); pasid_set_present(pte); spin_unlock(&iommu->lock); @@ -700,13 +664,6 @@ int intel_pasid_setup_pass_through(struct intel_iommu *iommu, pasid_set_translation_type(pte, PASID_ENTRY_PGTT_PT); pasid_set_fault_enable(pte); pasid_set_page_snoop(pte, !!ecap_smpwc(iommu->ecap)); - - /* - * We should set SRE bit as well since the addresses are expected - * to be GPAs. - */ - if (ecap_srs(iommu->ecap)) - pasid_set_sre(pte); pasid_set_present(pte); spin_unlock(&iommu->lock); diff --git a/drivers/iommu/intel/pasid.h b/drivers/iommu/intel/pasid.h index 20c54e50f533..d6b7d21244b1 100644 --- a/drivers/iommu/intel/pasid.h +++ b/drivers/iommu/intel/pasid.h @@ -41,13 +41,6 @@ #define FLPT_DEFAULT_DID 1 #define NUM_RESERVED_DID 2 -/* - * The SUPERVISOR_MODE flag indicates a first level translation which - * can be used for access to kernel addresses. It is valid only for - * access to the kernel's static 1:1 mapping of physical memory — not - * to vmalloc or even module mappings. - */ -#define PASID_FLAG_SUPERVISOR_MODE BIT(0) #define PASID_FLAG_NESTED BIT(1) #define PASID_FLAG_PAGE_SNOOP BIT(2) -- 2.25.1