Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp548078pxb; Tue, 15 Feb 2022 21:39:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxrsThRXrMNiRvbQUgsMd2Rgha3ReMpyZnD9fGjrpjEmJ2njgEDJ5RSVMCrYiYzg6TjDqm3 X-Received: by 2002:a17:903:191:b0:14d:91cb:30f3 with SMTP id z17-20020a170903019100b0014d91cb30f3mr1377256plg.2.1644989997585; Tue, 15 Feb 2022 21:39:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644989997; cv=none; d=google.com; s=arc-20160816; b=0KrFnNaWinI6e0MCa4FLAONukb5PUcRhQdgX88VcXRfdKVSXIy9I2kbg+UxVXIieVJ Qfx+c75yAZWi73BA/qI93YyM/TwK7X3Gd2S54Jr6NdAOupfDH8fPMGZIbh6aNBEnSpJN UcHvJTXs1u61KFtBa8UizKTnhGQhxvWq77tQhAfrMp4EaPOG0AlJnjGU1EdeWPyewMNL RnVZY10An9BUzRiASE4Ybvj9CXX49c9zx5WSNeAvsSX1NiqZ3Uj4hGaMI8tKFC4Mx9Vo YTXOt686tboMiu74yfgZqfMHdfT0x9CTGn/YlgLY5BJtel9t5pp9mBMSbeCRuFUFiYut 749w== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=VLhw/oYc8OD2zhce5EfSnMA71r2gEd1ILH+XE1HwnYI=; b=NBSd2eLUwVhHMFIpxoaw1Zd/OMVtx5iefBUwG//Fs2KW0EZfuuCg8HyWDlKFxS4LY3 7xzidUoEGogz0FsgFBmSrFDtHE68tIUpcpol+DnRsdYbW9EKhwS6e07G5UF5Hbc3s/g9 q3Fmqp57kVy1XZrYZpOT8LEJA2uO79ZVR63jmeU8IoTJPMZbB0OnmkF5tcQiShYHu/us z772DOIXAbZgRHZgcvuirlbznlGJuiknWCiFxh5pYvcB32LkRndRHST7UBHYN5KN0Z0I wLpR+8w+p5yu1BkSsiwDotCJ/rVyIPV5knMGnINGd230j+QQ13Vt0W5CoIWPRBwYVPyb 25PA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=IVkKoz7X; 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 l6si20889406pls.571.2022.02.15.21.39.41; Tue, 15 Feb 2022 21:39:57 -0800 (PST) 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=IVkKoz7X; 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 S1343848AbiBPCyi (ORCPT + 99 others); Tue, 15 Feb 2022 21:54:38 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235976AbiBPCyh (ORCPT ); Tue, 15 Feb 2022 21:54:37 -0500 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 327A6D7632 for ; Tue, 15 Feb 2022 18:54:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644980066; x=1676516066; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=ARvkJ3LFZoN6DF46nkvfKWUVw1EZ9/qJrQ1Pp5jprNM=; b=IVkKoz7XLTzwXj8VyZAg/y8fMHlDdryFeLrvlUO5T2WoTh+hKmgzY4ja ZX+vjt/0r++gFHUYH1/BWhanhHmUcKpO36JKm007e0RdkJk29scyW7WYr deqSrsEqnKNiQrL81dVenRHA4xo470L1w5km5yU9k8r4jq3go0Uvisc3N pE3RhQjlQfSfI5QUUuXu+VmXgIpDWgpq4EA/dPMzYWveJzaNb+2e76Ovj sWeym8KuW5kzwgxUHobMwauwzNMaWPYm/r+ttWBJJexFnTR5dRTQe5yZo bWdZiPzP8TznSJgs7Sd9Be1hb9PZD6iojcF+6t7j7dw2/PGIS4LtnIk+F w==; X-IronPort-AV: E=McAfee;i="6200,9189,10259"; a="250709337" X-IronPort-AV: E=Sophos;i="5.88,371,1635231600"; d="scan'208";a="250709337" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2022 18:54:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,371,1635231600"; d="scan'208";a="681312381" Received: from allen-box.sh.intel.com ([10.239.159.118]) by fmsmga001.fm.intel.com with ESMTP; 15 Feb 2022 18:54:21 -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 v4 0/9] iommu cleanup and refactoring Date: Wed, 16 Feb 2022 10:52:40 +0800 Message-Id: <20220216025249.3459465-1-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_HI,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 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: - https://lore.kernel.org/linux-iommu/20220214015538.2828933-1-baolu.lu@linux.intel.com/ - 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 v4: - Remove WARN_ON() in dev_iommu_ops(); - Merge below two patches: iommu: Use right way to retrieve iommu_ops iommu: Use dev_iommu_ops() helper - This version of series is available on github: https://github.com/LuBaolu/intel-iommu/commits/iommu-domain-ops-v4 Lu Baolu (9): 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: Split struct iommu_ops include/linux/intel-iommu.h | 27 - include/linux/intel-svm.h | 12 - include/linux/iommu.h | 181 +++--- 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, 305 insertions(+), 1688 deletions(-) -- 2.25.1