From patchwork Wed Feb 26 20:16:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 13993146 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2068.outbound.protection.outlook.com [40.107.237.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8475C2755E6; Wed, 26 Feb 2025 20:16:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601010; cv=fail; b=Vp/Qz2N37bb06AxtjpMJiJ8M2Xa2QxFhxVgJyDfdngA+S74sL3izb5KYFqm5vKVh4N2BS2SVt990y1ADdefi7roTeEIdHlKOM1jUwDp0TZFMqbFrx31uBTX61feQYVzLoFIjpgQ5OePi8NCrgJcPGImE6YvLonRrVsmijqdgUik= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601010; c=relaxed/simple; bh=v0dEiL9W4EHUy6SsqACpJ7hGGdNzh5gnM69LTM2V9BM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QescsNeXvXrr//my9uua41OGNQR8LI97o/i90PNiZPM3EEOWKXSpDGWwU0+Xt7prOanUWgIRy3iIszWKQuyo1nK3+K+XyWoxy8WGIb36Cb2qczwIa+IIh+ClGdL3fVWnIaPKZVzpbv/a5uEnZdG8FCiLhk8LZIEraI1uan0UnWI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=sa3Q+Tnk; arc=fail smtp.client-ip=40.107.237.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="sa3Q+Tnk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=F1v2mnr3hv5K8azYey/iooS74CqdmXfidcYzqFKyD3uWDZLG6ruLuWh+XQJAjNVH3KMxOPBQ3PIsPivQDe0/V4fz8BzOk07dooks+3/1q71RFejP8JAiHqNlwaT2iP2JezchZsTiXZAPX7mH4Y36nNlvNY2AWRoNI9hQRgXfo8JBoIRY9A6Uzx7COrJMIau7H9ezFkWDqFo5cBnLXrP8/Zn3ne/K0cxNnN5dauGaG7rxGkxsyWdtQd5vTBCbA3tJIhUGWkbn0LlNVyk1mzepj6qiuA4/jQklhpkeCYYrCyBGV/jyg4a+id6M4g/x6oEQfw2APrOHEPHF8OuDFKm52w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MngNtYssMATfkV/OMS1fcH+ZW3izS1pOJC9F9pCueG0=; b=tg//GG839dlxoRfexQOC6oKU7AgBFvN9YNNPih9BqWclALg08oGVFHdBreCt1AU/I1tPWQBbLTYGMh623izKxkiku9TofvebmNiIcX8y9xpOPgi8CXQrW4WK4IuXGtH3/SFrh7q6ChTMbDpVTa59G/bnHHzF93kJV6Gygq6/sJdTRSrshA+NFTg+BYvAV8dRC3PWvxypQ6tCKMtGYVHqHqSZH2+6I/DRJeBnw8cK8JpfoHSj7UncCJTLWHk5qe80urEbgmx6zXvHwQz15WPbAK3zeo1fJotV0CqcDdGMcTdJ96SqXz5xk/Y03we+fhHkBkMT2aYV7gGmD7OtIcJ2Cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=arm.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MngNtYssMATfkV/OMS1fcH+ZW3izS1pOJC9F9pCueG0=; b=sa3Q+TnkG0kwc2lrjw3JuVt9WOzGap7tuvCH89JRUx/hH6WgaZdLPkaggYlGVxd1oELFQEeFuFi4O7e/47MZDO4AD1WySkA2tbNNXZ4R3q2AZy1Q9UxPwAHm25voT1ZmBEFB/dzFCPZlpdOVSV3d4ezU1W2ka2OB/rzGMeJgew+1xu4OAAScS0Y/Q07w4wQmgesBIfkY+ZsjmcZRCBV8nizmEFc92Bx2mY1VIs/EJjiDadonXPzOU8FdDNE7GUo0rXTBhscyDafRX3R5TiQOwJonbZJINvkCvD990GdZYV+LyAwA0h2Ja2+EPivqUzRIuVy7wQoFa9SQBIvfX0Juag== Received: from PH7P221CA0084.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:328::35) by SA1PR12MB7200.namprd12.prod.outlook.com (2603:10b6:806:2bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Wed, 26 Feb 2025 20:16:45 +0000 Received: from CY4PEPF0000EE34.namprd05.prod.outlook.com (2603:10b6:510:328:cafe::e5) by PH7P221CA0084.outlook.office365.com (2603:10b6:510:328::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.20 via Frontend Transport; Wed, 26 Feb 2025 20:16:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CY4PEPF0000EE34.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.16 via Frontend Transport; Wed, 26 Feb 2025 20:16:44 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 26 Feb 2025 12:16:28 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 26 Feb 2025 12:16:27 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 26 Feb 2025 12:16:27 -0800 From: Nicolin Chen To: , , , CC: , , , Subject: [PATCH v1 1/4] iommu: Define iommu_get/put_msi_cookie() under CONFIG_IRQ_MSI_IOMMU Date: Wed, 26 Feb 2025 12:16:04 -0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE34:EE_|SA1PR12MB7200:EE_ X-MS-Office365-Filtering-Correlation-Id: 67559465-dcd9-488d-1f93-08dd56a27d83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: FIp1jHwodSpdxg8jiFKzwjerSVxoTQFI7zP9Pb2/9C+LhH8TYMuiRXgLqyoN3RUI2yCUhIn42szM0KvPg1kmbtYJ/RrorwM6a8+z1Klncj1H/ZGtw5YKeb2SSHUc+zBFnb0C5F6gyD8SW7nLc8LbtfCtXumr9oWP0vaOKGX2niZsFXDxIRIGB5LRO1LPk6N7LF8PUvhp/KWSgYJqDU3oAJzgD5Tri/2VwQI0EY1OLCJSwtxRnTUldP3dMuHW8H3K6l4dpMUh4ACx4Az8TFHY06rdkVktqQvI8MK7qxsjlkMsfmPbdSSDwa4P2QgcsDxPy0EssOt85h9pqvOBRQWWMagPj3ALAylioAm4AA5F0TjvlX+y3I+bx+9cekaeEe2HyFSvyodJXImACk2cneHfAmc6AzZtZdtN/ZNT/7p9rtItXve3QpA4N8Z4JUi/WbzmwUUh9QvmxpF+SCmiInblAmDWgx+ru4eLkF2u00BYIQizBMJrRVJTCkOa1qKAoeS3j4kE/nqHgLRuNS+hTTCkm65DPQ2yXEquQOVeVHmb1NQSzAKMnP67evcHdNyn/8iZijF22YyllqJri/TGoPq66iEZoQWUl1DL3foIYQLX95J94mJaZtuoveXFNVjbL+4BU9kwVOdb5t2TGVD32K/5aGErbZZsjwB+7XIKLdfQxzE2Mr979Aae9a9PFmdvf05dJxQ1WNmebuXdNiOllOwqRQNAnPfVJolbSeRCsx1rudu0+e6XcvORBG21ucuc8p/XZ/wQ4zsyCQEEWJKSnt7rh+3qRRMLrL6+C0yzJBoeB4NLHMpC+mre27YUVB33SdpTVDswwWhIjk+ItVNRw3SRoy6SZeMrFitKZ6+aFuLGIS8v7TIBYHEyWekpXpmUt2rxVTCRKBPPPBmDanE+Ej+tfZfz43QHniKbmWMKsxD2a7u9Baj4+rCAlqtJ6Rs/N7Le/7RD0M6Z9h+aBd3opOKDtJwoVaNHzIJWBZWUifaT6WKQrx1HyirF9A8D2bvrzrc9tz6/aTp84CSyMhrPUE9+8QmOrtT9HapJ/IAYNV7B6nZ1tktljy3lUr/bgiA5sYC6fvcOk8788rQXB7ltd9Q83oVj0UNokWJAFUYErpb2tz2jIIJt8OLELqlD4BcAJJ9VZg4UvD1Dlvr+CkQi7M/bctaSm6zje5WC0BZxGhMwv68yT7gqrVtrwjjt3Hpnzp+jFpYpEL+X2EgEL2bDSV8cN50s5O8chpp9QnHUz1ew9jtWpKGbl7p1pjaf9j96jkN9X6fArEEk2P29bRN07Bk4q/OvwnjixQ6X8qDeU7Zas6zhtqpOxoe3KQXx3Y3MzGCylabirxEqXfvey9SOB0TZEi7ukORAY9xV2IXxMs/lve3lxPKS4+EoiAk5s1ZId15B7oeB9jmeBZE0MXMGVWgOPYhMxCPvP0wJd2tTreSBzAJJaeWOyyPRLGooxD+AkMCd45lTYuHBTvvqjxiZj2WaH+egrEZVmaXm9CnKGaJ3RS0= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2025 20:16:44.5820 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 67559465-dcd9-488d-1f93-08dd56a27d83 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE34.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7200 Not all domain owners call iommu_get_dma/msi_cookie(), e.g. iommufd has its sw_msi implementation without using the domain->iova_cookie but the domain->iommufd_hwpt. To isolate the unused iova_cookie from the iommufd, iommu_domain_free() will no longer call iommu_put_dma_cookie(). Add iommu_put_msi_cookie() to pair with iommu_put_dma_cookie() for VFIO that is the only caller to explicitly put the MSI cookie. Move iommufd_get/put_msi_cookie() inside "ifdef CONFIG_IRQ_MSI_IOMMU". Note that the iommufd_get_msi_cookie now returns a 0 for NOP in case of: *) !CONFIG_IOMMU_DMA - the caller in VFIO would have returned prior to reaching to this function. *) !CONFIG_IRQ_MSI_IOMMU - in a system without an irqchip driver, vfio or iommufd shouldn't fail if an IOMMU driver still reports SW_MSI reserved regions. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- include/linux/iommu.h | 10 +++++++--- drivers/iommu/dma-iommu.c | 12 ++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index e93d2e918599..6f66980e0c86 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -1534,12 +1534,16 @@ void iommu_debugfs_setup(void); static inline void iommu_debugfs_setup(void) {} #endif -#ifdef CONFIG_IOMMU_DMA +#if defined(CONFIG_IOMMU_DMA) && IS_ENABLED(CONFIG_IRQ_MSI_IOMMU) int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base); -#else /* CONFIG_IOMMU_DMA */ +void iommu_put_msi_cookie(struct iommu_domain *domain); +#else /* CONFIG_IOMMU_DMA && CONFIG_IRQ_MSI_IOMMU */ static inline int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base) { - return -ENODEV; + return 0; +} +static inline void iommu_put_msi_cookie(struct iommu_domain *domain) +{ } #endif /* CONFIG_IOMMU_DMA */ diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 94263ed2c564..228524c81b72 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -418,6 +418,7 @@ int iommu_get_dma_cookie(struct iommu_domain *domain) * number of PAGE_SIZE mappings necessary to cover every MSI doorbell address * used by the devices attached to @domain. */ +#if IS_ENABLED(CONFIG_IRQ_MSI_IOMMU) int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base) { struct iommu_dma_cookie *cookie; @@ -439,6 +440,17 @@ int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base) } EXPORT_SYMBOL(iommu_get_msi_cookie); +/** + * iommu_put_msi_cookie - Release a domain's MSI remapping resources + * @domain: IOMMU domain previously prepared by iommu_get_msi_cookie() + */ +void iommu_put_msi_cookie(struct iommu_domain *domain) +{ + iommu_put_dma_cookie(domain); +} +EXPORT_SYMBOL_GPL(iommu_put_msi_cookie); +#endif + /** * iommu_put_dma_cookie - Release a domain's DMA mapping resources * @domain: IOMMU domain previously prepared by iommu_get_dma_cookie() or From patchwork Wed Feb 26 20:16:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 13993145 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2044.outbound.protection.outlook.com [40.107.223.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5573319DFB4; Wed, 26 Feb 2025 20:16:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601009; cv=fail; b=d7sppwhhNPzlPttdQfnPNwvi6JA0gfVDV8JRaSRuZbP1KpTyt/Gz7cnV6yYqJA/L4LPfi3U28k8+LqmDgEzlyWhrvS/4Maiwb0x89+rfXDG2sdx5zHELgfMHhnsV+iYUrb6JYYp2B2r098cM/ro9c8026BxWohq9YLjHcxAE/u4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601009; c=relaxed/simple; bh=O0/CZPKsQe1q+HZGk9hKCKEc8juT3GjQFN+mIasFscM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=a+8qngPgpo1BE+TBT8ebzzs9RLKOGyDwDYE4qnnZC0DuPBA1CB8ZCLK7GMZRxNLEQZq3/rQ1G3aWADbSdZwJGQcgzgg38uFwGYN7N2zDadSg4muAG5w4rVzyWUqagPefxA60vU9XYONBHguptVGbT0ai/dCrniMe1bbhpZCqfdU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=UPSTkNXJ; arc=fail smtp.client-ip=40.107.223.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="UPSTkNXJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RFfXpl69pmLZLwLiPIUyc/43XhuA9UewrNtIu4SfHo8HkoWqukb0Kcg/JJhOx/8xN+Pj8MU5oBKDnSYl5gwjaM5eABrVvTYwR/1T1FGleQmiY2taeGW9WqjSIp9gIQKuf95+ajPzyTFyrJ+Q1beOOKkcPF4fSRwCyQCxJl6R8OQFKLklrDMClyX2JXEJsxyBaD6SZI3emFIBVv/0JEO0RIpxwZKC2RfXABWnH8QcfG+FJEM0iozgV083BTTQBDWubVrlMVy5s3GV1GT+eD3ZgYHVxzyjMO2VoBtfPE63mutZ77hSIfHWtzbCtz/PUOKZtyb6FVnTKQKoUDRe0gRPmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MV8j3AOZezxMWr73G6xKlG4+lB5e6qYPPTfJFAAGcsQ=; b=Ae1Wy4NW8odb2vfCGEX8yu7+/NTT5IFXMTL3emMnkNkSi/IIFs9QCscmiGeRJeXKmR6k8ksU6AqYb5nm2jafqaUrpokwgjK3MARtp4Ldg7UxJsJyrwS5gjVPoxr/MtPwctfJQUchBs+B7dSrxV2cQ6LcSCyEj9YIAzqBsjwB2WWuHrhR77fLp3i0qnxqVrFvWu4DUM4f8QywY677TPmvzJoSJ2Tt/CX7NlVZmL+dkWpDYwsiluJ1RCWF+ORSirPw2w1MG7YPfWpBLQ5aZEQKxVXrOAcQ1bd0YW4xwRQ3XNM6Qu3lPb39d2krWnJb3fB2HXtNdaoxmTKRFT1UDXthiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=arm.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MV8j3AOZezxMWr73G6xKlG4+lB5e6qYPPTfJFAAGcsQ=; b=UPSTkNXJHrnP/9Xo6eMsaZ9i918gESV/PefVsTgXNDd4LG2luHy2WtWxwjYFISIP1BEEGHnO89bdzl8SWMmau49gVRpPN21WAWcODcVHeR0q5gHCQU6x+6KirbMRG1EjWBJycC6s4uHZXlBVkvVQfs8WZtaRN5BJX88dF4ZXn47Pw4LSZLHsJMaNOku07HOgqL9DF7w/VROmkp43E9HumEaIn9G07T4trUs3RDmL3byLam9Kn2Ib7xboJVbcDQvfVDfeAaeUkPKnKIy9UuHLnCOS67k055WCHvSFuHpnJiFCfEI5Gc0Y4aOVjLqKpJp6DbHaEbe/clKQOUeDeBbvqg== Received: from MW4PR03CA0360.namprd03.prod.outlook.com (2603:10b6:303:dc::35) by BN5PR12MB9511.namprd12.prod.outlook.com (2603:10b6:408:2a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.20; Wed, 26 Feb 2025 20:16:42 +0000 Received: from SJ1PEPF000023D5.namprd21.prod.outlook.com (2603:10b6:303:dc:cafe::14) by MW4PR03CA0360.outlook.office365.com (2603:10b6:303:dc::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8489.20 via Frontend Transport; Wed, 26 Feb 2025 20:16:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SJ1PEPF000023D5.mail.protection.outlook.com (10.167.244.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.0 via Frontend Transport; Wed, 26 Feb 2025 20:16:41 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 26 Feb 2025 12:16:28 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 26 Feb 2025 12:16:28 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 26 Feb 2025 12:16:28 -0800 From: Nicolin Chen To: , , , CC: , , , Subject: [PATCH v1 2/4] iommu: Add iommu_default_domain_free helper Date: Wed, 26 Feb 2025 12:16:05 -0800 Message-ID: <64511b5e5b2771e223799b92db40bee71e962b56.1740600272.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D5:EE_|BN5PR12MB9511:EE_ X-MS-Office365-Filtering-Correlation-Id: b5db1c09-5ab9-423b-e6cb-08dd56a27b6e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: zjeiOxvmpetNorgBnBGm/n2mgX2KtZ6EbslzU8tEaE7kJVzGaItZ+MftDVvv2v9m2Q251kXzb4k4nJd36k6BmZxVdWnnpyTPBM5C/KH6o1YMh83j4AVYd+B3RmebrK+13469SUyxh32zEEqM2YEo/23ZVKR+CWkMwGR/HjQoA/5ttJjVhfE/xyzTfk6yfe1bX2iKy2Ye5KQBW84xEu37Kxu7B9jrgeZ5E0g9f1ehpYCk9UI0Ojmn512uXrGiPTkGURi7LVvk4LqOtP30Y+UwOEGrMwZrCyyfOylau0nj6gA0KcOAAFIOxO622LoJfah98HEaaZmugHlGKAo71D25jcvlAOE9Fgd9wGf2+asHt8uCBg8KdGLfQ5DFxDxBmNxAVsjKpdERuTqMeuJqB8U6nXIy0I5yYE+w8hU6bU0cphR4UZpiRsyWrGjKKlwXRoQVoUTkywT47YJj6H8XrnfWMsMuPSvl+J2aOEEE6aqQPc2d8rpMDGccEX8pvHwEwyA1n/unoXeAoEUYwRrBWQjRF0/92Oj0lFq+vwZaEnfJYPRqK1XN1HWeBNnnbHVeDxVXKTtIhO7D5lybPzISmwEPkPOzRTdx/iowYrDSM3TCzAgtYB6IvQdBm2YeJS0UdWet8vD0QPxK2iz2JbEN2wW+0mpzJhA51ZOYte3T7kgnG7eLwdLM86Kbz/FnKYCX6Tod2fVB0lXJB76ZTQvvGPRJ3KMXBIyUre416Gw7sg8I7PwDsRwK6HlOvUCKL9Ig4oxXc0LDHn5WG78n9ca0s0Lx6urfS5Bm+c6VBgi2xrcflqL8vQcOh9VnMK9G/O0LyI+3hDQxvX7c8PZZV4hnVSsvRCOc4g6eJVYIeJvR2KjGEX8wTXfFA7+pkRUoFtnGRRcop7FTyq4WOHQsOnbOK2EMXAYTvqlYm8w1vbU7T7JqNGHJEsuVU193smsJKY7aWgZP5UwNFRNSmlq3JlmSwndgYMfZIbtPmum69SWCi3yDFH7YdMk4hD2UNpfrIAWAdHYVA4W6pMipC9nBVSAqa1GNAs/BZW221gVZAMH8Wd5O0u3iP8s19mztRN+AGPMViyIa/sutRIaDLuhzyVqZvviW9dDzuwZD0zYAXmZTnDqo4qUPB+9mWRQ1+TtSbuiy12upwOn3hgYJEkWkBKgA2bvPr5D1DLXJ7oWGF3Ihp7+P5ONriRitqpmwV3M5zVVBhOb4P6jE/az38B1UbFd6nGHm64UGlMsMgTgfpYg74Gf4h98fxFQyhLjSvx8yBoUd3pUHsF3EQM1PpeFWzH1KCON4lfUgilrsZIl5j+6k8jYvTpw7k0Q9LvFIldwjw2PJfT26a39pZsMUFjjJ5Kl6GHuHa/0aSehKfVuOLBjI3fblQ7xQ7nS41UHbc2yxxGsqr7gAvqQ5F2uWsPVcRpL1QXW4E0jBPbZV6UV8h+HikD8Kq7WuNnzKjHpN8Hxb+DpjJMis5DEpwVZW9x01x7iZ8/nFAditz2CrQY2nXoBXbrZdLUY= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2025 20:16:41.1409 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5db1c09-5ab9-423b-e6cb-08dd56a27b6e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF000023D5.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9511 The iommu_put_dma_cookie() will be moved out of iommu_domain_free(). For a default domain, iommu_put_dma_cookie() can be simply added to this helper. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/iommu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 022bf96a18c5..28cde7007cd7 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -456,6 +456,11 @@ static int iommu_init_device(struct device *dev, const struct iommu_ops *ops) return ret; } +static void iommu_default_domain_free(struct iommu_domain *domain) +{ + iommu_domain_free(domain); +} + static void iommu_deinit_device(struct device *dev) { struct iommu_group *group = dev->iommu_group; @@ -494,7 +499,7 @@ static void iommu_deinit_device(struct device *dev) */ if (list_empty(&group->devices)) { if (group->default_domain) { - iommu_domain_free(group->default_domain); + iommu_default_domain_free(group->default_domain); group->default_domain = NULL; } if (group->blocking_domain) { @@ -3000,7 +3005,7 @@ static int iommu_setup_default_domain(struct iommu_group *group, out_free_old: if (old_dom) - iommu_domain_free(old_dom); + iommu_default_domain_free(old_dom); return ret; err_restore_domain: @@ -3009,7 +3014,7 @@ static int iommu_setup_default_domain(struct iommu_group *group, group, old_dom, IOMMU_SET_DOMAIN_MUST_SUCCEED); err_restore_def_domain: if (old_dom) { - iommu_domain_free(dom); + iommu_default_domain_free(dom); group->default_domain = old_dom; } return ret; From patchwork Wed Feb 26 20:16:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 13993144 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2081.outbound.protection.outlook.com [40.107.220.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C28914EC62; Wed, 26 Feb 2025 20:16:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601008; cv=fail; b=EA8RRWS/NinabqEt2Z3IXss9TD6bBxpzy9ZIbWRNyKtOOV4qM3aZSPVZH6w8D5/xxZ00Dcl+RJc5csuxASOdV8nZnUeKCjP0sKPToIaTEmBLWok3jHQB0+Or/aC5mHUf3C6uS/vppd1y0wNjCzU4zBYvGpubxHyCYtQ6FEhwcq0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601008; c=relaxed/simple; bh=E+XXPk50P1TFk39kELLZm3yFMWWeBEun9cz73gjdLxE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ur8K0CHESVSrWpglqgHV8I4ie7UElaCTxzYuRZKzmLTRL0YUXlRJrQXOpjsLasIb5JT3mtUd6YRkH35fc8CflyMKgKtSHkSp1ueYjkiBsv6ywwZ4+9VB4PmWJJt+vzFfRh5KgNpRp2i1w06stNg2vrRUX+Hwa0sYlBZeqYS2X/I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=IAGox5u4; arc=fail smtp.client-ip=40.107.220.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="IAGox5u4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hjfZNTVVxrxrXBE/n/UwmfVaINh/ynkHrcpYa7vhjvmaMt7BDp8emLUuA1+GsDiP6LCT1kNPaCY4Cvfb6B/wUBU35fDMk5k6EmuMLHA1kmAir47YxHJhT/wXWM0qsLFyQ374Zh8IrfbphNJpjZVpYKSL+0T8b8BsDatyoOAXurZ6LQNJX4elAw/TBiRssabbAuvm7jhR+gEdBcwLYKZmG9P9CQd1Lren6lsKktQ94/xcAjYS9x8DmLLebYNGfHn4SQSQQP4nQ9RvecnWaB6+AnejqGo2aW1LerYae/HtwmYcwNS3rV3wjw+jKrI+838lyi5CGl9aAz9OQYtIx4tWSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TRWF6PXlJdCKVkhtHcCg8x0EnmDI2wPGtsXoHzb7VaA=; b=RH8SrUb54GjJDrdnB90UMn2uh+Sw3bgXFsvqo+xtNNP8Jl069DGF9oii6mapHW/BHGV+1J+Xcg6Kgzt1nizjQbVT1DQGMFHbfPbtWu4wus9dRYOFCq2ESXSOmi7g6V/IwrqVQ/zLx5zLPj9nrl0ig3ap/rbyZDCYwmuAlEdkzFHHp9yrVO53rzPMBTzaCnPM99j5M+6iI1yChwoAzIQ88xLr2SfP/U38eUHymkd8T7EBP//4XNNltp/hUD9EuoRzZWsT5JBIjGGPICG53e+PXsRRqdRmOvTy+KZNJ2/YMnTiIxcPt9PqHAie/DDRVajtbQd6vQtDmZyLz1noXreMJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=arm.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TRWF6PXlJdCKVkhtHcCg8x0EnmDI2wPGtsXoHzb7VaA=; b=IAGox5u4Q4JZKwzduKjum7kHz2VvWZXA1vh89hEtSovuKZ53/gXG2pso/J+EEHbruDfMs+FY1GHGpKHnRYqku10pQSq2TGtPaVd651lmu2z/EO84jJ7OOssdXYOq+kp/8eeTADIoEN/FYhIHqV6Xq1v1oeHWZjCjB8VN86Jx/X5uOcrFbBH6mnwxBGfYe2tSJ+w7CjLZ2c1V7eXzstdsWIWBz7lpVzV4rsMHnj2POWnhwFUEbg7jQVPRNZa4RZQHanwB9KIpBQndN3JrpfBwFI8H+DZ2fXZStK0jlMRdTCN8UEPZ55DKnY6bvUfVude2j34Qf7zONVsMB3qWLBx2RQ== Received: from PH7P220CA0103.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32d::29) by MN2PR12MB4336.namprd12.prod.outlook.com (2603:10b6:208:1df::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.19; Wed, 26 Feb 2025 20:16:43 +0000 Received: from SJ1PEPF000023D4.namprd21.prod.outlook.com (2603:10b6:510:32d:cafe::cf) by PH7P220CA0103.outlook.office365.com (2603:10b6:510:32d::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8489.18 via Frontend Transport; Wed, 26 Feb 2025 20:16:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SJ1PEPF000023D4.mail.protection.outlook.com (10.167.244.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.0 via Frontend Transport; Wed, 26 Feb 2025 20:16:42 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 26 Feb 2025 12:16:29 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 26 Feb 2025 12:16:29 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 26 Feb 2025 12:16:28 -0800 From: Nicolin Chen To: , , , CC: , , , Subject: [PATCH v1 3/4] iommu: Request iova_cookie owner to put cookie explicitly Date: Wed, 26 Feb 2025 12:16:06 -0800 Message-ID: <510ccddc9f0d0fe5a54954cc879e76670668db19.1740600272.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D4:EE_|MN2PR12MB4336:EE_ X-MS-Office365-Filtering-Correlation-Id: 47392698-bee9-4997-d54a-08dd56a27c65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info: p+zY0AbeoYXIL39t9Z2XTY3rOJCfvG8aru+P3m7r3RepKYbPc8+xguvkqG6Q/vgGDb+/uAH4fpLlkyDxAl+TEa/SLtnNinhrqhmvR8IQkEdt3hhFbDF+diSABqQ463/hgH4jlfXpfwLLzxaXV88g+gtjx0EsBmmAImX6OtKwWE23d7sAntlhbiOQgTsdAq4cQ6MsfF+EEBuCUFktQjnG2/So6ARna3e5YUDbL/fmfZHYGHmFMHgRLJ1Ms811Q3NXU/2zkbSGv11yvdDSSe6l4bsjCGqmixGH1b6+f7gqpsqkVpkAAIM+/Cn31VWkaVfV2Zkc3a9d0muFw50IbCdmIaDmwxC2FC5amoPnEeaJYAZXgKUhP4dM6cWgIBF3vclzGBXWUsWskkDuDOw/tlMIfhJDfsvuALbNhfOEsERMqWAurwqMl4zeWl/HxUOZLn3r3COCnmZ0Pf7lFVorScTD750mKeGxtdM0jKx9EVSolmAX0ObDz/NW+JeZRhE5wJkZypezYPidRFX/0BxDGIGPfKtqtfGd09q9XzufYwFqtR48BFGAlInWCXXSdsi02b/vpEJsFDvBYzCHO4t6eG4y7bv0TtQR9J6HOe3rP94qsQgKt6uMgpy3eR3ViEPxg6DBixWDrf/ZJpjHGxvObFnmarLX/NsGHlu41m0yisIiAZZpRLjSgk1vmvNezflKXNzrdB272lrkeIKxCz7OIHsXyndDy8Wj6Lv41/H0fEBnqEtt4er+iP6+rPqdP9HO5cPe5VUWBXeDIUk1dqQ59ihxOhAk/gQmzm/mk+kQnsguzUecI2pOYnCoVKARQ27bX/QyOwMwwtiMKvqp+XH/Fpc5fyGQHkSEwy70q6f2d8Mb3PAtopQjHoXb0JI1sfSIE7fMQo7nILAH/vG53VSfk5/AtXTtLE7RaV7y+CjVNF6rYRa/nAwIWUzPc+rVZNhHqWfdnayqaVpGFv3/fA7Q39/s6F/d+6vV7KVjoOR+OkoNU2op6DdzDnJ0jxu3hcyaRTS019nZ6mPRwt7/YOCf0Md3jry8S1OSdeYU1kBcTSNFf6djD4ITtHHkhK4Voxx4C9tT48eAH9M6ElH1BUk672I+eByJ2N57ZbKjU/KGFnyjrVbAf2dKJto98dQI2n3fiqgK7/Q7IeLVFbDNzKAQzIpqL/1Kj3o8ItCiKkgoOUfObwBm8vIdx1DyJ2hPqt4iy0LGPkzAYRgnHtgjUgtxB8pGxq3FtK1roxflmQFsBQYS968dE8hJdnNRtnxK/dgSPRj7ulwne6OIaUHmVkLCE+2J3J4XcayDlTrgrLWDru+pSP91s0qha1Olp0UpbHKrss4kTw7VC1OfUXmwCkGYZDhyOAiT9ZewhVMXYCqgyEYuGJVXRJ4VKUv3J616foEIugxFPxyCSimvGiMrhyfXCoG0Z8o9Ld+ZzjC7Wb+aJTWXuI9CEmVvlShttffF7lJMw9gKedfgyCx+pksTnBxGVVXOqXr/i18Q1wXqyby21LQQ8PE= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2025 20:16:42.8061 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47392698-bee9-4997-d54a-08dd56a27c65 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF000023D4.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4336 Not all domain owners need the iova_cookie. To isolate the iova_cookie to the domain that actually owns it, request the owner to put the DMA or MSI cookie explicitly, instead of calling the put() in the common path of the iommu_domain_free(). Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/iommu.c | 2 +- drivers/vfio/vfio_iommu_type1.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 28cde7007cd7..f07544b290e5 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -458,6 +458,7 @@ static int iommu_init_device(struct device *dev, const struct iommu_ops *ops) static void iommu_default_domain_free(struct iommu_domain *domain) { + iommu_put_dma_cookie(domain); iommu_domain_free(domain); } @@ -2028,7 +2029,6 @@ void iommu_domain_free(struct iommu_domain *domain) { if (domain->type == IOMMU_DOMAIN_SVA) mmdrop(domain->mm); - iommu_put_dma_cookie(domain); if (domain->ops->free) domain->ops->free(domain); } diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 50ebc9593c9d..b5bb946c9c1b 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -2271,6 +2271,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, if (!iommu_attach_group(d->domain, group->iommu_group)) { list_add(&group->next, &d->group_list); + iommu_put_msi_cookie(domain->domain); iommu_domain_free(domain->domain); kfree(domain); goto done; @@ -2316,6 +2317,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, out_detach: iommu_detach_group(domain->domain, group->iommu_group); out_domain: + iommu_put_msi_cookie(domain->domain); iommu_domain_free(domain->domain); vfio_iommu_iova_free(&iova_copy); vfio_iommu_resv_free(&group_resv_regions); @@ -2496,6 +2498,7 @@ static void vfio_iommu_type1_detach_group(void *iommu_data, vfio_iommu_unmap_unpin_reaccount(iommu); } } + iommu_put_msi_cookie(domain->domain); iommu_domain_free(domain->domain); list_del(&domain->next); kfree(domain); @@ -2567,6 +2570,7 @@ static void vfio_release_domain(struct vfio_domain *domain) kfree(group); } + iommu_put_msi_cookie(domain->domain); iommu_domain_free(domain->domain); } From patchwork Wed Feb 26 20:16:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 13993148 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2077.outbound.protection.outlook.com [40.107.223.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5D6425A2A9; Wed, 26 Feb 2025 20:16:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601013; cv=fail; b=Zdfavd/znstQp6ZLWCS+cRxnRONArNelnt63388nJaSmhtv9cOatRoW8M8rF0TH5cTKTA15zVu6m2+89Lu9IXKsRqIf8TMb75ijaV4R2UKnUQiUTO8Mtbz9b/x0GxIJWxE+O3NdBUVmnJuXusB/vf3wGD6bUAXlJVHKsjhe/je0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740601013; c=relaxed/simple; bh=Qu5Mwut372S13myttPITGdgYmfoNnbw5dl9oOKCuLUo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mv/bsRfs6BSYU7Wsz9KJ1R7/Uw6MvGahMOW1cycibVdu3ofP8whnHx44gUYU170XdJyxCzr+QfFtgHIjPOY+JKwGhfmxUH/x4Uhl8YW/66Woyqyx5eRsdMWqw2BI4GCmmyTkBYnboHTfqeVItneN4EwU0zoLtP/fNdv9+jzRKlo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=lgjpW3TW; arc=fail smtp.client-ip=40.107.223.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="lgjpW3TW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jhXYfssChm5kmJg+zDJkdke3ChYr/Te3jcok/jdQA2BjUV3ZPqozW0MjwyL9XiaAfwfkRCqAGYeb3yE498wQG2sdrHUR6EQ+r4D0iyr93RAep/nw1o+R3Qnq4PARIk30tNEjzm7d46N91P5AgiBl0d6noYvTapJ8ggPHfEO95VCDXiENvZ158FD7lNk1UJUNHKZ+UoZaeZbeT9m0fJXDxmqdsu/umPTxRQyOY3lT4O3qxgJofpVvb3WzekObfbzFDpQUFvziaX7s9dF3HiPqYv0GYG4Zx7h9UY+ICG5mH094KOs7t30xgjKZKoM8vIqRAsnBFMIM8mkzrkUjwpp1mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Aeg6ooCKjnGO8bNeBStLml4+yoRoi1aSlEKouCdPsic=; b=cjHVAH0hHM2hqRxW0WodeU46KgzEzRSE08MarMQX7MKlhrR4+fzuU6oMHc5+HG0d99RUomOEsKQyXeBHuJqJBBPi8V/CCamDpe5UwYSBU8/A+bkhatFDAg+gC2Hi2RHatvvKJt9WNuwtnZk7tW/NCF2yoH0DyZKE8r/Z3Yk6xaSXPig9IrxzB5y28PrYoUL+WQ95417uBDiODKPYCbxwKhEXa9/CVr0yzMApv+sIffzH78PeUR0VaZ7pRM21sgplYJUdtLqOMgmFtYdSodRGqToiiIhju1TH/T4qbo8QDcZBOr3NnkyoWg6xytfXsmuX3MHttfPnnn+0TvLerfSFuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=arm.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Aeg6ooCKjnGO8bNeBStLml4+yoRoi1aSlEKouCdPsic=; b=lgjpW3TW91HKsIMeUcCbD8W4AVLSwW8u69afDsfGpHW+Tqow/kEDCHVcCuHerCzr6yzTffa8jI5BWdDErSbgoWqhV8W6pvjy2vpF7mIIWGo/g/dZw12RgPjS9t6NDd3tU9nC7vdXB35krkzGWjqj0hWqtcOMPsrha69EPpR1nuBhgMnO589IUgfJhcZTv/MFcbf6d6ix5mqgDs6HctQ/u6eBo14f6vyBPcK8GQ/N5dz1GMwyHawFPbN5zzE6NFIR9teLOz1zwtbgPebKPOMuH6D9JwEqN6PN90AqOLYRTMrj7lwjWlkklKHhbjeML74iXezJ0YbPvhjcJ1YfbKlKHQ== Received: from CY8PR11CA0035.namprd11.prod.outlook.com (2603:10b6:930:4a::21) by SJ1PR12MB6241.namprd12.prod.outlook.com (2603:10b6:a03:458::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.19; Wed, 26 Feb 2025 20:16:46 +0000 Received: from CY4PEPF0000EE32.namprd05.prod.outlook.com (2603:10b6:930:4a:cafe::27) by CY8PR11CA0035.outlook.office365.com (2603:10b6:930:4a::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8466.20 via Frontend Transport; Wed, 26 Feb 2025 20:16:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CY4PEPF0000EE32.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.16 via Frontend Transport; Wed, 26 Feb 2025 20:16:45 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 26 Feb 2025 12:16:30 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 26 Feb 2025 12:16:29 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 26 Feb 2025 12:16:29 -0800 From: Nicolin Chen To: , , , CC: , , , Subject: [PATCH v1 4/4] iommu: Turn iova_cookie to dma-iommu private pointer Date: Wed, 26 Feb 2025 12:16:07 -0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE32:EE_|SJ1PR12MB6241:EE_ X-MS-Office365-Filtering-Correlation-Id: 513b3c9c-a891-48e5-6212-08dd56a27e3f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: 8H7ZD4lE63MBmzrSnWoeedn0q6ziubudiGIAdZADToJSIKjMBbx2sPtHfZDR7rIMb5jAfVu1A33WIb06fN2zJVy13MBT3qZUk/gGgTDVqmlT8m5jFqqmQD28nfI//ds55pK41EoFQMkuKQ3Dlu5W5TRtGXCXrEXM1LXyMun9QWzfyFHnt80xSJpJT+ldRzU4wefWEmL5w3Y+77pbQTkF1bYj3cXa5b7pP0YGDqOXyGoPZQ3zsg5IXdO4CN7J8TVbwJe+cZMpIf4Ya040PhaUTrOjpK9mQzpa4ga6hKFyE2U9zX6KLXz95ydHdy3eE++zCRkzxFxHquvvNxctywDmqGhwLEzxz3C4xF2FWnDgNQCPgeeLxlkzdyYr9Yz5jCzmMU5VE1dNLYJu+aog5eklVhfJHE9+hb+YnpfmWbZcstjDCGrGDKma9N4ak9FlCaWWOceH7oYUrx+T1hkG++/JJieFDksujaM/L4aXzZ/ckBMvSUxKqHvTjRh3QR0D1VVRWzZu2n1wuJxC/dI0ES1bWRitpqWCgbNbGHV446Gr87Epps773aLYPKS8JsMOsODpIE+0s4BNXsvXbphWQrpNC9aQQoK4QbddguDS+4nP7I2BJ+2MAdE1qABO+SiOlrY6bjR23kyv2sGWOhGwhMwtlrs+tk78SOvPO5qoK020oENJM9sCoK6fgkOBD7ZhYVgcZ1WZmfoLugkGe/hZrMn2n23UPXlyKKniaG/qo7keyxLBwSfc1l045s5wJJJNU057pj9ogypFB682k+NlbhuGMDyib16xvOOMlJ0O5E6cKnbqIp8kPhxCYeIUn+96L/7igDe8fJ1qvjXVINsS2TJThWOr0jMBiU8pUxdm0DIkiVG7AVHUUWd6YQfslBDOct1iaaFLDoB3/14XppxvoBzxOA0ukaaxzORY52O1hcGem9zwusT93zKYadljLnznlJybI8A2Rlxydz4X+UhDqsTwUHPnI6iT+jBR4FDcq0x2eL6hJEJGh/Z4n4nVqGAg3MdccPmHUPfDTlzhEy5s64QD4m6r4tkjDl7PfgR/8tk4cnREIBxhsMlA3Sf0DJVluKySsRXYYNXe4ZncRGPEz7k2+3r8Ru45cEogflWscyyHvsP6rMXLPR3tFdp6JLBUbUCsKmcSEU8kBky3NUG0yu8J3QuM5aUi6MK17fcBkYyyIIso8WdqXweyh4CIwvHk1C85akdesnKC38HvbBF9Z8PDZN+9yS2kwVQXKrxhTq/WWp42MmZzODK5B1TYgzXO14PUCF2jFUxXli3wcfnR6ZM7fI64i5YEZnKa/CCj47ZNFfhep7fF2C1PeeEuxW8HzHMw0AAoI4Lj8gwje7FTEJWawpp2N9ZnDvumbM7N64MJfbpfrTGZYoXfxaMAT39ltYx8iZZPtQpBYOW72VKuEfcsaArTllq6rlunjPE847VU0Rc5EaexcDLxq5RMWlS1bUNouEkZgigoGQOdm8qK7v2fm7/Nv42jcYydsKiwpxSpGEc= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2025 20:16:45.7845 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 513b3c9c-a891-48e5-6212-08dd56a27e3f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE32.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6241 Now that iommufd does not rely on dma-iommu.c for any purpose. We can combine the dma-iommu.c iova_cookie and the iommufd_hwpt under the same union. This union is effectively 'owner data' and can be used by the entity that allocated the domain. Note that legacy vfio type1 flows continue to use dma-iommu.c for sw_msi and still need iova_cookie. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- include/linux/iommu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 6f66980e0c86..c2f9dc0572da 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -216,7 +216,6 @@ struct iommu_domain { const struct iommu_ops *owner; /* Whose domain_alloc we came from */ unsigned long pgsize_bitmap; /* Bitmap of page sizes in use */ struct iommu_domain_geometry geometry; - struct iommu_dma_cookie *iova_cookie; int (*iopf_handler)(struct iopf_group *group); #if IS_ENABLED(CONFIG_IRQ_MSI_IOMMU) @@ -225,6 +224,7 @@ struct iommu_domain { #endif union { /* Pointer usable by owner of the domain */ + struct iommu_dma_cookie *iova_cookie; /* dma-iommu */ struct iommufd_hw_pagetable *iommufd_hwpt; /* iommufd */ }; union { /* Fault handler */