From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FCCAC433EF for ; Mon, 14 Feb 2022 01:57:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239091AbiBNB5i (ORCPT ); Sun, 13 Feb 2022 20:57:38 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:59046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233422AbiBNB5h (ORCPT ); Sun, 13 Feb 2022 20:57:37 -0500 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46532532EA for ; Sun, 13 Feb 2022 17:57:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644803849; x=1676339849; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=/oHMo00IGwehh8uwpydos/dBPlyzaHycXSK02c7jDmA=; b=EkpcODfjdg6RTqRlD2PTe8zSqvZoQHljfx3fJj/tlT+RLh7KxP1n97pl XOUmwf87o+1xA77WY1XDOkr/qngDvH7GhMU1MEo8SInvxdt3HVF1HM+x/ 7AvM7KyDP1RmFhqofPg7Y5yPvBXH559vJ0GpYSCn87R2tsugSQQqcXN90 S+P47DQN+OATdctBGScJEU6lU5GfCl5uP7tvdIMkobA1n1NR84YwJXF6v QexZA3D/7oQ+XneZ3kyj0/8JVC0x2XgIusQnyCIkpBN6onWkS9kWrXfd9 kqm0w5Lxi33EsmYRSImWUPA9LDmalEWlgzKYLIZrH8eUAHDfCyLWwxlp1 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10257"; a="274557976" X-IronPort-AV: E=Sophos;i="5.88,366,1635231600"; d="scan'208";a="274557976" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Feb 2022 17:57:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,366,1635231600"; d="scan'208";a="680137069" Received: from allen-box.sh.intel.com ([10.239.159.118]) by fmsmga001.fm.intel.com with ESMTP; 13 Feb 2022 17:57:24 -0800 From: Lu Baolu To: Joerg Roedel , Jason Gunthorpe , Christoph Hellwig , Ben Skeggs , Kevin Tian , Ashok Raj , Will Deacon , Robin Murphy Cc: Alex Williamson , Eric Auger , Liu Yi L , Jacob jun Pan , David Airlie , Daniel Vetter , Thierry Reding , Jonathan Hunter , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Lu Baolu Subject: [PATCH v3 00/10] iommu cleanup and refactoring Date: Mon, 14 Feb 2022 09:55:28 +0800 Message-Id: <20220214015538.2828933-1-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, The guest pasid and aux-domain related code are dead code in current iommu subtree. As we have reached a consensus that all these features should be based on the new iommufd framework (which is under active development), the first part of this series removes and cleanups all the dead code. The second part of this series refactors the iommu_domain by moving all domain specific ops from iommu_ops to a new iommu_domain_ops. This makes iommu_domain self-contained and represent the abstraction of an I/O translation table in the IOMMU subsystem. With different type of iommu_domain providing different set of ops, it's easier to support more types of I/O translation tables. Please help to review and comment. Best regards, baolu Change log: v1: https://lore.kernel.org/linux-iommu/20220124071103.2097118-1-baolu.lu@linux.intel.com/ v2: - https://lore.kernel.org/linux-iommu/20220208012559.1121729-1-baolu.lu@linux.intel.com/ - Remove apply_resv_region callback. - Remove domain argument from is_attach_deferred callback. - Convert all feasible instances of dev->bus->iommu_ops to dev_iommu_ops(). - Add the default_domain_ops (default iommu_domain_ops) in iommu_ops to avoid big churn in dozens of iommu drivers. - We discussed removing pgsize_bitmap in struct iommu_ops and initialize the domain field in domain_alloc(). Considering that domain_alloc() is being refactored, let's wait until the new domain_alloc() comes. - Various code/description refinement. - This version of series is available on github: https://github.com/LuBaolu/intel-iommu/commits/iommu-domain-ops-v2 v3: - Remove ops check when dev_iommu_ops() is used. - This version of series is available on github: https://github.com/LuBaolu/intel-iommu/commits/iommu-domain-ops-v3 Lu Baolu (10): iommu/vt-d: Remove guest pasid related callbacks iommu: Remove guest pasid related interfaces and definitions iommu/vt-d: Remove aux-domain related callbacks iommu: Remove aux-domain related interfaces and iommu_ops iommu: Remove apply_resv_region drm/nouveau/device: Get right pgsize_bitmap of iommu_domain iommu: Use right way to retrieve iommu_ops iommu: Remove unused argument in is_attach_deferred iommu: Use dev_iommu_ops() helper iommu: Split struct iommu_ops include/linux/intel-iommu.h | 27 - include/linux/intel-svm.h | 12 - include/linux/iommu.h | 184 +++--- drivers/iommu/amd/amd_iommu.h | 3 +- drivers/iommu/intel/pasid.h | 4 - include/uapi/linux/iommu.h | 181 ------ .../drm/nouveau/nvkm/engine/device/tegra.c | 2 +- drivers/iommu/amd/iommu.c | 23 +- drivers/iommu/amd/iommu_v2.c | 2 +- drivers/iommu/apple-dart.c | 20 +- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 18 +- drivers/iommu/arm/arm-smmu/arm-smmu.c | 20 +- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 18 +- drivers/iommu/exynos-iommu.c | 14 +- drivers/iommu/fsl_pamu_domain.c | 10 +- drivers/iommu/intel/debugfs.c | 3 +- drivers/iommu/intel/iommu.c | 540 +----------------- drivers/iommu/intel/pasid.c | 161 ------ drivers/iommu/intel/svm.c | 209 ------- drivers/iommu/iommu.c | 339 ++--------- drivers/iommu/ipmmu-vmsa.c | 18 +- drivers/iommu/msm_iommu.c | 30 +- drivers/iommu/mtk_iommu.c | 20 +- drivers/iommu/mtk_iommu_v1.c | 14 +- drivers/iommu/omap-iommu.c | 14 +- drivers/iommu/rockchip-iommu.c | 14 +- drivers/iommu/s390-iommu.c | 14 +- drivers/iommu/sprd-iommu.c | 18 +- drivers/iommu/sun50i-iommu.c | 18 +- drivers/iommu/tegra-gart.c | 18 +- drivers/iommu/tegra-smmu.c | 14 +- drivers/iommu/virtio-iommu.c | 14 +- 32 files changed, 308 insertions(+), 1688 deletions(-) -- 2.25.1