From nobody Sat Feb 7 17:56:58 2026 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2049.outbound.protection.outlook.com [40.107.93.49]) (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 7957921A428 for ; Mon, 9 Jun 2025 17:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489242; cv=fail; b=ucwMRT8mTNYgdjduHRRH8VJ+k+wi8Lbe6lzV/7CxGRn7M+eAg1j8ghonrztFZ9VaaYnUHLi4/KlVfnqZmBc9rBV5RvohkygGO90IjuQPEhgZ8qxu8r+W+WR/WqTr03u4FO4Se99chIm1jKj7zfDaaKcUuCYRe29kRk/Jiaa4L2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489242; c=relaxed/simple; bh=g4qJt/CKkJelOxdo2Oga3csrYG1o2R2iNypuIdpbGy0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eE2eSDrIskXR+ij6jp70Rck/ZJHAIbp3PGF2BeCupBVEhdBzTkkurkV4s6ULote/MzWfONfmc2HQetfnRi4y5TBfvEmROAqYdBtyhzzdsfLA79bLTWkKayBRE8SQ8WuLejMnWO0753uJfDiv32CAQx7AYFhv6bVyogCCx9pvanI= 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=a5GZy+q5; arc=fail smtp.client-ip=40.107.93.49 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="a5GZy+q5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bh2r7KBaf+YxuD1RL1e5F6FMT7vMUV2HJ0J3EFON9qreeTT38dRS06UP/VSo0HN6MkEJwruIxkp+9o9X2jMNl7ymqxqHxSDrJ9N+MPisS5ubch4cbIBoxuSQOp9d9+bz06SpISgfEd0h2iov8XRZm7gZ35yY51cwWfljjAzaohKs7IvIUjIr9+88sSvhI/skBAa8p42fZkcgTMwoRjJbfiNXk0+6SCJV9WZDyVZtMj08fP7oh69qIAEbeW9PN8VVhBgjK//WtPyGuluQPKze2DlEorbDozeF9JcVeiYj7IS5LhzM7p6Fax9cdkuYM7cahVrhUIa34muXNegzFAcUtg== 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=fsF8BjcznT+3WKiDC6VLhWngLhtxU4EyCBlexGedYyc=; b=OVPN1zLYyCepR6ivBXOA8X++O6Gq4lId+kDjz5NucKUu1s+LBHNMYwQQmLxLcmIBsh43SI5UAhmcecU8SvNWIm4BO8X6rnm3aJnicOupYY4+Xr1e3KTXe+CztXKPyIidi9b4w+YRigRMwYvpzuz7S3Gxq37eLlOtu77+QMQhhKoCjRJb7lAqBqKnW6BoHQpTNWq/K5XmhumFK6H6A0THyzO0piylfhJTcA+MWH/NUDnr2VB7E0T5qCUv2Z3xeY0hgIdYQCbL61/AEYQr+8lW+OnLGCFv7UUiWV74idgWEryA+Xpv88sLGxo9w2HCPtsEC8hrg+Ltvc8bQuJ9y40UKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.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=fsF8BjcznT+3WKiDC6VLhWngLhtxU4EyCBlexGedYyc=; b=a5GZy+q56stqGtAIS523oA1AqaaB/oac3iBHQg0xusaYEl4Q9U4nNeWxUU8shucWe9WsoUJdfGJI4cxOVnLIt8MHJvEGp65rjQdx3e5rK6XES5ErTAuBpw0PsUCcN+jVSe5tUZPoUwMpSyEuPY+5PAsbmbdwb63umjCXdCHnxsp3cq9iXYqFsWEsc5YBQyjF2qNg+LiSCVCNt2eLRdUAtbKsmWQl4meX8W6HTxHZ2oiAEpPnz/nDuHJhBIBGkv1OzViUX4lxWo7LIgAVnqXKnRXBCydxF8IRa0+3r3K3erjA1fUffnhXdWXUeXY3q9lT7atThhJ8xZuNaT5mVvRgJw== Received: from MN2PR14CA0022.namprd14.prod.outlook.com (2603:10b6:208:23e::27) by IA1PR12MB8517.namprd12.prod.outlook.com (2603:10b6:208:449::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.35; Mon, 9 Jun 2025 17:13:56 +0000 Received: from BL02EPF0001A0FA.namprd03.prod.outlook.com (2603:10b6:208:23e:cafe::36) by MN2PR14CA0022.outlook.office365.com (2603:10b6:208:23e::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 17:13:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A0FA.mail.protection.outlook.com (10.167.242.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:13:56 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:41 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:41 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:39 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 01/12] iommufd: Apply obvious cosmetic fixes Date: Mon, 9 Jun 2025 10:13:24 -0700 Message-ID: <911815af406cc2d9fde50920aef61493be839fcb.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FA:EE_|IA1PR12MB8517:EE_ X-MS-Office365-Filtering-Correlation-Id: 090dec04-f8d8-4014-cf40-08dda779046c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|7416014|82310400026|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uqpVUxBGdSHOXjz7eigYV+iWwC3zaqVR0aGsxjqnlX4JF1jl8pSDN8SevrSs?= =?us-ascii?Q?D3JkHzXfDa+SFK7BD7nkyDk0D7MdH8UDtEmIyUsVPRZJpAIUzXn1ruahd42x?= =?us-ascii?Q?1jasU/F951uvo9rDSXzSoZF07uu+Jc3pCIPL8JQuImfeei9tGtrb7k3Fcrfy?= =?us-ascii?Q?ROmn0G8vpvvDTCv+lHJbpBLCnH9RZlQotf+zctJ1YkhPRsGawgVPeWao4o9p?= =?us-ascii?Q?9zikMAolxLVOrJLBx1ka0Ov4+PAAPEOsJZAaKOy+l2dIsVvKqNDBPoIBQ1Ex?= =?us-ascii?Q?UIJaA5JOHOC7cAw5t96R5mb1dpCpI5b6lWZJvToMf6os8StdDmFCDY52nuEj?= =?us-ascii?Q?w8PTKls227FmnWLfIpo+lDRQhaEx6ZnDfdnYjO99QUsG6i4f+Ne+G5ajQD9O?= =?us-ascii?Q?QxRaZZIyNCFsqOe9HyjYNkA2l7QkyCc63X8ZBVvTmnKE4nNKcYF1HB7WZ3++?= =?us-ascii?Q?6bgx+Fm55CD4EVMObFgpnKZ5PlCn9hX/VQSD2VrF0vt8lmSFGTLXGUmkfF/6?= =?us-ascii?Q?O0FlYR8hERw7B8I/6rzlSCpZJmdWAtPp8XAQlpP5RQ6Tm6hUJIpocmD6tiPX?= =?us-ascii?Q?7DDuAnjpir7R1NFKteGodH7uhB11GfRjW8MuDw7MRHjjur7fJgeqv464Ok2a?= =?us-ascii?Q?GGz1Yl7iWoeAMUadY/kY7ZKSEhot2u23qoVsId2tYPoctpF2vgLZJ014KYk/?= =?us-ascii?Q?Nd1eCyLbtFly8SEM2yM6F9nsnC9FJiVy6WUEEyKnOZ3i9Kjs39iqYm624s33?= =?us-ascii?Q?iKf8hd8hZCEdjqaCmTdVwSOi0Ycze/4JLGfEt+4J3LZqU6N10lA2zCIx4Tsq?= =?us-ascii?Q?PoA2xQgjNQLT4hHdKxam924u62hczGoZ5Fre+0fdoQM1/y4xEWItd/SD8rs3?= =?us-ascii?Q?4OCzT7eW/R2kYMVw4sayexrka6OfM4dFzdNHPJueadKLz6DRIJ558JMZfRVZ?= =?us-ascii?Q?6TC04j8te/i6WZQyDphOC6G8GaCtDoSSoZoDDPxcmEuUce79aB+a9GMU7C/+?= =?us-ascii?Q?KsvANLas2dT3l2f1QfhS7ImdhpGRwy0zMBtqLvOLNNGFDfaSL/cUhqsaQBoN?= =?us-ascii?Q?m9o60yPbufjLALM0FEH5nESGyJGXW66isntaBZzCsf0yBucPya23U0WTriaa?= =?us-ascii?Q?Nelnq3rGjCnY+MJJgq76v+MkHrs5FoIiI0007I9yZ67P6OJ2tVUm6zv7COKF?= =?us-ascii?Q?vv94tLL4uATO0cITkaOiXxD//J4+hD3MHEibqIR3KebY+PtaQJ3nRa5SnlPn?= =?us-ascii?Q?zcDFW4QNxcXhZhVLncun8bDma+1B2pEQtNLssdKkwTpU9gadUkQSMZ55MWCj?= =?us-ascii?Q?XrdH8DLpildGFdddDsxRWPk/L7Fpd9kWXEY9Be12ZUgs9csaG0ayRFianrks?= =?us-ascii?Q?NjnGBw2ynFeKrcgg8cv8jCYZTaVQHGfQed6PccGEJYmIVAV2O08+oLsSPN/c?= =?us-ascii?Q?6wCBt2I26urgzypoAaEoO/4ny/ayBImTR7Q5sTFoDBTy2iRQ2hRbk34Ukks/?= =?us-ascii?Q?IBIJL8s6kSFktP151MVg4MtqRP3ViUiFQ+7R?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(36860700013)(7416014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:13:56.1646 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 090dec04-f8d8-4014-cf40-08dda779046c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A0FA.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8517 Content-Type: text/plain; charset="utf-8" Run clang-format but exclude those not so obvious ones, which leaves us: - Align indentations - Add missing spaces - Remove unnecessary spaces - Remove unnecessary line wrappings Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/iommufd/io_pagetable.h | 2 +- drivers/iommu/iommufd/iommufd_private.h | 6 ++---- include/linux/iommufd.h | 5 +++-- drivers/iommu/iommufd/device.c | 3 +-- drivers/iommu/iommufd/hw_pagetable.c | 6 ++---- drivers/iommu/iommufd/io_pagetable.c | 3 +-- drivers/iommu/iommufd/iova_bitmap.c | 1 - drivers/iommu/iommufd/main.c | 6 ++---- drivers/iommu/iommufd/pages.c | 9 ++++----- drivers/iommu/iommufd/selftest.c | 24 +++++++++++------------- 10 files changed, 27 insertions(+), 38 deletions(-) diff --git a/drivers/iommu/iommufd/io_pagetable.h b/drivers/iommu/iommufd/i= o_pagetable.h index 10c928a9a463..c115a51d9384 100644 --- a/drivers/iommu/iommufd/io_pagetable.h +++ b/drivers/iommu/iommufd/io_pagetable.h @@ -240,7 +240,7 @@ int iopt_area_add_access(struct iopt_area *area, unsign= ed long start, unsigned long last, struct page **out_pages, unsigned int flags); void iopt_area_remove_access(struct iopt_area *area, unsigned long start, - unsigned long last); + unsigned long last); int iopt_pages_rw_access(struct iopt_pages *pages, unsigned long start_byt= e, void *data, unsigned long length, unsigned int flags); =20 diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index 9ccc83341f32..190ceb5dada3 100644 --- a/drivers/iommu/iommufd/iommufd_private.h +++ b/drivers/iommu/iommufd/iommufd_private.h @@ -266,8 +266,7 @@ struct iommufd_ioas { static inline struct iommufd_ioas *iommufd_get_ioas(struct iommufd_ctx *ic= tx, u32 id) { - return container_of(iommufd_get_object(ictx, id, - IOMMUFD_OBJ_IOAS), + return container_of(iommufd_get_object(ictx, id, IOMMUFD_OBJ_IOAS), struct iommufd_ioas, obj); } =20 @@ -452,8 +451,7 @@ struct iommufd_access { =20 int iopt_add_access(struct io_pagetable *iopt, struct iommufd_access *acce= ss); void iopt_remove_access(struct io_pagetable *iopt, - struct iommufd_access *access, - u32 iopt_access_list_id); + struct iommufd_access *access, u32 iopt_access_list_id); void iommufd_access_destroy_object(struct iommufd_object *obj); =20 struct iommufd_eventq { diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h index 34b6e6ca4bfa..498c9a768506 100644 --- a/include/linux/iommufd.h +++ b/include/linux/iommufd.h @@ -171,8 +171,9 @@ static inline void iommufd_access_unpin_pages(struct io= mmufd_access *access, { } =20 -static inline int iommufd_access_rw(struct iommufd_access *access, unsigne= d long iova, - void *data, size_t len, unsigned int flags) +static inline int iommufd_access_rw(struct iommufd_access *access, + unsigned long iova, void *data, size_t len, + unsigned int flags) { return -EOPNOTSUPP; } diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c index 86244403b532..ed0dc539d490 100644 --- a/drivers/iommu/iommufd/device.c +++ b/drivers/iommu/iommufd/device.c @@ -485,8 +485,7 @@ iommufd_device_get_attach_handle(struct iommufd_device = *idev, ioasid_t pasid) =20 lockdep_assert_held(&idev->igroup->lock); =20 - handle =3D - iommu_attach_handle_get(idev->igroup->group, pasid, 0); + handle =3D iommu_attach_handle_get(idev->igroup->group, pasid, 0); if (IS_ERR(handle)) return NULL; return to_iommufd_handle(handle); diff --git a/drivers/iommu/iommufd/hw_pagetable.c b/drivers/iommu/iommufd/h= w_pagetable.c index 487779470261..8565a6f596b2 100644 --- a/drivers/iommu/iommufd/hw_pagetable.c +++ b/drivers/iommu/iommufd/hw_pagetable.c @@ -309,10 +309,8 @@ iommufd_viommu_alloc_hwpt_nested(struct iommufd_viommu= *viommu, u32 flags, refcount_inc(&viommu->obj.users); hwpt_nested->parent =3D viommu->hwpt; =20 - hwpt->domain =3D - viommu->ops->alloc_domain_nested(viommu, - flags & ~IOMMU_HWPT_FAULT_ID_VALID, - user_data); + hwpt->domain =3D viommu->ops->alloc_domain_nested( + viommu, flags & ~IOMMU_HWPT_FAULT_ID_VALID, user_data); if (IS_ERR(hwpt->domain)) { rc =3D PTR_ERR(hwpt->domain); hwpt->domain =3D NULL; diff --git a/drivers/iommu/iommufd/io_pagetable.c b/drivers/iommu/iommufd/i= o_pagetable.c index 8a790e597e12..13d010f19ed1 100644 --- a/drivers/iommu/iommufd/io_pagetable.c +++ b/drivers/iommu/iommufd/io_pagetable.c @@ -1410,8 +1410,7 @@ int iopt_add_access(struct io_pagetable *iopt, struct= iommufd_access *access) } =20 void iopt_remove_access(struct io_pagetable *iopt, - struct iommufd_access *access, - u32 iopt_access_list_id) + struct iommufd_access *access, u32 iopt_access_list_id) { down_write(&iopt->domains_rwsem); down_write(&iopt->iova_rwsem); diff --git a/drivers/iommu/iommufd/iova_bitmap.c b/drivers/iommu/iommufd/io= va_bitmap.c index 39a86a4a1d3a..4514575818fc 100644 --- a/drivers/iommu/iommufd/iova_bitmap.c +++ b/drivers/iommu/iommufd/iova_bitmap.c @@ -407,7 +407,6 @@ void iova_bitmap_set(struct iova_bitmap *bitmap, =20 update_indexes: if (unlikely(!iova_bitmap_mapped_range(mapped, iova, length))) { - /* * The attempt to advance the base index to @iova * may fail if it's out of bounds, or pinning the pages diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c index 3df468f64e7d..347c56ef44d8 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -102,9 +102,8 @@ static int iommufd_object_dec_wait_shortterm(struct iom= mufd_ctx *ictx, return 0; =20 if (wait_event_timeout(ictx->destroy_wait, - refcount_read(&to_destroy->shortterm_users) =3D=3D - 0, - msecs_to_jiffies(60000))) + refcount_read(&to_destroy->shortterm_users) =3D=3D 0, + msecs_to_jiffies(60000))) return 0; =20 pr_crit("Time out waiting for iommufd object to become free\n"); @@ -539,7 +538,6 @@ static struct miscdevice iommu_misc_dev =3D { .mode =3D 0660, }; =20 - static struct miscdevice vfio_misc_dev =3D { .minor =3D VFIO_MINOR, .name =3D "vfio", diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c index 3427749bc5ce..cbdde642d2af 100644 --- a/drivers/iommu/iommufd/pages.c +++ b/drivers/iommu/iommufd/pages.c @@ -1287,8 +1287,7 @@ static int pfn_reader_first(struct pfn_reader *pfns, = struct iopt_pages *pages, } =20 static struct iopt_pages *iopt_alloc_pages(unsigned long start_byte, - unsigned long length, - bool writable) + unsigned long length, bool writable) { struct iopt_pages *pages; =20 @@ -1328,7 +1327,7 @@ struct iopt_pages *iopt_alloc_user_pages(void __user = *uptr, struct iopt_pages *pages; unsigned long end; void __user *uptr_down =3D - (void __user *) ALIGN_DOWN((uintptr_t)uptr, PAGE_SIZE); + (void __user *)ALIGN_DOWN((uintptr_t)uptr, PAGE_SIZE); =20 if (check_add_overflow((unsigned long)uptr, length, &end)) return ERR_PTR(-EOVERFLOW); @@ -2111,8 +2110,8 @@ iopt_pages_get_exact_access(struct iopt_pages *pages,= unsigned long index, * This should be undone through a matching call to iopt_area_remove_acces= s() */ int iopt_area_add_access(struct iopt_area *area, unsigned long start_index, - unsigned long last_index, struct page **out_pages, - unsigned int flags) + unsigned long last_index, struct page **out_pages, + unsigned int flags) { struct iopt_pages *pages =3D area->pages; struct iopt_pages_access *access; diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selft= est.c index 6bd0abf9a641..4d5dca8027b1 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -1216,9 +1216,8 @@ static int iommufd_test_md_check_refs(struct iommufd_= ucmd *ucmd, return 0; } =20 -static int iommufd_test_md_check_iotlb(struct iommufd_ucmd *ucmd, - u32 mockpt_id, unsigned int iotlb_id, - u32 iotlb) +static int iommufd_test_md_check_iotlb(struct iommufd_ucmd *ucmd, u32 mock= pt_id, + unsigned int iotlb_id, u32 iotlb) { struct mock_iommu_domain_nested *mock_nested; struct iommufd_hw_pagetable *hwpt; @@ -1491,7 +1490,7 @@ static int iommufd_test_access_pages(struct iommufd_u= cmd *ucmd, int rc; =20 /* Prevent syzkaller from triggering a WARN_ON in kvzalloc() */ - if (length > 16*1024*1024) + if (length > 16 * 1024 * 1024) return -ENOMEM; =20 if (flags & ~(MOCK_FLAGS_ACCESS_WRITE | MOCK_FLAGS_ACCESS_SYZ)) @@ -1508,7 +1507,7 @@ static int iommufd_test_access_pages(struct iommufd_u= cmd *ucmd, =20 if (flags & MOCK_FLAGS_ACCESS_SYZ) iova =3D iommufd_test_syz_conv_iova(staccess->access, - &cmd->access_pages.iova); + &cmd->access_pages.iova); =20 npages =3D (ALIGN(iova + length, PAGE_SIZE) - ALIGN_DOWN(iova, PAGE_SIZE)) / @@ -1584,7 +1583,7 @@ static int iommufd_test_access_rw(struct iommufd_ucmd= *ucmd, int rc; =20 /* Prevent syzkaller from triggering a WARN_ON in kvzalloc() */ - if (length > 16*1024*1024) + if (length > 16 * 1024 * 1024) return -ENOMEM; =20 if (flags & ~(MOCK_ACCESS_RW_WRITE | MOCK_ACCESS_RW_SLOW_PATH | @@ -1610,7 +1609,7 @@ static int iommufd_test_access_rw(struct iommufd_ucmd= *ucmd, =20 if (flags & MOCK_FLAGS_ACCESS_SYZ) iova =3D iommufd_test_syz_conv_iova(staccess->access, - &cmd->access_rw.iova); + &cmd->access_rw.iova); =20 rc =3D iommufd_access_rw(staccess->access, iova, tmp, length, flags); if (rc) @@ -1665,7 +1664,7 @@ static int iommufd_test_dirty(struct iommufd_ucmd *uc= md, unsigned int mockpt_id, goto out_put; } =20 - if (copy_from_user(tmp, uptr,DIV_ROUND_UP(max, BITS_PER_BYTE))) { + if (copy_from_user(tmp, uptr, DIV_ROUND_UP(max, BITS_PER_BYTE))) { rc =3D -EFAULT; goto out_free; } @@ -1701,7 +1700,7 @@ static int iommufd_test_dirty(struct iommufd_ucmd *uc= md, unsigned int mockpt_id, static int iommufd_test_trigger_iopf(struct iommufd_ucmd *ucmd, struct iommu_test_cmd *cmd) { - struct iopf_fault event =3D { }; + struct iopf_fault event =3D {}; struct iommufd_device *idev; =20 idev =3D iommufd_get_device(ucmd, cmd->trigger_iopf.dev_id); @@ -1832,8 +1831,7 @@ static int iommufd_test_pasid_attach(struct iommufd_u= cmd *ucmd, =20 rc =3D iommufd_ucmd_respond(ucmd, sizeof(*cmd)); if (rc) - iommufd_device_detach(sobj->idev.idev, - cmd->pasid_attach.pasid); + iommufd_device_detach(sobj->idev.idev, cmd->pasid_attach.pasid); =20 out_sobj: iommufd_put_object(ucmd->ictx, &sobj->obj); @@ -2004,8 +2002,8 @@ int __init iommufd_test_init(void) goto err_bus; =20 rc =3D iommu_device_register_bus(&mock_iommu.iommu_dev, &mock_ops, - &iommufd_mock_bus_type.bus, - &iommufd_mock_bus_type.nb); + &iommufd_mock_bus_type.bus, + &iommufd_mock_bus_type.nb); if (rc) goto err_sysfs; =20 --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2059.outbound.protection.outlook.com [40.107.223.59]) (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 5ADDF21D3D6 for ; Mon, 9 Jun 2025 17:14:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489246; cv=fail; b=NTF+GtTQKic7mf7XMl84OUYrjX5RhbCNZFHQ7xe/t3pYwyoNKnSTpleBgTIGfC25/ntuj8b6Pihu06wGSgjmmgCQRfoPbd3uAuUdWtqIGM/Dw+erqXyrNUYzYuo+FPPfQ//F2h6FN96xesH/ed2xRh21J9x8eiXPts2s59fHi2I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489246; c=relaxed/simple; bh=0EmqyJCX2ccvT8OoZXluB/MV1eN64WoHeFnceYZUN9M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pHceYsSvC2i1LG0boUvhtZ7oSt9J6ty4MDD2kFLAi90iTYDS2PGMG/QqXf2Lob88KWjgjSUprlYLC9qfjely1dqL7s65usopQ/mqvdKgaqSEkB/OxKg2oR1nqaAtEvlClRxTD5Ctgc2Btb1aVpA/c1WCGSk/4zycjtpzoLUepV8= 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=dBmvmWlo; arc=fail smtp.client-ip=40.107.223.59 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="dBmvmWlo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aMqpQ+flOrSbHzihDznQ6LIC7NjQGxTbZNEzQ/WHMj17iB9KAZKfmOojkaoClD6TqQZJ6p305EyIfqOnZmT8DOGDDs9S5f6fbwwkQuVdBerSgRq3xVp4fSjHEsFyAKGGzfaAy96zZfBWeZvhRpnNUqFg7qVPP/b/2jRaE8Mwn310YLOjA/5N1bH7dBGwmaDLTquF9MZdTDI03apXsGX/DBlcjI8SDPDZ3M3JT6nIMz7VZXBZKwhODm1Ao9PDcN1wzDLmSHwHXBQ18yZuxpUXV7Z5Bu43dO4YUPgf/o9U7EmS3Sqv8pI2S2hXQNh46QJ4SxLPatGJjk4xTubX8i6vnw== 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=QuB1wmz5OJylRT6NQ16sAukBPw3ly8YsidXxDbQNfyA=; b=y8SZrbBh5nXCBo/jokm8SEiIdDg6IDQca9hVD78NB2OszTIs9bBKpDJ4d49VjnOYIbK55gW8k2Bvq9IG57dC5CI+6Z97fpXRTR/lxp2UUms+kHkraQKPLOI2bQEaNkA1iKQj8llPLokJ93ldbx45/WqiL+YPimTwFHXdfMkMGReJHl8y2m/RVO7wGE0OQJam37AL6x6UJPHWJAN5E+0a7dHpSVExhrFuMksbBoG91NE60k8M9Yert4utfHg2HNM4uQRJ159t4vDKyN+ZmOdWnPlYNU8YM890EfZpzWsysfRhZN/QOKKKkT7C5q14PxP5xonf4JF3I/bZdXc57k+ltw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=QuB1wmz5OJylRT6NQ16sAukBPw3ly8YsidXxDbQNfyA=; b=dBmvmWloHg5yIzcZvsmlYL8iafOaioS1wHTb3E3XW7xDoUT8ExNa8RHYRJgFRC61mEZf4crK/GtGV1hzhLt9l7oRSGaWzTkfgmkhn5Wq2qcCIAALw/mj8EuwDSknmgKq0A8mRNRyEjuMFdCzog3dxAhDnCm7M7rUnVeiHwcyVAU/Yb/+dyiOjVHDGD/67JFWsbFlE9/ZSq/iiGyuA0ZDxg8wqgAyjKnTSIMeao7gJi5hmkBvSdo8DL5//Tw5H5DUgEU7HKoLQqOGMMFbWMKOFwX+16yhdNfjuIymGj5H6qZRy/EZwb1+HIdfiLe9gSglxWbXg1qn7GM1lowd0PCLmQ== Received: from BN0PR07CA0023.namprd07.prod.outlook.com (2603:10b6:408:141::6) by CYXPR12MB9386.namprd12.prod.outlook.com (2603:10b6:930:de::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Mon, 9 Jun 2025 17:14:01 +0000 Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com (2603:10b6:408:141:cafe::55) by BN0PR07CA0023.outlook.office365.com (2603:10b6:408:141::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.25 via Frontend Transport; Mon, 9 Jun 2025 17:14:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E1.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:13:59 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:43 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:42 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:41 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 02/12] iommufd: Drop unused ictx in struct iommufd_vdevice Date: Mon, 9 Jun 2025 10:13:25 -0700 Message-ID: <4c85d75d630d37df6e7140b7d396678046324975.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|CYXPR12MB9386:EE_ X-MS-Office365-Filtering-Correlation-Id: d893201d-3038-492b-3a51-08dda77906ae X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TSsSienZWkt3XQq/MaESfJq+Dz1FRMcydWs4b77SGfKx7dckNqcYt36wNeTT?= =?us-ascii?Q?Alph+nqY/DisgduZ90XgkTvxF8r31AEZcEWSNyFJWzbLsUkEoSqIOMOsj7Lq?= =?us-ascii?Q?q6kjyWjk7W+88dTd7kVjO/8mpEAg+8WE/3JVj7Sru4bcMStfe/TZ7z1qrtn2?= =?us-ascii?Q?7X9vxuZLIvqQUTwo5LlKssWRSzyy0lYX8hAw6tKeBUb3keBM8MoYwO0nlxVB?= =?us-ascii?Q?PydXfZXlw4tvxBUmvu1y1T6emZSUjgvXEptHjkie1dGONwUz7U4ocKhehQHz?= =?us-ascii?Q?UfM0+/Tz0QycjclRAVudoDuO8yXv32Fp2FETq7iDzel6Nwz2QmGR0PCArMmG?= =?us-ascii?Q?zOYfL1qsAJEMMBJ+FANb57VJa2cTQvQbQ1UZ9pq1Aywr9A3DuxgUXwxRahNR?= =?us-ascii?Q?MntAyrCTK1qR6JP8AbijofWsSc4ZzQRg8pp2aufWo42OXbfpBs3oGEMYLnIQ?= =?us-ascii?Q?SXiIhcs8OX8sGOoN5msfVuW9u9Q+vqxsRPbL74KAbzhtzZC89y3a+e7V8d0k?= =?us-ascii?Q?tZTGlQxaLUb7/6DKHhUrArIcfI3V6R/ZKkzTJdpQSzC6b1JMEe0bYYMH//LH?= =?us-ascii?Q?0PSHmRLNLqB25VrOHX2gCMMnbuZNf4rtgvol/1ShOxx7vw8RLt33DNWU3Pfj?= =?us-ascii?Q?Mvw9xOfJhIlJU6IPOSeq9MPt4V2X6VBKO3VrPyHDAS09C2EeCVGKSNZ6Nsg1?= =?us-ascii?Q?PsKWWy8Up/MpREmycTVzqqODIQSDL+pAOOKZoiB8kulzfMWcXoiddKAsBD6L?= =?us-ascii?Q?693bzoYDrhYimuwPZRPE9VDIf8CMcuOs0BxgRvSO665f3bi0Efpvlfcq4Q0B?= =?us-ascii?Q?0hQnBlE7ydUIAeNwqMGH8BmkqW804WC2aR4qc0fOi1EWq4sNLCVRM4lqSrKW?= =?us-ascii?Q?Iwzk9bs+DTSDR1aeOmZSEPpj5SLt64uiBTdC6DIYo0R0gieGpKqjvtkApuj5?= =?us-ascii?Q?QCmHewHISoesYjKk8zHiyEgPnsFeg//10ZwaBU3IebaUchlgxVsPRjzGB6GS?= =?us-ascii?Q?I6myVaJWvJZw+AhJfcDaYombk/QeZFocw0TSEjsXptlA1stFN9RaXqMw+QFk?= =?us-ascii?Q?dMH+RA90B6t3c0hGYWP9lN5H7hyg6R94Cm9LwwYqGnKP6M6W791XIxBOiEda?= =?us-ascii?Q?X/Z0gY+8VOGImNwf2gscnSnPn5GiAzMgSeIYel+pAqoL6+5o0o5Rb3NYsE+m?= =?us-ascii?Q?LU8Z509SnnhA+MkTqvSnbnVux3pe+quwZXJ+PQSWwpx92DE71qu95zKbh8VG?= =?us-ascii?Q?AcEsADSf22kaUDTEEbZbHkHE/SzdG5tR0LjGnxQNEojNIHWmkv4QdA9IFO6P?= =?us-ascii?Q?kk2oTkhFHHABid2RQ2oNHoj1tWWvbDfCO/TqMiPgUOgugRtBe4NZgR14zONG?= =?us-ascii?Q?IXbeT20wIQMM31OoHFMlD59+uCNsw9rarPr4uxP+y0oGYMhAXoIkdck/Ag5K?= =?us-ascii?Q?kC3ea7kMxZuPi4wfTUhEofW04JAmm925bGCGy4jMgOXHPL7rY93gvn0z00zz?= =?us-ascii?Q?xnt6eiE1ErxjXpjbTDsCZaoiFgoGmyrAVgSB?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:13:59.9416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d893201d-3038-492b-3a51-08dda77906ae X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E1.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9386 Content-Type: text/plain; charset="utf-8" The core code can always get the ictx pointer via vdev->viommu->ictx, thus drop this unused one. Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/iommufd_private.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index 190ceb5dada3..4619285c09b7 100644 --- a/drivers/iommu/iommufd/iommufd_private.h +++ b/drivers/iommu/iommufd/iommufd_private.h @@ -601,7 +601,6 @@ void iommufd_vdevice_destroy(struct iommufd_object *obj= ); =20 struct iommufd_vdevice { struct iommufd_object obj; - struct iommufd_ctx *ictx; struct iommufd_viommu *viommu; struct device *dev; u64 id; /* per-vIOMMU virtual ID */ --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2078.outbound.protection.outlook.com [40.107.93.78]) (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 C963E21D5BB for ; Mon, 9 Jun 2025 17:14:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489250; cv=fail; b=rtMMm7XCcNGtzDJWGuPvju58cWkUKwdR5p8MkEHbDZPX7mu5HXbcA2d9e6PecbuwegdpgWHvShpD2MLWYfFdsc6+lyv1fbc5oGrvz0r9LH1l2+hrZv/wWGvlBGtTUWa1w9mWmBXnY14ou8Czoan+8yd3VYAehMx3yTalpr6MluE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489250; c=relaxed/simple; bh=o01shdo1AsFaMzPMIWGDGPj2VLLc3V4veEJL0LcrxmM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XNQvbd0wyjJXGtRR3CvZVqrjaml1RoAS3FN4h9gbH5ZNb5w2vcbYUOOPrhCca4xbSe8ObeQqKVS7A7ZarKf4aTMB1AN9+TBY56CefrQYUlusB6QNm2uXSCgH6+HbhfdsvljD/lQPojHFnL7xqXphejrWUNVkHwXOy0FyFx4CFhU= 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=mMsYQ0dx; arc=fail smtp.client-ip=40.107.93.78 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="mMsYQ0dx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EKCbZbF+45cBdGgxCU6eL/fUAvH1HI3n9W1r0mse6Q3C2Hp/1d7IKZ3IGfwE/RFWq67nocGgPVTP6LlVZIBXdTWprJyZoAQJPvCd9pt7bjhy5mdk9/IBN2i/12xY4Z31xkOJPrcb7XeMAR4eRJkU7o2jLeVcr9Ry0NTepO/68z7m7QCPRw1glMjl8pRwbVsoprkEJySD3G3daKq5Kh/1jhwe+pK+6uL3zfeHunRQ+tKBxA2gOcpD88oSu8Bl/6rHoKfBdb4I8W9AfyNhdoTFRpa1sa9a5ia7sXpr48VZyW8bG0ddmobfhWOMv8aRCRURI3rJx3gI3at5BnHzjet03Q== 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=mOpN88Xj7iDGwHatcTrE+ckWma0Nb4tMI6IGFXF6bcM=; b=JhHinfSu/Yol2UuQHu37DFFX+CLIeFONwORhW8nDU3Y5SpEdLkndnfo/xYP2VMnZyIK1m+qYSqPEmFX/b81OaBHItATe96FtjGMQZA1U+ir1DIiobjj7EknHzS6uEhTGBS/7YkiaoOxbI3/AI2zl//O4d83xC1z4alJqxM1vnCHh1THunbS9GIowtkjF8i1yKeRT+rYPBoWKICfExayJ9Kom+NPoevCf2GN1YzPsRdmfit90zlvvb7UXqEDEHGyaVvw16RAAbDaaCZpQxEBdTVi6+g4PPq4eDD8H2WwbQ397iSDZ85hDxeUR3k+YJOrS7ITH2/afQh1rzL4xgAhYsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=mOpN88Xj7iDGwHatcTrE+ckWma0Nb4tMI6IGFXF6bcM=; b=mMsYQ0dx28ika0cOCjK8wp6Y5S5Aw2Z235ZRB5GwN+EcDcI4Q0kyw9B6klK/Fr+OnvEyQprf9xCqLhAYvG7VqvEtgQrbKSfl3TslUaXoVQSNaskpfAm5Nzh23N9tr5ad906COPMBeCSE8BJA/yvdKoa1dH4XASClR0eWxT5To9iAZqgs0K/QNlVo3GWIg8AhbB3qGLFU2cURlCSzapfNQjgEp/vsV+++o3cpvAsSiF3AR8u1OTJ8GJUoniQ3cndhwtzFx/uTYrLbI/wbzzDcVRWtPSmA4/n23O5+qCA0Bnt8YitEsiE1oF6n/sSNo29UBGCCjjzXJLEpYET8khaAxg== Received: from BN8PR03CA0016.namprd03.prod.outlook.com (2603:10b6:408:94::29) by DM4PR12MB8475.namprd12.prod.outlook.com (2603:10b6:8:190::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Mon, 9 Jun 2025 17:14:02 +0000 Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com (2603:10b6:408:94:cafe::9f) by BN8PR03CA0016.outlook.office365.com (2603:10b6:408:94::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.31 via Frontend Transport; Mon, 9 Jun 2025 17:14:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E0.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.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:01 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:44 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:44 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:43 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 03/12] iommufd: Use enum iommu_viommu_type for type in struct iommufd_viommu Date: Mon, 9 Jun 2025 10:13:26 -0700 Message-ID: <6172ca53f6acfbbdefc2cc14b436d484ef62c250.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|DM4PR12MB8475:EE_ X-MS-Office365-Filtering-Correlation-Id: 920b539f-0dc7-4bca-2390-08dda77907a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4JJz9BkInqLLZ3Hk6jjwq39kUzFmPvzHtSNq974yY/szRabBeXFadvo72Op6?= =?us-ascii?Q?B/cG23YDVWPQ8fc6nNim4ZhRu/uR141Rb2utSmuumqQ78wD/Mr5FIYVss6lJ?= =?us-ascii?Q?VLIlV+z8OIzhj8wlrIJ3gkDtP1acGY/1A2qsbrkG4Vj7iCQFQRG1oedhxhc3?= =?us-ascii?Q?rSXKFEzcKlb7zVMEDyfZYdus3xeS3gVY41LJfmMQ3lXlRku54Zndk9Yc1nm4?= =?us-ascii?Q?wq04hv5kjnlxkvTbeUgzLEVJ8PfZ9Nj5VZSlQck0kjIITaxAgOCic3ATHyQE?= =?us-ascii?Q?HHD8kIusqlVzuT0EhfGJV4xwj2yA5DYoVJM8r37tweQ92HM448YOq37gpDU4?= =?us-ascii?Q?wzptdRTJLPlJTHuqnNYm2aNSRKZ7FKWkD0/oJk5PPljK7U/0QoCiAJlaJY2k?= =?us-ascii?Q?B1dXciIJZ4DahIR3e27lF2mnga28Me4CAtFgHGY0eVSIKrvz3w+VAAmi5Cr3?= =?us-ascii?Q?BhbvDoIJfA/QTjhMYSzW1D7gdIHBTIFi66PIthv3l27xcmLzsc+6aTJBZNkr?= =?us-ascii?Q?mmX11B+UZvrV+jWZ35J8T5uZqa2EYtXmW6zag/QnsN25mex0fTqJAvrkOcs7?= =?us-ascii?Q?dkvhc0qt4mgTeBQbAdXb1aVd/9GapPp7BUZBsy9x80kY86OYbVP4KMDhvoTS?= =?us-ascii?Q?UYFGJT7OsbHLK5jRSnt0h4UIO7yFI4zw0s4NjDK3NI8LsJsWleov1ZLcUHs7?= =?us-ascii?Q?n7yijQSepCsFFP0JMkAxaswAchxtQeMn78kSgSWRy2FuHBvkXwduPx/0/ZHq?= =?us-ascii?Q?S81m1ZUjtVTOgKWjDv+7KP1WKdqAl8mZ4QV1hnsG6wLtk3RCOakoDK8puMF6?= =?us-ascii?Q?95ZHhyDtww8UIvzJ3ManmUNWSJk1DUt4dw720seJUCfkDkH8W0Z7u0KgvJmC?= =?us-ascii?Q?mS5ZGD/2DidqdoKreNhddDQoMu1bUry2L2z0WQPqRgXgIlhgxNbRaSAbqk79?= =?us-ascii?Q?IHxhLsOC0p2lTLETvfZiFtBozhMFFivqSSCQZb/w/MNVMyEgsvNrxwshLs0Y?= =?us-ascii?Q?TGpW/RobJbxjxSazGrKXDNkSl4gEJiY5NIq7LxL51P+fsqtZ6lLnRb0TRLYF?= =?us-ascii?Q?TquFPUltM9FAqs2bsEatoUnxg269KDVhW8wTLozdNvB6YGlP8RBxAvHS0V+F?= =?us-ascii?Q?eN5LNHGE8fzut94QINWy8Oc+ViIdWiM9ua4Sk56mdEE9JOzsqIPEPaEKhpUK?= =?us-ascii?Q?1IJ4IAk19WyR6BY0v/hjIIscoOd+rN6Il9MzBB8wsu7GWmlYzMWZIqh/DAou?= =?us-ascii?Q?aldutsvPUyojW4as/YY2P7KDmDhT60UJB5uRgRc/jTCTN+uY4poTyM2rQkzR?= =?us-ascii?Q?S8kx+Hhz3+j7Mg5edE8vIlcU0cfxUSNP8Su/do6fDLkrmobqqNtnV1xb9fm5?= =?us-ascii?Q?dHrd/FGeqVbNnLKoxdbIiEmP1oerL274Krv+B11CORgcdmA9lTDe9dFwOizP?= =?us-ascii?Q?H6tlg4WlB4AwSksKimNrEJaLgMX6qFMZrPSWM0F+kRa+nRjllklzs+V/83W9?= =?us-ascii?Q?u9d0IYiOyMLyCL8zLp6o/zW1KEpqFtDPse0k?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:01.5422 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 920b539f-0dc7-4bca-2390-08dda77907a2 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8475 Content-Type: text/plain; charset="utf-8" Replace unsigned init, to make it clear. No functional changes. The viommu_alloc iommu op will be deprecated, so don't change that. Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian --- include/linux/iommufd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h index 498c9a768506..ac98e49e44fe 100644 --- a/include/linux/iommufd.h +++ b/include/linux/iommufd.h @@ -101,7 +101,7 @@ struct iommufd_viommu { struct list_head veventqs; struct rw_semaphore veventqs_rwsem; =20 - unsigned int type; + enum iommu_viommu_type type; }; =20 /** --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2069.outbound.protection.outlook.com [40.107.223.69]) (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 1919021D5B2 for ; Mon, 9 Jun 2025 17:14:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489249; cv=fail; b=unbTv7v5jj5knFvV3NZoWxw8KE6Itemm9m8kj1005H9kYjpUIQvDODtfcbMl2AUL31zi4kq0muiZRrnmPRQWLOjqNI21qE0vDqKQO8oDB91Ygnu0LbLA/MmYk+QGZc6Xdgg3/slYaTyS2Syr+9qRdZ1Aqi2RHymh2/kHqQ4aW2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489249; c=relaxed/simple; bh=4gbW5bvzWWGDBU6sNRrqAIa5oSV545jeVmKLcT0iMnA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HsIoBtYI57iyTv1ANIngA8+jFDIypeTIA+SUXjuWvI/I/rOQsFgVbQG/WX4VvMpXBwlWUgnuWHHeB5MlwjFvz5V9zfdNtdVhx6LrBMFmzORaLTkAuWdVNHCZZm2lGnxr/iTKDkNJMXvrwaK0DXfbS4H1pyv6ascKRSXa/rnwcV8= 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=dxjIEmBD; arc=fail smtp.client-ip=40.107.223.69 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="dxjIEmBD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GuO9SD39HseGvBiZauVTcPh7d1QiUXxnptezwIJ/087CH3ZdULNUvpk+jAYHDNrSnUjIcJCPX0OB1uJ2z0PPOJTRvMzW4ca/FzP760SV7vcO6d+4UORN1Ri5/5gJu+KH6TjA2WhLJR+zH7Yypg43RWcBBwR6rIofMf1ukuaAgOaUglUWlz1CowmQp9Ae/Q+V6Xmb5H65YgGFHlj6gkZRsA4Dw+sWOa5mjdJldaC0yEsrNUA9354EIpkg52HsrBmFQ3/bsPM6ITIxTFBHQlsXjiTp3W+gY8CnL1nvrDKVtzlVSGZO39uFtgqowxOJrB972nHl7aMOgy/A/2jvkGT+WA== 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=GJIQUSEzZCpe0t3dyy5R8tHxGaPm2oNFqvtH8oE0MEY=; b=K6+MW6/NAwR6iRiS+STtrzEjrdF65Fl2zp9W1lYVz5rQFRYmf8YrmOO+sjeWAnsc9Dr8y/YsxewHF5N75Or/d52/NOUG6Dti2hJ0tgawqEF8AqRHSTPfNN3XVVF61B86MaglYREGL4RqpftI6jml4tKQhXa9TXLhQgrbq/wjdzONQdAzRnBy+UmXHVBz6rgQ1s+T29pTLYnSTLXZ5nnDmrlpFS7F3RShPG4ZESda4mzrTnK29DWP6ZisVJWP420sF9e85BvKyNyWNxFXBkoY1W937H6MaS1pIUPK0ubVBAC2hp44nI97MstxDqRD5zPn2bD1k0pciTzHrj9H5PhLag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=GJIQUSEzZCpe0t3dyy5R8tHxGaPm2oNFqvtH8oE0MEY=; b=dxjIEmBD3TAF8itS4oYx/bH+B9lzCcABEKDjkuWzF/+yF//9/hStWIG5YdbTuWGVFPbkarpi3M6W08JqBSKSv8upI5WCECt3Kt7QRVdy/+2wmK8pEv+CqdyRN1NAQwl3O1Ia51P3jU5BiVyJLx+f8KJ/TiO6wCoK5ci72yINShOX18UkQXUVEJJosG2KYO9V0ZPIgKiXMPzFcJixQt1iZHG4vqt0ePxlEwCeu1DS+5UC26DclON0yoqjIIRHq83okDrsCQXDIf8rN+pjJDeo3AwpcTUFID7MGelyexRnSzod4mHSjQW7YbTj+hUIuNJMaEWhavjuKvZUQiv+UeEOKQ== Received: from BN8PR03CA0019.namprd03.prod.outlook.com (2603:10b6:408:94::32) by IA1PR12MB6164.namprd12.prod.outlook.com (2603:10b6:208:3e8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Mon, 9 Jun 2025 17:14:04 +0000 Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com (2603:10b6:408:94:cafe::64) by BN8PR03CA0019.outlook.office365.com (2603:10b6:408:94::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Mon, 9 Jun 2025 17:14:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E0.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.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:04 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:46 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:45 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:44 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 04/12] iommufd: Use enum iommu_veventq_type for type in struct iommufd_veventq Date: Mon, 9 Jun 2025 10:13:27 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|IA1PR12MB6164:EE_ X-MS-Office365-Filtering-Correlation-Id: 0f1c3535-33da-447b-ea47-08dda7790926 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?G5N5c5v4WsuhVKKmi7aHXNffnaHIycVYxagQTug2bH9iklRMj/fTv+THLtlN?= =?us-ascii?Q?3vYZ8srcKk2RBHtvDYVSdu99sumbCxqSviU0K6eLpWQlpUgJge97jM4kQKkO?= =?us-ascii?Q?ZQAS3ryEzwz5bIj9eqZ4/BTXfCvzVW1sEcFKTzh0SaaJ5lwSxaLH7IKcXFL2?= =?us-ascii?Q?RP4Q5TXCS/LYJZkoQsnx9wnWAxp5c0WRKJhxNkHFeglQGjUb+H5v6iypepte?= =?us-ascii?Q?95aE7x69GVDAJWm/bSIqAdNjsEMvicMd77Q8JgKfkYoQASWUxlYRmo0fflys?= =?us-ascii?Q?JMQCOYXG3eux84CZzBix8etf0SI7NRuwsIpbESq1mjD4GzHM2izedptJdA/0?= =?us-ascii?Q?9hw2wtnJKwJ0SXYUn9Yezwj1c+Ddn13cC21AeTUuiIPYx3XfvjeB2aFQXFrB?= =?us-ascii?Q?9rEUpUQhzzqe+17DELZCTYGrVmZpgK+OXGX0AO7AspvCr6ipZFvhnxm3LZu0?= =?us-ascii?Q?7f7bNifsT/QVC5mfg7Jo6XbbDQBOVb+oJ/SkIf+IJHFHmIPzsoNgMn1Io27C?= =?us-ascii?Q?IKmo3dE7nqvxfzdBy5T/O9q4xo3wDDA4M8CAT9nqKgbkmYxofc12TZX3okC9?= =?us-ascii?Q?HI2jhY9MKzh5caCxwogb+gs1vNcm3vKUF4F9v9LZ8uFA1ivP3foPeb94v8HD?= =?us-ascii?Q?TsriMvaKVREFxEKBwXkcq7UB59SwdFNTFlHJmfJoKm2x4dfbrohmdrXeM2eL?= =?us-ascii?Q?ULmsegIEW8RMTAaL9B28cP7Q4im0Di6pDHKQbWaBes7ENcKtzYBJcTOoYjZr?= =?us-ascii?Q?8MtTHW6gIAd9dG2QaXmhfshicYrNqkKcEHaHjMbjT5xdiYGOuZwULNL6z4CP?= =?us-ascii?Q?txWsFI/7FLuBjUjCMe3Fg5fkgj2Wm4OiGJ/RBze701XhkQaiPH8uW2GU3p+L?= =?us-ascii?Q?IwdNJFFOY/LAZ9nY7RW7bvcruIs+8VR3nCkcFd+JIvbhr1hpqKe/AVSaDcZE?= =?us-ascii?Q?DAIzce1ni+Z7tVQ4bBAIqxhFONp4uP7iUrSZ+t3Jhc6H31ZEm0VXu0Jxtlwe?= =?us-ascii?Q?fdhciLWmkKdBvGXk9FZL7VQeWVCTX7UKB1P7JdxNgZ8+vGP+pdGlXKzyi5cb?= =?us-ascii?Q?3kVoFLocrKtDXRnO/C7xuziq6SHNqXg8kx90x+E0kOf76AJL/A6QSHGcRTSM?= =?us-ascii?Q?xHgT9sTKDEdu+wmeEdQP0eZy/0fREl4Z3Azmf3a3VY2/Wl007OMxRNM7cBuy?= =?us-ascii?Q?8aYYqj6vIv68oKS58EXz8WcPiryVIRPEqwXlltUq8LevAUt2AnUCDZMJ/Qad?= =?us-ascii?Q?MfNWjm4XvMweLTex4E61qFlFTuPc2CjGDupWcNewg0mz0ykCbKjQVidLVW9+?= =?us-ascii?Q?WzLtzEFZLtkzwsUPRIYFMkXFSoodCtq78ITPkq1w3WZeLd1lNIeiZz6rZS5+?= =?us-ascii?Q?pIdIngI64uXfkAV3SyiMjBLCfRo1L4ludhpMrGPMdetE8bTtMcqfZyNg1Gcv?= =?us-ascii?Q?fVVWm6GtQWpSw2u4D2c0RrJ+KK4HRSaBxwRbnFTxrAcqnbNdTieZJw2q9N0t?= =?us-ascii?Q?YJcrDauQMT8fTBTSQcu291l/zYMemkR+v46Z?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:04.0891 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f1c3535-33da-447b-ea47-08dda7790926 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6164 Content-Type: text/plain; charset="utf-8" Replace unsigned init, to make it clear. No functional changes. Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/iommufd_private.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index 4619285c09b7..32f0631368e1 100644 --- a/drivers/iommu/iommufd/iommufd_private.h +++ b/drivers/iommu/iommufd/iommufd_private.h @@ -526,7 +526,7 @@ struct iommufd_veventq { struct list_head node; /* for iommufd_viommu::veventqs */ struct iommufd_vevent lost_events_header; =20 - unsigned int type; + enum iommu_veventq_type type; unsigned int depth; =20 /* Use common.lock for protection */ @@ -581,7 +581,8 @@ iommufd_get_viommu(struct iommufd_ucmd *ucmd, u32 id) } =20 static inline struct iommufd_veventq * -iommufd_viommu_find_veventq(struct iommufd_viommu *viommu, u32 type) +iommufd_viommu_find_veventq(struct iommufd_viommu *viommu, + enum iommu_veventq_type type) { struct iommufd_veventq *veventq, *next; =20 --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2079.outbound.protection.outlook.com [40.107.243.79]) (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 C0BA221E092 for ; Mon, 9 Jun 2025 17:14:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489251; cv=fail; b=aWgKHQKqOlb5kVGfT2FyorV7Tg+T/R/XY5yX245g2xf5cxmRjFsoachlX9wKTU4iM/+WL/xFCZVReTeVxwHMZL1EZHqOGmwrkc0umVnSX/L7cYqJ0Yoe6pyZIVHnFfgsV3LjdNTKwQKr1hOaXQSI9JmBVRYdsRbv7biEsJ5AP1c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489251; c=relaxed/simple; bh=9ftI8sQO2OvKI1/XdJY0fZfOjiHcEOypw5OSr0ZYk8c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r3SG4hVrefsLI1JhgSupS+5DisvDWFn8OBKZVm46DdZIFJ0goci8d8WHBVvZzZ/JgptWjFy0UJ6ZUuHBQwlBwI0SuEE1i5Dje+lgWTsCd2MUzdKB3R0HycCjSlglPz7NSW2gxQgCgIFLrzILg5dqIQeNHkHoyrPI4iWAljnAyOw= 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=h/hygeib; arc=fail smtp.client-ip=40.107.243.79 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="h/hygeib" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hG8bPMaET1dkU3kCHXxmw/bZF2BZNMNTl7NLNe8ZjsJLVoMbrub9V6iquWACVrmHhpqe/xMZsep/MUSUOvlxMeR4rVdhBxevmYkZQ4XTqfof1SJe0Gbfsu/X6ZEMlxBv2Z+4/Bh2dGwVMrE0/AEjhZCQfMbBZBK/p7n338C4EUjTQbI4Ny5QsuXfRsPS75/+y/652dUF1kE1v5h7B7/so1CfIqHMAuli7nkoHfgeu4D1gT2T0qT2AKTn0efyY+mW/ehfiAZajYwrJOwGJ1IDifekr6SaRqU0XkhQuzlBwxkUwGgpTp71lkKXEmz9PHO4mqsd+ENBfR4rnJwGUrI2mA== 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=L64H7vgiJtyoHGMa4CCmMcqSlXb907wGx0owAc9WJTQ=; b=vZYChOx4XmzQfYYim3tTXbzqp3xQkLpQ39/tfyNUhqx6ed8WohGIJDlcK2DkCP7Skg2WFMaDI5wrBvMXvqiwnbOnk6Se/w+wi+nYbhkurB6ucMTKISxKLx0BqHJWSii+qbhBLAHoZSAYuZrenQiX2Ew251a4yPrcjxZAKpTeEYD3Q0O8KR+Sx9jx7wekp6O+XkJqXhbvrFEtLdXF89UrCOGi+1QWmFOFZRi4FT9pArI39JoDSr+RKhzusLeMz+20Oob7/G8/LM/37ydL36aucNOXEfT2AFPjQKOOZpGZf9aXQP1vJcSsMq8CuS+dXbf2u/tMuSF1FUw+5ejcEGI+5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.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=L64H7vgiJtyoHGMa4CCmMcqSlXb907wGx0owAc9WJTQ=; b=h/hygeibVc1+FhkfgE6quimBJsUIrvpXjLwlcqig6y7PQgHOtsGrrRl3rE9IKKBMJr6XRNsIFQJMUR+pfDJp3q/y7GGqbnb5MwfD66tUYaGKvihRkRIH9ykJYrHQFMqq1XGRZ8aUfnBsqWusRYaXGKgQoVedYFWl1ZVjQkSo1UkY4hXrP40eCHNaWUd0vapJpI0uASPCLUuH7l/CSZf7pUPF8Cnxl19svjCGpwX73GO1H33Skt5LnhbQ+VsYik8WV3a8j+Prw//7ucXEKA+ol0pnqx1VtgiNQW024YkR7sjw2TTky0U7zr047T3jPVow9lbZVEqEV3kWlVWbYxKCMA== Received: from BL1PR13CA0219.namprd13.prod.outlook.com (2603:10b6:208:2bf::14) by DS7PR12MB6165.namprd12.prod.outlook.com (2603:10b6:8:9a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.35; Mon, 9 Jun 2025 17:14:06 +0000 Received: from BL02EPF0001A0FE.namprd03.prod.outlook.com (2603:10b6:208:2bf:cafe::7d) by BL1PR13CA0219.outlook.office365.com (2603:10b6:208:2bf::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.12 via Frontend Transport; Mon, 9 Jun 2025 17:14:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A0FE.mail.protection.outlook.com (10.167.242.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:06 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:47 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:47 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:46 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 05/12] iommu: Introduce get_viommu_size and viommu_init ops Date: Mon, 9 Jun 2025 10:13:28 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FE:EE_|DS7PR12MB6165:EE_ X-MS-Office365-Filtering-Correlation-Id: 5593dfdd-1c0e-4577-cd82-08dda7790a89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fFlG+bLXGftGteJm2eGgBmy2QNCDXq6P2LtyymH5fFX6+W0RTjilsV6PBje+?= =?us-ascii?Q?Xlaj+iyycV7lJstR9bE+MntHWYiX3g2zJHYM7lRGtjFuZFqar3jA8Lwqps0l?= =?us-ascii?Q?DlMpZeoJ3wIgFd6ScVC4tUYzptyQMsJfioOXmPugDlaji2D9oR+b4v5iIlTh?= =?us-ascii?Q?2eUT8knHEAL5yoUov+xhg6NZatnJJrYJRsFF/mzEyyGXcnZKzONSWBoNtTdB?= =?us-ascii?Q?CtNAvP0TQW5qUQOLz7mkch2DEAW6Em8vfV2s5MQxC2OMJDH+uBCQbpr9RNto?= =?us-ascii?Q?a+URiinMsXo1734xBMhYyLcePmSI8Ta60P4HM608V+4BQ167KCN+Af8QKOtm?= =?us-ascii?Q?owiSs7FIRdHaw9xQ8pV6xMWUilPT6DUUK1PiXPYyKv9LMDg7vUsVhtDRfOpq?= =?us-ascii?Q?4CI5yT7IZg5maU7OsTs7uApjhIIbe9ISZ/Vx33Pw1y1gWkZPtPzkkFczGkSq?= =?us-ascii?Q?cBNhVzYgO0xn39qFF+HVV/1+U+u017Lv2f0pzMO48675UTfmBmcaY0OUaHuo?= =?us-ascii?Q?BuSQNBWEiTiU4szTDwhkLbitBJc9vShP1ff4zkJsI3wOA27y570tujv08HKI?= =?us-ascii?Q?fJEUyHL9qM1wX4UfNF7naDNxtqJ4zKyOXS6azxz0fztY04eZDiFbEnQIPBoV?= =?us-ascii?Q?6g7LlAdZovQvt8lYlvVIspncp2coS5is+AVou8ZQtnWdZUsLBgHpit6lGzh5?= =?us-ascii?Q?u4mD3Qz/uW43ZLd/8tbRmfk8Xg3TCr58Eybw68HRzWFjLmHS+RIHL3TJTbi/?= =?us-ascii?Q?zA25I9dK1EVG3JLMnJ6zTL77v6qR4r8S3n4sECtHuL4H3FoJ27cq8U7uztMo?= =?us-ascii?Q?zMX+u+c6xUGGe4DSMSJOnDKRmU2XGERymQZmI/YL6Jrg7bUU0E8V3EXPdLnz?= =?us-ascii?Q?uF5ivnGE28IJGcnWk+Kazkq+CeRP52vI4KlkHuiM+gdSwj41TONklKU/C4x0?= =?us-ascii?Q?3iPs1jSNsF5pK0CX9+lvAwznNFw0Zm1Qs8aWeQ4hWQLRsOVrFgZogGyRK7z0?= =?us-ascii?Q?FFU6EsmEAp64tojM69brWLKroaqxY0d8JT6fyPyrZBNuMaXGsjINyKDMrJNe?= =?us-ascii?Q?NT2+sC9Hb1LtwXNzZtnML3N7MulZMAoVhaAPHlZgY4tAd4NV5oZYiHe5XxYM?= =?us-ascii?Q?Ja7gxiZS92TcS9gZrqJNv8Tqr0w6M8yWSSWX5Q/jxVgFNSwzDlnEiWyRM/N+?= =?us-ascii?Q?kY/WWZVrgbt9X99JoT61ocGE/tonvke0iEqsaKL4PnSVjunzAKSSlsr2fbww?= =?us-ascii?Q?SXP82jSbcTZnxWHhS10g081FBvt9tDWPFFp7k9xRxQQsx21RSWZ0AWrWjcDK?= =?us-ascii?Q?4XhNgRShJNBTo5luFWbCS9VjkEsKsQBUOS6vYu4wm1Wd4h6H3tG0pZ+19E0Y?= =?us-ascii?Q?5kPs0m9fVWfC+OQqAT9IpUjvcdWNIP6WDbHW9DBvwOuY7B+r1R04jGcWcBhs?= =?us-ascii?Q?vpqslxdHDFBXJLYH7pLWunXxcUJ7U6StXs9oohMlMRMro2t6AusxsL47Eo7F?= =?us-ascii?Q?kp+VEN1LFoO38r0YOJjucGYWtfIqkplIxRhI?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:06.4011 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5593dfdd-1c0e-4577-cd82-08dda7790a89 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A0FE.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6165 Content-Type: text/plain; charset="utf-8" So far, a vIOMMU object has been allocated by IOMMU driver and initialized with the driver-level structure, before it returns to the iommufd core for core-level structure initialization. It has been requiring iommufd core to expose some core structure/helpers in its driver.c file, which result in a size increase of this driver module. Meanwhile, IOMMU drivers are now requiring more vIOMMU-base structures for some advanced feature, such as the existing vDEVICE and a future HW_QUEUE. Initializing a core-structure later than driver-structure gives for-driver helpers some trouble, when they are used by IOMMU driver assuming that the new structure (including core) are fully initialized, for example: // my_viommu is successfully allocated my_viommu =3D iommufd_viommu_alloc(...); // This may crash if it reads viommu->ictx new =3D iommufd_new_viommu_helper(my_viommu->core ...); To ease such a condition, allow the IOMMU driver to report the size of its vIOMMU structure, let the core allocate a vIOMMU object and initialize the core-level structure first, and then hand it over the driver to initialize its driver-level structure. Thus, this requires two new iommu ops, get_viommu_size and viommu_init, so iommufd core can communicate with drivers to replace the viommu_alloc op. This also adds a VIOMMU_STRUCT_SIZE macro, for drivers to use, which would statically sanitize the driver structure. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- include/linux/iommu.h | 15 +++++++++++++++ include/linux/iommufd.h | 6 ++++++ 2 files changed, 21 insertions(+) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 156732807994..e42a28971182 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -14,6 +14,7 @@ #include #include #include +#include =20 #define IOMMU_READ (1 << 0) #define IOMMU_WRITE (1 << 1) @@ -596,6 +597,16 @@ iommu_copy_struct_from_full_user_array(void *kdst, siz= e_t kdst_entry_size, * - IOMMU_DOMAIN_DMA: must use a dma domain * - 0: use the default setting * @default_domain_ops: the default ops for domains + * @get_viommu_size: Get the size of a driver-level vIOMMU structure for a= given + * @dev corresponding to @viommu_type. Driver should ret= urn an + * errno if vIOMMU isn't supported accordingly. It is re= quired + * for driver to use the VIOMMU_STRUCT_SIZE macro to san= itize + * a driver-level vIOMMU structure related to the core o= ne + * @viommu_init: Init the driver-level struct of an iommufd_viommu on a ph= ysical + * IOMMU instance @viommu->iommu_dev, as the set of virtuali= zation + * resources shared/passed to user space IOMMU instance. Ass= ociate + * it with a nesting @parent_domain. It is required for driv= er to + * set @viommu->ops pointing to its own viommu_ops * @viommu_alloc: Allocate an iommufd_viommu on a physical IOMMU instance = behind * the @dev, as the set of virtualization resources shared/= passed * to user space IOMMU instance. And associate it with a ne= sting @@ -654,6 +665,10 @@ struct iommu_ops { =20 int (*def_domain_type)(struct device *dev); =20 + int (*get_viommu_size)(enum iommu_viommu_type viommu_type, + struct device *dev, size_t *viommu_size); + int (*viommu_init)(struct iommufd_viommu *viommu, + struct iommu_domain *parent_domain); struct iommufd_viommu *(*viommu_alloc)( struct device *dev, struct iommu_domain *parent_domain, struct iommufd_ctx *ictx, unsigned int viommu_type); diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h index ac98e49e44fe..423e08963d90 100644 --- a/include/linux/iommufd.h +++ b/include/linux/iommufd.h @@ -229,6 +229,12 @@ static inline int iommufd_viommu_report_event(struct i= ommufd_viommu *viommu, } #endif /* CONFIG_IOMMUFD_DRIVER_CORE */ =20 +#define VIOMMU_STRUCT_SIZE(drv_struct, member) = \ + (sizeof(drv_struct) + \ + BUILD_BUG_ON_ZERO(offsetof(drv_struct, member)) + \ + BUILD_BUG_ON_ZERO(!__same_type(struct iommufd_viommu, \ + ((drv_struct *)NULL)->member))) + /* * Helpers for IOMMU driver to allocate driver structures that will be fre= ed by * the iommufd core. The free op will be called prior to freeing the memor= y. --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2059.outbound.protection.outlook.com [40.107.92.59]) (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 7AEB421C9E4 for ; Mon, 9 Jun 2025 17:14:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489252; cv=fail; b=tuHgiHOXOIhnq2upBFVbj/m6E2AAkDVP9y1e0Rg5oIBHxqd4kzYPatcY2fOjsXqGvB/T9K61TV1lKoxMlVt/M38Mx1hfvSqJvE9fVJBGC37ZP6I6+GLX/0kIxZDsOfbfXa9Ucg/BhWsxG+NlwqsPBHysdC4SahRZjM8NQ9Q83Q8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489252; c=relaxed/simple; bh=GcKiOYgvIEvpvuh1tYv9BEpq+L22giIMybsIy01uTXw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bh+Y0luFUwwpEJBmnXY16Xmq9UIQ76+M2882ltt7S5y5Dtzpiu9m90vZKKQPUQ1ehAX7qAe3a790fBF7BjXhOJ0Vvy8nzPggvtR7BioGq7zZDQcrnXIxuqxoctSiCmkpeIPIkmNPe7+sKm5/a0haYbm87vZ5yOm8ghvTOL/H1+Y= 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=d5si5p1B; arc=fail smtp.client-ip=40.107.92.59 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="d5si5p1B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c+n2XO+A2xJ/NnKj/Mj6/65ZN2R2jGVTYGiLz9n6L6bjvBlOpE+O7WV2DmXHF2/UzfHiLHT5PfOkhAUDKo36Ucq+UwEPttTNOqwGzHEQVzSeFBK2160PFtO8zfXUKkpY1d/j59uAWw/Lynidh6SlpKtmbW+ckKzo0gCGH2/kfI1jsquQ3GXGJcVoaabo29HK5ZxftbDkG+Q7LJxYqTTIE3OOZfxNfDWsEVa7Y0I6mmofbMKyG6CDCgZfxxo0HAitBaXA8wnEn/OYNJ0zkKyaP5VcPFZKywnrDO/W3I/vnzN6+bKv1MHl7vDpYDeH56FsZUgTIIdIBb3tXgzMMD7ZOw== 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=79PucKB/MntvwdbUDfRONLXeg4yiDFciT3AWNzR9LCU=; b=r/x/dm+lIzTrVJS6bfWKXs7+v3T0QIqMStiDgfhO974zX2ywc4u5FhojyfmwJMpqn8G4CsjH6T6LA+IMXR4DpRKS/AI3gAwAMuviD3tyovq2yuZafmU5Dc9K9BUydR57GTRyzLs8WHszRIPCQR/NLZoJpJ446W8VggDDgMd+ptUxuPs39PZdK9O345YctuHGy1C9JFV83bMKPydBylNIQfqhfjON4qJ0F/cabjcauTZHpbhdmZQNSkkMMadXI4rRASQdRueiDc/1N1Tz1Rha2vZm0JxDmE1gnJ16iUx2tktSJHVSQh8toVsr9En3fvTv/6mejB6BGAUmTaLZqHeG5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.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=79PucKB/MntvwdbUDfRONLXeg4yiDFciT3AWNzR9LCU=; b=d5si5p1B7HLUxIGYSOMcdmwjS34poS6EOKSGFjJMK3wuMbzePTmPl5CEv0afLQ6w3aEErDQhZEe1UwFNEc080UJ6jwokX+M/DB49lsEfMYdDz4QCQHGwGMnpcAy+bvTGDVJ2mh8h37pCZ5dJ8FHh8iR2Jqr76t2zW8s2Ndn39eYBZoUI9uw+IGTAwSM31VQ4zLDnZF5uuqnvolhJeMnypIzAlv7Fn8Bho6dX8d4EX6yqMlTbM2TbE0CO2l3nGNyhJpsVAUOxQPDjqiOL8bZeJMtjMxYYCJtxL80Ni315lj3DFHV/nhlvJ2c6dPO6u2BFceuoQmCLaB3F9CcGwTa+qw== Received: from BN9PR03CA0288.namprd03.prod.outlook.com (2603:10b6:408:f5::23) by IA4PR12MB9812.namprd12.prod.outlook.com (2603:10b6:208:55b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.35; Mon, 9 Jun 2025 17:14:07 +0000 Received: from BL02EPF0001A100.namprd03.prod.outlook.com (2603:10b6:408:f5:cafe::30) by BN9PR03CA0288.outlook.office365.com (2603:10b6:408:f5::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8746.31 via Frontend Transport; Mon, 9 Jun 2025 17:14:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A100.mail.protection.outlook.com (10.167.242.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:07 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:49 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:48 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:47 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 06/12] iommufd/selftest: Implement mock_get_viommu_size and mock_viommu_init Date: Mon, 9 Jun 2025 10:13:29 -0700 Message-ID: <5880f4d754b2b7a7c4bc8664a5b954821c73aab7.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A100:EE_|IA4PR12MB9812:EE_ X-MS-Office365-Filtering-Correlation-Id: a1a33738-54c7-48b5-e33d-08dda7790b26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3wDS99W5KDZX7+U99H8CNBa6Pl8ZQ4S8yNdGioIpxlJEudPSOs2MUqwjuW/d?= =?us-ascii?Q?qRoU4HKBtZKho5nWNEcvrIEnpC7N+C64GZQTJWBy/mkOBiwtsJ7qNcAO4b1p?= =?us-ascii?Q?yVPw4HwdfdtTkg6RDElyPYkT+GBBPYUk0Ym5uw/Y5XGuDZDK2utpKecnzgCh?= =?us-ascii?Q?ygrwAZ4U1UribIfFHvQKd+o+QodQNpuLMdTsiaBtVhh0sF1itGYYuoTb9yBH?= =?us-ascii?Q?74PEfS2r7VCp+2dw2j2CaWgrgQLh5VGksyCBIWBADDD7gtIcXVc+2r400hGL?= =?us-ascii?Q?J9g/Q940J68L5418hXY2/BE6QLl8Mrm5cH9FTfV3sdCCbiaNvJ8v91CZVPdX?= =?us-ascii?Q?vTGF5HVqK2SCvIiKJhFHbZnbWHd7iKU8f5iw3WKwablEt20kGOx9Z7vGPNRP?= =?us-ascii?Q?7sf7zHMcwyq8dqncfCj9LYeOdyKKJDgFh1ByAy1Qj1i5wjN5vPAc/+GBomaN?= =?us-ascii?Q?bgvJ48J37G4BwTTarujqcMX1jfY4RKWRW+2u/OcXvzaJtyicr0gNjHvb96XG?= =?us-ascii?Q?ed/2h4r7eGI7HKn97etApMI7M5Rgfase5cnimoaIs1lC+2xwuAY0gKQJy4Du?= =?us-ascii?Q?P4qUIvEarumXaGTk1PytI9YtLWUcdHi3Q+qGYtIFGGiKwS0H2dj1bEqwB83K?= =?us-ascii?Q?JF5Wm9EMSulFgO8d0LVjrK79SAK51xK3ma01m9ntnOhVAVCqUrJEWnAJw8s1?= =?us-ascii?Q?bVt0IFQ5hzqEPGrzWnk+586KiJcIrDRo2tZOavKAYAC4k8lV1hPdcQrIgFGI?= =?us-ascii?Q?OGm1/eDDO0zOevoH8+Z0KWjTgJwMJu0r2A2QFGdUjakbqa7/LuNhNn3T6Ypk?= =?us-ascii?Q?58aoa2q1+IisH7rLT0AZJsDe6M2DaZIQN6Mds9Njg0qd4XW4/s3zerQ8YjLV?= =?us-ascii?Q?E7G4TiC7M0eOEjwIIgOUN+a8PZz6BxPjiwdeeQMqr7MvvMyLVNhlKi+HSPtS?= =?us-ascii?Q?x2eeKTZ+jwl8pE78cArZWtPM5xbb0VYyuDk8buTcAuPaM7EBCGRixutvlzYS?= =?us-ascii?Q?/eVwDmF3mH9ZVlq7nMg3A6VhS+HZZ/jpnMlE/0LrQndlQRRKh1nuy2bQjKWl?= =?us-ascii?Q?J+pIGkkbeGh/9phdSM21xpty0GIEsbOHxdLp4m2UDWXdtcJIENbVAorZnSXy?= =?us-ascii?Q?qQQn+KqxVo53s6+q7FIYWljKhZ3mi4EGHdp6+uxt5hMtqCLUoOTy9VT/hWh1?= =?us-ascii?Q?9lANccow5XRMrNjfXC+NxA7FqMftpJQD6f0kTUumPIMCIpvQSdY26WXLD57L?= =?us-ascii?Q?66/MSQMxRNIxPoYFzKY6JM5ya7SQgzz0kzQ4EdU2T8z2T8fnYFBxYT5BV2Bq?= =?us-ascii?Q?os86o05HBToeL1GR220k9ycwqKyDbpr80mgz7h0oaizagoCcZ+1Wk8QRRHhv?= =?us-ascii?Q?Bcx9ffaZqaRmkvVYyP9/hWQgIs1odlnoEwd832djoXTqNYtqAd2eY1axoSal?= =?us-ascii?Q?Skv2i5DTXlW40hNpO8phzFkVnc0PW/fSbKv/M56o/PidTTb+sLJzzOdKcJhL?= =?us-ascii?Q?gJtXYBOSTbaHSHuUO00Om3uPf1lVFjhRO8Bd?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:07.4341 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a1a33738-54c7-48b5-e33d-08dda7790b26 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A100.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9812 Content-Type: text/plain; charset="utf-8" Sanitize the inputs and report the size of struct mock_viommu on success, in mock_get_viommu_size(). The core will ensure the viommu_type is set to the core vIOMMU object, so simply init the driver part in mock_viommu_init(). The mock_viommu_alloc() will be cleaned up once the transition is done. Signed-off-by: Nicolin Chen Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/selftest.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selft= est.c index 4d5dca8027b1..b0de205a2303 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -772,6 +772,29 @@ static struct iommufd_viommu_ops mock_viommu_ops =3D { .cache_invalidate =3D mock_viommu_cache_invalidate, }; =20 +static int mock_get_viommu_size(enum iommu_viommu_type viommu_type, + struct device *dev, size_t *viommu_size) +{ + if (viommu_type !=3D IOMMU_VIOMMU_TYPE_SELFTEST) + return -EOPNOTSUPP; + *viommu_size =3D VIOMMU_STRUCT_SIZE(struct mock_viommu, core); + return 0; +} + +static int mock_viommu_init(struct iommufd_viommu *viommu, + struct iommu_domain *parent_domain) +{ + struct mock_iommu_device *mock_iommu =3D container_of( + viommu->iommu_dev, struct mock_iommu_device, iommu_dev); + struct mock_viommu *mock_viommu =3D to_mock_viommu(viommu); + + refcount_inc(&mock_iommu->users); + mock_viommu->s2_parent =3D to_mock_domain(parent_domain); + + viommu->ops =3D &mock_viommu_ops; + return 0; +} + static struct iommufd_viommu *mock_viommu_alloc(struct device *dev, struct iommu_domain *domain, struct iommufd_ctx *ictx, @@ -810,6 +833,8 @@ static const struct iommu_ops mock_ops =3D { .probe_device =3D mock_probe_device, .page_response =3D mock_domain_page_response, .user_pasid_table =3D true, + .get_viommu_size =3D mock_get_viommu_size, + .viommu_init =3D mock_viommu_init, .viommu_alloc =3D mock_viommu_alloc, .default_domain_ops =3D &(struct iommu_domain_ops){ --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2066.outbound.protection.outlook.com [40.107.223.66]) (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 DAED721FF49 for ; Mon, 9 Jun 2025 17:14:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489253; cv=fail; b=ZlsnnUdf9YrZxzPbPmIkCrG8k2eCgO7OJUs9N8U17pbDZl+AdFL3uzSxErdb9XnLd0nDFvhY8c4xD+vWzuD0/SgsYLWGhRU2azMhiDK528vpszkbF2Bf3OOXvEJEYHQC3GJMGVIrdkQViNmncr/jlg25lqG4V/vM0H3tlf5w7w0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489253; c=relaxed/simple; bh=uExJOJj72q+nuyG2aQ4qk/xyAD2DciH2GDKfEe7D9V0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WLKf0StACbjK2pRKsNoqbxarr0KqhvoqtW1crLw/xX3lMAcUW9deqNBPamtMxq2xooYwIRJdoGTFKSgt6E/yJXUf4xWaInCb30xPk3LRa6FeVxDzf+PM0KX3k6YotPZ/uJa5oRGLTmidSpoHmtzeznDgq+cfj0Fp+zhcud6tO4o= 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=P3vF5YdC; arc=fail smtp.client-ip=40.107.223.66 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="P3vF5YdC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TUq3mQjqAaZ8gVWKESZjVmU7MWMdovlEO+jZD3hvPRYchORyA3g2Z9oY/8SthdBQNM+EqAncFmOMrXI/kAYG+m7/NYF5sedl2kdB3Gygi8f1dFjE9HMMgWl3F9sq6qYD+8DF8AgtGrwtn74mdTjgVluCJWMK++etuFqhtPeP/eV8rHHOt6g4F8CPgaV6DD9uH18C+4g03z5g/1fmvak7keyW286FS1gWOnOM4Ptsg44VzQng/1uiNJp1YaDQOCaeNHQhdo+bcOoOhhVZpquGGORGp+/NDHsTLnv/dFwf7qWvIXJ3/F/dcuLMETsn0CH0OqxJMcy+fDF5vED4gIH1nw== 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=bMTVWdvuHaqbSGRiTvBhe0GTsk/ada2eK96vEW0+gxE=; b=CyNSp5F/oNICi//FlqH8vxFz5CAiO3jW9+shdggHzykZOnzGu9SwbJEF5ID9YED7SPQi7JWF38BqvGC3s9mi8cOfR+Pl7wMDWnbjGcdlriIQnYAj+UKZUG9PDxMJwOB76TRod3v8LNWqepJbwIbPkEUJLFotwtLWVnsV/mUsxQZN+PgB9Jrrms60tK50uBchOPOtTBomK44s/b+AKjDNsrGico216aCJTZVAE0/JLVtV0UYdU19g8h7nu35EpeFWPCJTGquLtC/TJMq3i30c85i+ecmLjeShdeYOcE+a+kYfE/19yFuaE1ifzpLTFlogSoO5RfykujFysE8NYS6a5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=bMTVWdvuHaqbSGRiTvBhe0GTsk/ada2eK96vEW0+gxE=; b=P3vF5YdCqHSObocrNERTIKopmRQsNtXKieLTWbZGL1HtGncAmU1pVIWlbRMAdTJC4yLI/SeehR3UbSknP/Ns6/tNLolwCI+oB7Mew+Z95D7acdV6JIeozOPtxp9s6VYYSkcHOnYr7Mx2aN6kbVbhZJXbEWgMQswuB9NwpjdO8tc32xm+mIyKvXgJaP3dSPJchOvc/3h7fZ8UVBlnVqJad4jnSBI7/Xun0HJM6yM7k9eJskZDLC3HlYiyltYPs/kgfkr2o1FFmQFfsPEeA+Ks7vsUKSA/iI6LjbOivcVwp619ICqOoH7HzWQawNBsqB67Q+7XEj8/dVUp4emllLAtmA== Received: from MN0P223CA0004.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::14) by CY5PR12MB6107.namprd12.prod.outlook.com (2603:10b6:930:28::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.36; Mon, 9 Jun 2025 17:14:08 +0000 Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com (2603:10b6:208:52b:cafe::f2) by MN0P223CA0004.outlook.office365.com (2603:10b6:208:52b::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 17:14:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:08 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:51 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:50 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:49 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 07/12] iommu/arm-smmu-v3: Implement arm_smmu_get_viommu_size and arm_vsmmu_init Date: Mon, 9 Jun 2025 10:13:30 -0700 Message-ID: <55b1d69b2cceb685d4eb728a7a53572a9147993a.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E5:EE_|CY5PR12MB6107:EE_ X-MS-Office365-Filtering-Correlation-Id: 42e15f66-4bd9-4513-7ce7-08dda7790bad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hHJDvmYKGBjtkrRLS0B21wg/rJ2gDZx+fUZ1qhG5VY2fPBytgXT+Iibxq8Kd?= =?us-ascii?Q?2MoiGPbZKldiMntAkvZhecCaA8inSLozF9xmeA+VgDQL3LpRIEFhlr0ueK07?= =?us-ascii?Q?BEoqT9CDJGBd4GaIMijL4Xt+xqi7v+RrFwamfS6nu6TW9hzi2+ziSTuEbaRM?= =?us-ascii?Q?7n0zlznwlXs/SRkzs3p9FIZ81jef/MUTV9+NhAM5jinBweQNGt0q6rc22/hp?= =?us-ascii?Q?yAyHwq1YaokjMf7szQ8fVm0rBZfG3Mf/z7KUvAOmnzIbCIfIRzbISwmzDY2T?= =?us-ascii?Q?41VA/sRsQhgx7p58pz9BWMG5Efp9gF8CO+M/2ePc9GXXke+UjwpL1jSrhvMY?= =?us-ascii?Q?gIqGjKlC/4ExaSIn+SJZV5hRBjjUng0SVVsyXwauRa/y/YNQCY+/K3kjBQep?= =?us-ascii?Q?Rgu898AXnvO0oUYqM2ZcUxsA+ckdVrlqtacRWlY+YZY1rE3XkZSkbZ/c9djW?= =?us-ascii?Q?8mCy5kE2maxg6fzswr39mjJHJxYhh+d8o+LsNt8/gKN87t+RzjIz4OT9jWDa?= =?us-ascii?Q?FGCCL4uEYgQGkyqhojXGKgmheuXEzOFg1F35VmGCUTA8F+s4RorwhPT5YO2c?= =?us-ascii?Q?BJTkONHXyV5pRgzXUf0J5XDj8vZudHcXro/UWhxuDXWnr4aMJs7BgR9aAlLT?= =?us-ascii?Q?wN9Peud7hIja//Syt21e1+SfZUp7p83OawEGN2AOARB/fOAflmjvv4fg+Ar4?= =?us-ascii?Q?SAXTCr5AV8zFK8AxL5WV4usJBRBNJXYpAD/W/9pvC0vha1T9OnL9TRQzjRqz?= =?us-ascii?Q?8XfpSQ9nNVf9KD8+Kck7M+iio41rFQOhIB5tLWDjEcysWS/X7wsOXAcTREzE?= =?us-ascii?Q?Gy+q/HFyWbgx2rhfRCRLSrsOE+lpOz4EDYqxawagKLlKoC9vxKfBM5ksMZlW?= =?us-ascii?Q?0xO7QxZ57E9DdEysGrbFA2+GmtxTfMHyi1qHRDOQCxlBi4HAd6BA8wIveIRq?= =?us-ascii?Q?yrkXjM3xVjUTH9aqvYDHZp2cyIjTxCN0rYCSTWyw0S/Biwpmkip00HcJJe4h?= =?us-ascii?Q?2XJDnrwUuqqJJDmz5pQEss302cMt9aub2H75MTUSFh7QUw5FwA59xbmryk/2?= =?us-ascii?Q?22Iwlh7BNVd9KpviyuJJrCJHbs4FXZNL1W+ta+JHsu+6w9+1OweKZ6PtSU5e?= =?us-ascii?Q?/RRLreLEOl0GJGreaEIuox0g/Cz1YEGdMwi+96UnnUoDOEx/w6ijMN6zLZb4?= =?us-ascii?Q?vKAOgapiBu8N9kdogGaijisLnLYwGnfuXIwlvqFPFpAjPWrtVRTAm98yrroB?= =?us-ascii?Q?9y7oWl/+pvVSY4VgeIAUNmLvUBrhqzKYycXH6omD2t10GcHKHpZN0Onc5oLe?= =?us-ascii?Q?jYtOyPx0qs80Ji6gfZcwWGxd973vOjFxjRbqoY8tREo7EeitOCb39JJqXi+e?= =?us-ascii?Q?8MOc42XHar3JKo9zvyJnvTH3yzwwCjosZThMVeNUbPrR9r1Jl1cEUE3E802j?= =?us-ascii?Q?d2LhGV47PKY1OwC5ECBt6qAO+it/uJZVR83b941Tz2zQJ4qDnpWv4SqmsSfK?= =?us-ascii?Q?DaF0iI/0ZuSQkyw1fVbC80oFNp2hASGW4Bpz?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:08.3264 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 42e15f66-4bd9-4513-7ce7-08dda7790bad X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E5.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6107 Content-Type: text/plain; charset="utf-8" Sanitize the inputs and report the size of struct arm_vsmmu on success, in arm_smmu_get_viommu_size(). The core will ensure the viommu_type is set to the core vIOMMU object, and pass in the same dev pointer, so arm_vsmmu_init() won't need to repeat the same sanity tests but to simply init the arm_vsmmu struct. The arm_vsmmu_alloc() will be cleaned up once the transition is done. Signed-off-by: Nicolin Chen --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 6 ++ .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 56 +++++++++++++++++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 2 + 3 files changed, 64 insertions(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.h index ea41d790463e..2357459099f4 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -1034,6 +1034,10 @@ struct arm_vsmmu { =20 #if IS_ENABLED(CONFIG_ARM_SMMU_V3_IOMMUFD) void *arm_smmu_hw_info(struct device *dev, u32 *length, u32 *type); +int arm_smmu_get_viommu_size(enum iommu_viommu_type viommu_type, + struct device *dev, size_t *viommu_size); +int arm_vsmmu_init(struct iommufd_viommu *viommu, + struct iommu_domain *parent_domain); struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, struct iommu_domain *parent, struct iommufd_ctx *ictx, @@ -1044,8 +1048,10 @@ void arm_smmu_attach_commit_vmaster(struct arm_smmu_= attach_state *state); void arm_smmu_master_clear_vmaster(struct arm_smmu_master *master); int arm_vmaster_report_event(struct arm_smmu_vmaster *vmaster, u64 *evt); #else +#define arm_smmu_get_viommu_size NULL #define arm_smmu_hw_info NULL #define arm_vsmmu_alloc NULL +#define arm_vsmmu_init NULL =20 static inline int arm_smmu_attach_prepare_vmaster(struct arm_smmu_attach_state *state, diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c b/drivers/= iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c index e4fd8d522af8..482a49f5c10c 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c @@ -382,6 +382,62 @@ static const struct iommufd_viommu_ops arm_vsmmu_ops = =3D { .cache_invalidate =3D arm_vsmmu_cache_invalidate, }; =20 +int arm_smmu_get_viommu_size(enum iommu_viommu_type viommu_type, + struct device *dev, size_t *viommu_size) +{ + struct arm_smmu_master *master =3D dev_iommu_priv_get(dev); + struct arm_smmu_device *smmu =3D master->smmu; + + if (!(smmu->features & ARM_SMMU_FEAT_NESTING)) + return -EOPNOTSUPP; + + /* + * FORCE_SYNC is not set with FEAT_NESTING. Some study of the exact HW + * defect is needed to determine if arm_vsmmu_cache_invalidate() needs + * any change to remove this. + */ + if (WARN_ON(smmu->options & ARM_SMMU_OPT_CMDQ_FORCE_SYNC)) + return -EOPNOTSUPP; + + /* + * Must support some way to prevent the VM from bypassing the cache + * because VFIO currently does not do any cache maintenance. canwbs + * indicates the device is fully coherent and no cache maintenance is + * ever required, even for PCI No-Snoop. S2FWB means the S1 can't make + * things non-coherent using the memattr, but No-Snoop behavior is not + * effected. + */ + if (!arm_smmu_master_canwbs(master) && + !(smmu->features & ARM_SMMU_FEAT_S2FWB)) + return -EOPNOTSUPP; + + if (viommu_type !=3D IOMMU_VIOMMU_TYPE_ARM_SMMUV3) + return -EOPNOTSUPP; + + *viommu_size =3D VIOMMU_STRUCT_SIZE(struct arm_vsmmu, core); + return 0; +} + +int arm_vsmmu_init(struct iommufd_viommu *viommu, + struct iommu_domain *parent_domain) +{ + struct arm_vsmmu *vsmmu =3D container_of(viommu, struct arm_vsmmu, core); + struct arm_smmu_device *smmu =3D + container_of(viommu->iommu_dev, struct arm_smmu_device, iommu); + struct arm_smmu_domain *s2_parent =3D to_smmu_domain(parent_domain); + + if (s2_parent->smmu !=3D smmu) + return -EINVAL; + + vsmmu->smmu =3D smmu; + vsmmu->s2_parent =3D s2_parent; + /* FIXME Move VMID allocation from the S2 domain allocation to here */ + vsmmu->vmid =3D s2_parent->s2_cfg.vmid; + + viommu->ops =3D &arm_vsmmu_ops; + return 0; +} + struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, struct iommu_domain *parent, struct iommufd_ctx *ictx, diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 10cc6dc26b7b..eef1fbd68914 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -3688,6 +3688,8 @@ static struct iommu_ops arm_smmu_ops =3D { .get_resv_regions =3D arm_smmu_get_resv_regions, .page_response =3D arm_smmu_page_response, .def_domain_type =3D arm_smmu_def_domain_type, + .get_viommu_size =3D arm_smmu_get_viommu_size, + .viommu_init =3D arm_vsmmu_init, .viommu_alloc =3D arm_vsmmu_alloc, .user_pasid_table =3D 1, .pgsize_bitmap =3D -1UL, /* Restricted during device attach */ --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2070.outbound.protection.outlook.com [40.107.92.70]) (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 1211921CC49 for ; Mon, 9 Jun 2025 17:14:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489256; cv=fail; b=l2Pd0Ccorn4/xgGuV205GnsXSKMTjehhvFWHyXvKkw8S/mW9pGwhz7LO5wI8JkuN00tX6sqhuXIb5mLsf/smJyq6Gl+tOXiwD3lhH8iOQiD7u7IrSV+fVNGH7IHi83sEhe/BNTEMyiw1+NN3Sihirs0BlZi3McsjqyVDkiCsNpc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489256; c=relaxed/simple; bh=eo1QgRuO2/YrlW1I5+XpnKRARQXInSc+b1bLhAUwUFo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VH8VgmuPT0ZKJnHSj2KY247FBHjO+nA3YC4YMrgtIqzoFlcig6BjF2zPgZ9lgPjaZ8x+oJjTlECNGZfRtKQ+nuWADBDlcHfQNVmn6tR89e3wm2IR1l8cc5HoSccMn9Mp/8162dRmcp226Qi8I59KLFAQgdpKo5Ze0m+mZz9vtaQ= 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=tdkxWLPY; arc=fail smtp.client-ip=40.107.92.70 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="tdkxWLPY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pbhPRpLGGdycJLgz06+YSIWSLbQ7M34ek+d4r1p3gab5WMxTsMuuLEWvqwIKMIrtVDf4AUfXbSvJcISYVr3/l/LMvlzlESJh5/TgECgCfRXyvsJn3hqaXUlDWNpJtnwQoij3AVeDbX+Hwh/27jfhko7+eHut6JE06E7c2zvxJWJx+VW2ExtZVbu4aJCv+Sm4b4gF6yGC6hLn7xfusIEaDQggnndgrLuURZ6T23xxOKq4pb+h0+QyGC5jZa2a9oRuyk/Zw0vzdek/6hhK5789hx1REPgGPmpi1qBDxb0cazuNqSU5ybiKoJ7pFzuUZ2B3RE9B2zzHJZMlh+YIQG3VGg== 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=jDmtOkoBuocf6pbXWlehMbj6TuN/a8lpW5jM+kbPEnc=; b=qXMXQluZrjJr6a8hKeeWkHhQoQrByKikmlbKDLrU/dIY6iqkeDa/l7xgUQ93nR6lA/ucgpELC3UtVNKUyGRiXPFyimtUe/w7iSKCcd1RC11gmUiEuYmRoEHRQqnL85SQoaZGdqkkChJKWG5o2rLmIUAfXxTX2/aFlphsl8sSxV+HdZCos0vXJs+1ncl2bOD1NmLLv9TKRG4/cuc+uZYexzVjvZa30bN9nP3km2VHUAZletMIEem3/k+6o84/XRyX5Xnr+rF8nywaiUJQnP9JSKPMmjYlJt79mGuHsa8erhek2w0Geb92mXGH9EN8268gwWapgi4D1iupUPhdqXGqEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=jDmtOkoBuocf6pbXWlehMbj6TuN/a8lpW5jM+kbPEnc=; b=tdkxWLPYvy2KpnlPwJp2sk/LaC03XfWZpdbSHIVki/OaUHWzrzwQ1qWB2J7b1wNEa8a7J7qRGVeJhm4hvij1ESmjvgPyegDjNF88iIpgsI/slhRrGAh15z/upvsdwG//mebcJfZGMczwvwesNBUgXAF4pibArVD6KtEHABAacrM2rVhBIF4TQ642rDqyzmmnQdgCr9v3sxz3+u5k6Yzi5Y0okG15+jgl//9OyHYFZRRpJCo8g6BYAaPPjDogA8/J8jL842uEAbsyR0uGKOP6Mu+Zm+Ejvl27KbrXtmx4UvBFtg7KOmJja6KFju88aPigGysI9fY5lPZNX33skdvaUg== Received: from MN0P223CA0016.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::29) by CY8PR12MB7099.namprd12.prod.outlook.com (2603:10b6:930:61::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.37; Mon, 9 Jun 2025 17:14:11 +0000 Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com (2603:10b6:208:52b:cafe::53) by MN0P223CA0016.outlook.office365.com (2603:10b6:208:52b::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 17:14:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:10 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:52 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:51 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:50 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 08/12] iommufd/viommu: Replace ops->viommu_alloc with ops->viommu_init Date: Mon, 9 Jun 2025 10:13:31 -0700 Message-ID: <5586990446e4c97827b5a195622ec0f8cf9d2d67.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E5:EE_|CY8PR12MB7099:EE_ X-MS-Office365-Filtering-Correlation-Id: d2d8b841-ab69-4a57-2cb7-08dda7790d23 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|7416014|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?F0bzzZWIz3UULH2Uz+HknO45nXb6/k/4s8w0sL4H+5QSWUwys6r//+FetD9l?= =?us-ascii?Q?ii588eo8GOA445xPeJQWhzu8JV3L6z5OrQ66oXom4gBX38+MqJYRoQ3PEcNB?= =?us-ascii?Q?MvrO7IA5WdkjRK0mujAqL9Fl7z9S7wnDQbma56SSXs+HRsiDU3R22R5L3/UG?= =?us-ascii?Q?JOf1UYQwdYh62+jRgemhYWlArrps2D1a/ABISqhkUAd8iGbqKJ6pfcFsezC5?= =?us-ascii?Q?yzDnHdwSJIn8Sp7uZW/i/wQnv1sQOk3cJV1sX6uqAil4Rtc1VnFhwYiaW+y3?= =?us-ascii?Q?WFfgallvW586hlnbgrW3hE+Ua8PdyKCKLkGravmR8BcYRKkl3wzBEfn0dEL5?= =?us-ascii?Q?ttfL/8NWTDB3R/s4YqovYNFedhubB2mBc++yVoeAmJH0cu2pss5DQEE2vtTt?= =?us-ascii?Q?t3ZX3zV2mvYp4qi4DmqNXoaI1s2V5qvkIFxTY23Je2fCdKYb1WZDLaaLAYC0?= =?us-ascii?Q?vAHvKh5225K1iEfxGyAdZANWow4KGhm06BM9tVKNcIVs8dNKr9b7EiU5WdhU?= =?us-ascii?Q?j1nbe6TzGI3HB+El9TAivS5+5unMdtteO1INnN9Xwwk9uf0BE8/Ji7WKJpF3?= =?us-ascii?Q?LQhZqTiHUicU2YV6jDRrUVhEB9kvyrO4pn1i5n0pjvt6tBrEx8Dpts4KIelm?= =?us-ascii?Q?l2HJOptcJm2zxBnDQlBakgcfnWDUzotkUDVqzSqQ2QK9rEtsnmh/l2t+INTU?= =?us-ascii?Q?5+BMcQXeGKpaDrWjni4GN0yzlH7dgCRIF2MsTFgk9GKLBVsH7+dYCsklSAI7?= =?us-ascii?Q?c9KY8jeLqIsh22lVKPDjW3lg/k8c8JuUZC4gErll6FHH0lN4IYcYjy9uiGVV?= =?us-ascii?Q?jKSM2BWpaZFBSuCADrHMfZMSzKkx+hyV6XI/RO5kGm8pSTWr67RA+PvIzEkF?= =?us-ascii?Q?hgDeqAluQeqVXMm13iEVZzoisizaDCVK3RDMks2LXfZDoo5iSqUcBHLczfTU?= =?us-ascii?Q?+YCJCv9glWf/epjNOEsGVPG57G4JbyDmyM7H8rr8cKvpxkdcAvpHXCEyUzNP?= =?us-ascii?Q?yFob69ZgistL6dOzkHw2u71s5mIWTnJOdsTlhXidnMBzNC1PjhedZoFiekhV?= =?us-ascii?Q?BfuaCCOpDm2UGQeGSXGUMPLjRv2DVr2+D8kfCPfZu6LnFPEZeC9oc4EoV0Qh?= =?us-ascii?Q?8f6FJ3zKQC7v7io7uejSKhPoFdm6nPhyy82LrhypBMtAAj5TZ8EsS1hCMBb3?= =?us-ascii?Q?bjFullMe4fN6yPbbmSTyqYNHoWDQWPydM5A/fvn81i7ejhwECy2/he2HCfdz?= =?us-ascii?Q?gnzVOXxfumGAy2XkT9Fd6gUKEOULSJlLzuY+EItAk12H6oMWTt3cYJxlTiGl?= =?us-ascii?Q?78GN6MyS9hdBJweE0DoVre+ygwdiuznxcaBZ9/2mHI2hTzDi1C+78E937Iwn?= =?us-ascii?Q?IoBnydauJkrDmhMuD5FBTuIRK+hJG5y4blCTafZrAHgsAZYm6CrqmTZ5yCOc?= =?us-ascii?Q?DqhM/CC3AGiu1X/ga4ehxa+rZ9jRb9LoV2QJMo68pYjRrjIi2T3YuxrFc9EV?= =?us-ascii?Q?YcDiwGtP8wD/bMxao3Nfh3SbO/xMilD4RDLc?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:10.7775 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d2d8b841-ab69-4a57-2cb7-08dda7790d23 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E5.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7099 Content-Type: text/plain; charset="utf-8" To ease the for-driver iommufd APIs, get_viommu_size and viommu_init ops are introduced. Now, those existing vIOMMU supported drivers implemented these two ops too. Relace the ops->viommu_alloc call with the two new ones. Note that this will fail a !viommu->ops case from now on, since a vIOMMU is expected to support alloc_domain_nested at least. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/viommu.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c index 01df2b985f02..63a92fb27ef4 100644 --- a/drivers/iommu/iommufd/viommu.c +++ b/drivers/iommu/iommufd/viommu.c @@ -21,6 +21,7 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) struct iommufd_viommu *viommu; struct iommufd_device *idev; const struct iommu_ops *ops; + size_t viommu_size; int rc; =20 if (cmd->flags || cmd->type =3D=3D IOMMU_VIOMMU_TYPE_DEFAULT) @@ -31,11 +32,24 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucm= d) return PTR_ERR(idev); =20 ops =3D dev_iommu_ops(idev->dev); - if (!ops->viommu_alloc) { + if (!ops->get_viommu_size || !ops->viommu_init) { rc =3D -EOPNOTSUPP; goto out_put_idev; } =20 + rc =3D ops->get_viommu_size(cmd->type, idev->dev, &viommu_size); + if (rc) + goto out_put_idev; + + /* + * It is a driver bug for providing a viommu_size smaller than the core + * vIOMMU structure size + */ + if (WARN_ON_ONCE(viommu_size < sizeof(*viommu))) { + rc =3D -EINVAL; + goto out_put_idev; + } + hwpt_paging =3D iommufd_get_hwpt_paging(ucmd, cmd->hwpt_id); if (IS_ERR(hwpt_paging)) { rc =3D PTR_ERR(hwpt_paging); @@ -47,8 +61,8 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) goto out_put_hwpt; } =20 - viommu =3D ops->viommu_alloc(idev->dev, hwpt_paging->common.domain, - ucmd->ictx, cmd->type); + viommu =3D (struct iommufd_viommu *)_iommufd_object_alloc( + ucmd->ictx, viommu_size, IOMMUFD_OBJ_VIOMMU); if (IS_ERR(viommu)) { rc =3D PTR_ERR(viommu); goto out_put_hwpt; @@ -68,6 +82,16 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) */ viommu->iommu_dev =3D __iommu_get_iommu_dev(idev->dev); =20 + rc =3D ops->viommu_init(viommu, hwpt_paging->common.domain); + if (rc) + goto out_abort; + + /* It is a driver bug that viommu->ops isn't filled */ + if (WARN_ON_ONCE(!viommu->ops)) { + rc =3D -EINVAL; + goto out_abort; + } + cmd->out_viommu_id =3D viommu->obj.id; rc =3D iommufd_ucmd_respond(ucmd, sizeof(*cmd)); if (rc) --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2054.outbound.protection.outlook.com [40.107.244.54]) (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 20ED6221282 for ; Mon, 9 Jun 2025 17:14:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489259; cv=fail; b=bJ6IVT9twgA7rt6+mSl0ESJsXp/2GjiJH5zc6uUb1XK4/+4Sre5+kjcnRK6hPvsy2XUybBHv4V3mbidpC3ZUjwDwP0hF3f6/wdfL/IloGduBIHGdoKHYlTTHpGpNoI5jziOVs8M4r7UN0u5KvzW08HUKBKaDUk8FkqmCBaY1Heo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489259; c=relaxed/simple; bh=Jn1YSnDgr/O3wrGdtUL1bWnMbx2v1XoB966y6cvU7oY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fUgOWv5X9JL+a6Vvl7vXpPGJxM6Rj322uDmLrwEGHtPxFmwoNIF99Loasr348z63Qn3Qu5cXapU/Zwma7eofhlK4j9msLUHQ5hEUphCkiS2QwQgvgkNsmz4gOYxVNReUKYMwbbPL4RUZOkGD8GkbbAmTFWsHMDhsDX7PTA2yLVQ= 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=fbjCxGC7; arc=fail smtp.client-ip=40.107.244.54 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="fbjCxGC7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x1LirazFfQXroaRbTLQmI0h2twBsnKwLGTuXcXRLgYSbnxbamY+WkgsYWHJGruaMtypeDCJh2ywISxX3gxHywBXjOTQ0r8B3AqpJHz4sATj7cAXsCEOQrK6+p0zyjNfTKk4M/QIBgwuZ4+sLkpti91TU2a4HlAXSnCotw4dH4IFMAu04X5Xz9hbzER9kK6JyKdBcfyofyrT1YOIIt0vJw4ov0YIIkq15x/LEbkXS6I9UZFsJPDxqC/D5T3c95PHy9wY9fpaGvNOzO5q5qcjfGKpW6uDm2ekyDUhfazOQhQVkL+wqMuIpqrk3793yf5N7OdBejUMTDBR/acJdQUhL2A== 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=c3Qx28sIkR4pw6uQv60v6Qq12/WNmC8TCGzjZNOYm04=; b=U9FBqhkkLuxD+ZjvExWquPKCJiUlMvv0mQ/tP9JBvavo8sH4zQTls64MI7SV8KDigy/AoNX6ldAFc6jI8rVxN9wztVO9mMHBL2p4H9OY0jrr+Lid66k3FUc56upmcO9F/MUdpt+/sGBm+3a2QtBHCnSaIywzY1s7BJDYy7Ul9K9XJpMdgm+PAZ9sg7BWuqYw2cRH8JcSxCtThItPAcf4pQUPka+CG3DHmYCGkj+Oi9ZTBJ8grYMOFOdcuCoklrHrrjfWRensjddySoWiqnzTC+fabqfz6sOAugImYZ4Cm9Rb8VzHZ0+R7Z9DmqQGQrhXD+PBtG7Dh62OTZSsY+uBjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.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=c3Qx28sIkR4pw6uQv60v6Qq12/WNmC8TCGzjZNOYm04=; b=fbjCxGC7lMcP5GyCg2R0qvfX+zYKZwMtVlW3mjnKu1COP/RsrDIedK5/p1VBUUZqMCUC3hn0d+nVUfqMcJmM4yZwrrfQhvmtLlNEacyXVxe15OKC2uZL602CVk4M+IqyYUDrlsTdbmyZWR9DiQy0bvDa4xo1zNQQRWFB/hWOqNvkZP/udN+wdaCtYdSCoow7BNT45E+qbdDrE+95GXFsOOjw/L3W9JTzTySyz/8R+LnpFJdW/UZLbmjTvTh7yaeFJuuwD2dY8PYMTAkRvwK9e/4WWDzbThwhe15Mk4kf50gDyuKZsOv2xBLeFmx8P2B8rKz2vPRrmLa247L2+D8IsQ== Received: from BN9PR03CA0285.namprd03.prod.outlook.com (2603:10b6:408:f5::20) by CY8PR12MB7538.namprd12.prod.outlook.com (2603:10b6:930:95::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Mon, 9 Jun 2025 17:14:11 +0000 Received: from BL02EPF0001A100.namprd03.prod.outlook.com (2603:10b6:408:f5:cafe::3e) by BN9PR03CA0285.outlook.office365.com (2603:10b6:408:f5::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.23 via Frontend Transport; Mon, 9 Jun 2025 17:14:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A100.mail.protection.outlook.com (10.167.242.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:10 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:53 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:53 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:52 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 09/12] iommu: Deprecate viommu_alloc op Date: Mon, 9 Jun 2025 10:13:32 -0700 Message-ID: <7f5ee636500d42895915334f7215c06170db81d4.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A100:EE_|CY8PR12MB7538:EE_ X-MS-Office365-Filtering-Correlation-Id: 7cb6a847-d9a3-42c6-a7ff-08dda7790d1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9lVaRVorLPkOTTuytGwi1rUEF38ysCvfypFDgSwzwmuxJa8LX5taFNY5NnrL?= =?us-ascii?Q?cYlqn7zhf76/UXHRbeLb9nzXAAhlmh09+XWx0uKYSM4k0Y2egT29YVYh28qv?= =?us-ascii?Q?mvD0lDvomT2no3zrG+Nb23+9ByV3gLOMCb+MdH1VMQzwq2uCTEwpDpw20cJh?= =?us-ascii?Q?lSK/+JAjy3juku8J6QdVpJSqOc7CywOFye6dF1t8oXvSZ32SY7pnE0Ik1rXr?= =?us-ascii?Q?Gr4DLsR1f7so8HTWICaqoGgpfU+GmGR2ywB2r8qepIGzeWs/HKpAmMXJD3mQ?= =?us-ascii?Q?e73ijJjPtADSIXOdmq9IB3TMXj68fWSXlA+rmOwLvWJqkuDP7Zbm/mEnXOiH?= =?us-ascii?Q?8yor8CkwV6NI4R1D/EM5rXz/nC3gKReacTaIdbWYi4e3WpUk00N1PR0ivutr?= =?us-ascii?Q?VM8Ml2rEHqiEAxn9SmWI36NH7bHDlKBMBzQUW0GhsQ9yO0Q0tCH/wjVNUDpx?= =?us-ascii?Q?uVQLVZwbc0bdIO47vGwk6H06HWZgCbG1hMEuJzBF4YQ+EgL+J3hQ88iZ8Fhf?= =?us-ascii?Q?V7Uu0Wir6/HSVIUutuVu/ULDckN2paCtd61es4c6jH47JGTWt3PCWNgBa/pX?= =?us-ascii?Q?HK63giy7A5ioVrenOsDOR/n5QxzelV2BvDAy0+xqXP+rul7UvUoBg6QmEKEE?= =?us-ascii?Q?40c9dvP1X/62tZHGafoZoI14UHVAg3SldEhad0HjIges62aoUu0oegiKesRK?= =?us-ascii?Q?JIlynXCyPGIJlliJu79/t/mBzrHI8ZBdGVl5Y+iUUWqvv95XrTacEhIvZ8cL?= =?us-ascii?Q?jDgVUNjtG3Bm3ZrJBMYC0j07OoUUaBZ65lJ8MLz6v8AdiU29XXeFEqMqxLBm?= =?us-ascii?Q?h+C/0PVjwwoUEfzW8+qStDHicEMEgGLKBpbP61o2Z/pGp/xUvA6ticmQzheg?= =?us-ascii?Q?Zg4ZYCoQMWILZ0COTy2YTGjccxIrAjw+Evbp7bQMX40yzD5KUej4Hac2nLUX?= =?us-ascii?Q?SoCvsgMEtiu4nlIqdnEB4T7cb/vNwWRkz/NX7QxItnVBaZ1P4IrTqbi6UkvY?= =?us-ascii?Q?0TRBNADTc7ObAvdwmd0LLQt8QZIzyvCMHKGWPza+8N6Bqnj9kQMGUn7fld8z?= =?us-ascii?Q?1BziSv/eMa2ZnOm/5/+WiFlLmk2h8LzfoNKdwi1SCTL/tF/UHKQyD5iA8Vjz?= =?us-ascii?Q?nH123DLE0agdlZeyOKMa5KWNtVm1i4juFbsSMLCSY/MHu/NfLOz5uGJY21W1?= =?us-ascii?Q?noHpFcciAL7A65VuUXFxKPYqA+Jdso183O640N0j8i9mbt60uyGZ4LcsHrLp?= =?us-ascii?Q?h2xdUecS6IvUwTOqhRx7SL99tzPHRzOFrcoYLwJqPwfxpsJkYIusc9lHQsMe?= =?us-ascii?Q?nt8AwLQrBYuMBbZ/zSfyzRpI3iRrRx6Fr4H30o83P4BJBKHdsW73YaGYQWRt?= =?us-ascii?Q?TNhAK9mq2rFsshG1ffu4rZQUsk/VoUST33vwKg+qh6GfSeEmQlh11hr3d2B9?= =?us-ascii?Q?00DKouVJHSYM4BDlyop8Ud75A2yIWS0SemQeI1fk3yQFkr9Ms73Xu7PKbhUO?= =?us-ascii?Q?1Y+4huoqBno1etBDp/5iWiBj0bgQJ92afY0q?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:10.7439 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7cb6a847-d9a3-42c6-a7ff-08dda7790d1d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A100.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7538 Content-Type: text/plain; charset="utf-8" Now, iommufd uses the get_viommu_size and viommu_init ops instead. Remove the iommu_alloc op and all the drivers implementaitons. Signed-off-by: Nicolin Chen Reviewed-by: Kevin Tian --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 5 -- include/linux/iommu.h | 11 ---- include/linux/iommufd.h | 18 ------- .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 53 ------------------- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 - drivers/iommu/iommufd/selftest.c | 22 -------- 6 files changed, 110 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.h index 2357459099f4..3f5e3db7ae1c 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -1038,10 +1038,6 @@ int arm_smmu_get_viommu_size(enum iommu_viommu_type = viommu_type, struct device *dev, size_t *viommu_size); int arm_vsmmu_init(struct iommufd_viommu *viommu, struct iommu_domain *parent_domain); -struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, - struct iommu_domain *parent, - struct iommufd_ctx *ictx, - unsigned int viommu_type); int arm_smmu_attach_prepare_vmaster(struct arm_smmu_attach_state *state, struct arm_smmu_nested_domain *nested_domain); void arm_smmu_attach_commit_vmaster(struct arm_smmu_attach_state *state); @@ -1050,7 +1046,6 @@ int arm_vmaster_report_event(struct arm_smmu_vmaster = *vmaster, u64 *evt); #else #define arm_smmu_get_viommu_size NULL #define arm_smmu_hw_info NULL -#define arm_vsmmu_alloc NULL #define arm_vsmmu_init NULL =20 static inline int diff --git a/include/linux/iommu.h b/include/linux/iommu.h index e42a28971182..6389bb1915dc 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -607,14 +607,6 @@ iommu_copy_struct_from_full_user_array(void *kdst, siz= e_t kdst_entry_size, * resources shared/passed to user space IOMMU instance. Ass= ociate * it with a nesting @parent_domain. It is required for driv= er to * set @viommu->ops pointing to its own viommu_ops - * @viommu_alloc: Allocate an iommufd_viommu on a physical IOMMU instance = behind - * the @dev, as the set of virtualization resources shared/= passed - * to user space IOMMU instance. And associate it with a ne= sting - * @parent_domain. The @viommu_type must be defined in the = header - * include/uapi/linux/iommufd.h - * It is required to call iommufd_viommu_alloc() helper for - * a bundled allocation of the core and the driver structur= es, - * using the given @ictx pointer. * @pgsize_bitmap: bitmap of all possible supported page sizes * @owner: Driver module providing these ops * @identity_domain: An always available, always attachable identity @@ -669,9 +661,6 @@ struct iommu_ops { struct device *dev, size_t *viommu_size); int (*viommu_init)(struct iommufd_viommu *viommu, struct iommu_domain *parent_domain); - struct iommufd_viommu *(*viommu_alloc)( - struct device *dev, struct iommu_domain *parent_domain, - struct iommufd_ctx *ictx, unsigned int viommu_type); =20 const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h index 423e08963d90..bf41b242b9f6 100644 --- a/include/linux/iommufd.h +++ b/include/linux/iommufd.h @@ -234,22 +234,4 @@ static inline int iommufd_viommu_report_event(struct i= ommufd_viommu *viommu, BUILD_BUG_ON_ZERO(offsetof(drv_struct, member)) + \ BUILD_BUG_ON_ZERO(!__same_type(struct iommufd_viommu, \ ((drv_struct *)NULL)->member))) - -/* - * Helpers for IOMMU driver to allocate driver structures that will be fre= ed by - * the iommufd core. The free op will be called prior to freeing the memor= y. - */ -#define iommufd_viommu_alloc(ictx, drv_struct, member, viommu_ops) = \ - ({ \ - drv_struct *ret; \ - \ - static_assert(__same_type(struct iommufd_viommu, \ - ((drv_struct *)NULL)->member)); \ - static_assert(offsetof(drv_struct, member.obj) =3D=3D 0); \ - ret =3D (drv_struct *)_iommufd_object_alloc( \ - ictx, sizeof(drv_struct), IOMMUFD_OBJ_VIOMMU); \ - if (!IS_ERR(ret)) \ - ret->member.ops =3D viommu_ops; \ - ret; \ - }) #endif diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c b/drivers/= iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c index 482a49f5c10c..2f79e9a58a5d 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c @@ -438,59 +438,6 @@ int arm_vsmmu_init(struct iommufd_viommu *viommu, return 0; } =20 -struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, - struct iommu_domain *parent, - struct iommufd_ctx *ictx, - unsigned int viommu_type) -{ - struct arm_smmu_device *smmu =3D - iommu_get_iommu_dev(dev, struct arm_smmu_device, iommu); - struct arm_smmu_master *master =3D dev_iommu_priv_get(dev); - struct arm_smmu_domain *s2_parent =3D to_smmu_domain(parent); - struct arm_vsmmu *vsmmu; - - if (viommu_type !=3D IOMMU_VIOMMU_TYPE_ARM_SMMUV3) - return ERR_PTR(-EOPNOTSUPP); - - if (!(smmu->features & ARM_SMMU_FEAT_NESTING)) - return ERR_PTR(-EOPNOTSUPP); - - if (s2_parent->smmu !=3D master->smmu) - return ERR_PTR(-EINVAL); - - /* - * FORCE_SYNC is not set with FEAT_NESTING. Some study of the exact HW - * defect is needed to determine if arm_vsmmu_cache_invalidate() needs - * any change to remove this. - */ - if (WARN_ON(smmu->options & ARM_SMMU_OPT_CMDQ_FORCE_SYNC)) - return ERR_PTR(-EOPNOTSUPP); - - /* - * Must support some way to prevent the VM from bypassing the cache - * because VFIO currently does not do any cache maintenance. canwbs - * indicates the device is fully coherent and no cache maintenance is - * ever required, even for PCI No-Snoop. S2FWB means the S1 can't make - * things non-coherent using the memattr, but No-Snoop behavior is not - * effected. - */ - if (!arm_smmu_master_canwbs(master) && - !(smmu->features & ARM_SMMU_FEAT_S2FWB)) - return ERR_PTR(-EOPNOTSUPP); - - vsmmu =3D iommufd_viommu_alloc(ictx, struct arm_vsmmu, core, - &arm_vsmmu_ops); - if (IS_ERR(vsmmu)) - return ERR_CAST(vsmmu); - - vsmmu->smmu =3D smmu; - vsmmu->s2_parent =3D s2_parent; - /* FIXME Move VMID allocation from the S2 domain allocation to here */ - vsmmu->vmid =3D s2_parent->s2_cfg.vmid; - - return &vsmmu->core; -} - int arm_vmaster_report_event(struct arm_smmu_vmaster *vmaster, u64 *evt) { struct iommu_vevent_arm_smmuv3 vevt; diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index eef1fbd68914..181d07bc1a9d 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -3690,7 +3690,6 @@ static struct iommu_ops arm_smmu_ops =3D { .def_domain_type =3D arm_smmu_def_domain_type, .get_viommu_size =3D arm_smmu_get_viommu_size, .viommu_init =3D arm_vsmmu_init, - .viommu_alloc =3D arm_vsmmu_alloc, .user_pasid_table =3D 1, .pgsize_bitmap =3D -1UL, /* Restricted during device attach */ .owner =3D THIS_MODULE, diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selft= est.c index b0de205a2303..2f072f1b1dad 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -795,27 +795,6 @@ static int mock_viommu_init(struct iommufd_viommu *vio= mmu, return 0; } =20 -static struct iommufd_viommu *mock_viommu_alloc(struct device *dev, - struct iommu_domain *domain, - struct iommufd_ctx *ictx, - unsigned int viommu_type) -{ - struct mock_iommu_device *mock_iommu =3D - iommu_get_iommu_dev(dev, struct mock_iommu_device, iommu_dev); - struct mock_viommu *mock_viommu; - - if (viommu_type !=3D IOMMU_VIOMMU_TYPE_SELFTEST) - return ERR_PTR(-EOPNOTSUPP); - - mock_viommu =3D iommufd_viommu_alloc(ictx, struct mock_viommu, core, - &mock_viommu_ops); - if (IS_ERR(mock_viommu)) - return ERR_CAST(mock_viommu); - - refcount_inc(&mock_iommu->users); - return &mock_viommu->core; -} - static const struct iommu_ops mock_ops =3D { /* * IOMMU_DOMAIN_BLOCKED cannot be returned from def_domain_type() @@ -835,7 +814,6 @@ static const struct iommu_ops mock_ops =3D { .user_pasid_table =3D true, .get_viommu_size =3D mock_get_viommu_size, .viommu_init =3D mock_viommu_init, - .viommu_alloc =3D mock_viommu_alloc, .default_domain_ops =3D &(struct iommu_domain_ops){ .free =3D mock_domain_free, --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2041.outbound.protection.outlook.com [40.107.244.41]) (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 B00C22206A7 for ; Mon, 9 Jun 2025 17:14:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489257; cv=fail; b=AawH7lGgDJALP0t7tPulauYllf74go9KrPkgfx3dWUoV2n/An8zkhrMmJ0fB/vqmtCTPqC6G3sy2CA7ByegXO/wfbB+zczH/of5mgDP8DrERv5R/J8EZ/oAZf1ojFQ0RoXk1KB+SLipoOyeXxB+Uc3l0YNaAVi5e0buprEusm6U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489257; c=relaxed/simple; bh=dwJNu2t7naZrvE/2Bg4d0FRfShHBCzg05lXimGJVegw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=h9trCjhB6OAXMEbjsFgDqz1igUi37x6RZQyDau3HVSd1jvOMX78E8n+Dgr6BnmJ6ccayfxM1+jUvB47ZvWLpaC6kWrIs9baLefi/Ig0N5IjKWPD7S0wsErU1SFcWEqNhFEaDV5oATfX08nni5LuUPu+H4O/vZBWzWzDzEPZrq7s= 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=ifzZyVKy; arc=fail smtp.client-ip=40.107.244.41 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="ifzZyVKy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JsEQca22pKtBSLLgafKbWlH1Ih8cDFbXNouOtihjxjrOSirPrCg96CfM2xsj5n75HIyagfwk60ia2LzJLAqDwh73Xf5BBeZBHLD+5wqUmd918VUtwTpma0FP4SvxjOysUSSTiQnrBepqgv7eYoIGMLuN3X5+vwLgzCPgbS7sZdvKW4NcJ1QSqoWJbBajiDgv0300sQuAbc0Ugmji1/Rc7ryn9JNPeUDgV1wokAZZfaWbSmi68bO8iH8VSZqy1FNRh/ltjVK4LooTJ5wvsL/LnC7Xi4nhdeu+vOg0ez2wcOdLx2VOEcEXzgtm0yBf9P0k26Q/y4fMZR4VzX95BdwBDQ== 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=pAL8AaEJ0GJpOH+cgDTYfIh+xNzJg9zQTvB2xAjVpJU=; b=rpApaNI7/UPlC4RFVl7cI+x2O4g6vDiwos72Rb201NslHV2T6qE01wxteSoqVBQbTlAKRxsIpp0qnJ4PCr19TO+NxyyGNmhfkQAD7po/vnLnaqZOVybYmqg7pPvZAm2T4ym6YYN3GRKvrkWZFbJXBbC7wbsM1i4QKJQeiJKUUqzKRXk0RqL+sWwrOHrGbdcD4ZvBuSGpPH9xBn+zAWWXtpvPtaKRVMthZHndNjYGOwNZvuMU8PoHByQ9NQcX3inJ8Bn0Xty9fT5/7B6Fymr54HFE5F5wcdOlq2cx/FWcTcauN2iuF+L+t//R4MOUMf7id7pMpNsCer+cHpP5EZm8Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=pAL8AaEJ0GJpOH+cgDTYfIh+xNzJg9zQTvB2xAjVpJU=; b=ifzZyVKy+zG0ypy0lOxEuK1gy9y0hFn+Gf4Eq6TlnHy/0Jfoq96LrvO4xprOgSEkA5sW6KlBVcYJ2n18l4WOhmv7IxqH2+5eJhOH179eHoOETrlbNAmEUAs0/bqsuIRN3b4/B0rHz2xnIZXBq7Mko12m6wx9sxrrCsuY4xyLHSrlL6QSAV6DBXrHBMiWOaNfalEnfI+JoGBnSRM4xfQV8vwcuCIailgHZ308VeHpzU2neBrbSfZgGSQ7X80rVMBjl08ZF+MFSy0X4rdnlOcvuLtqtRafY0SCZMXKyDxxVIMoP75vCFsmLKJwKptQBvr17mW8CYrxj3G194D6lX4JgA== Received: from BN9PR03CA0046.namprd03.prod.outlook.com (2603:10b6:408:fb::21) by SA5PPF916D632A9.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Mon, 9 Jun 2025 17:14:12 +0000 Received: from MN1PEPF0000F0E3.namprd04.prod.outlook.com (2603:10b6:408:fb:cafe::db) by BN9PR03CA0046.outlook.office365.com (2603:10b6:408:fb::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 17:14:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E3.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:11 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:55 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:54 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:53 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 10/12] iommufd: Move _iommufd_object_alloc out of driver.c Date: Mon, 9 Jun 2025 10:13:33 -0700 Message-ID: <2ebd4bcbd404039d4faaf840dc52d7c44f672016.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E3:EE_|SA5PPF916D632A9:EE_ X-MS-Office365-Filtering-Correlation-Id: 4fb0139e-3d41-431e-e761-08dda7790ddc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?AihVs6nUwYvVREBI/tWvC8JsTn3fIWa373BucUJut84Dzxwd3f42xc+Wp/T4?= =?us-ascii?Q?cbzo1zTp3tunGTtU7frO7wWWJEjGoA6w+frW3EA2Peh+79wPSRbek0+aIb7K?= =?us-ascii?Q?OjWu+07jPvo7I769s4xTxYCzKuAftvYf0zW7f/Asopq5/PaZkCIxTLMS1wWn?= =?us-ascii?Q?QLzMDprOwotr/MPjgTi9xaUZkIsm/fWt07ORO7VL4w/eoez5CdkNhVACGiJq?= =?us-ascii?Q?zm0+YLWcaYHw2oMibXm+DkZDU0bsfI7WlHlSic55LyZMxymYF/5bCKsgSNsE?= =?us-ascii?Q?QZ0BKIXjyecj2q4g/PmBLiWGFD7Hyk4IMGgoAOx8PutGXK/XN+4X/m2La4LJ?= =?us-ascii?Q?Wo982BMH+J9xIiiArKd3e+zENLH+Lad86y/ipmKXTHC8stI/l83bWA01NO3P?= =?us-ascii?Q?3L1H2+wxwfh4skd++M4k3HKs/syRnMfDC4D8qC8lzR+dS5pIjhaRd+GWQ19V?= =?us-ascii?Q?n7buf7VPQnL45/ITt231+3RmJtg6TM/vLLPgZiOy4D5iVRLmkXDt3pPbe+NR?= =?us-ascii?Q?9irSSxrHv1F/pC/2T5jFx0Q04whFP+jN25A2zZ02SWyg7xeyy7MTv3xGrZZs?= =?us-ascii?Q?PqN90FgvTwTBwlYxa7vREAVkQNqhYePOzhMlZf1n/ZYgfV6fkrCj0WwBZkBe?= =?us-ascii?Q?g+Iz8l/cVfVrYWBqts/mOXWUOyuCHZKxv4B9plG98TQo7ShL916aJcaNqGKs?= =?us-ascii?Q?vXy4I4DK9brqeibmvmhD50xsCaeXdVotuWxFCRd5c3Fpw1ong4mui5XIoYtX?= =?us-ascii?Q?xuBZA38/gi2lwKc48xrGwREznTOjgPnqLiWOLC8z1nyMJ3/6eWBZEkkMkTsw?= =?us-ascii?Q?oUPvdZDfOjgcOlPEihA7sn+LZGFRml/tRTMGqXVARhLKpUuZaMEU0I6yl+S0?= =?us-ascii?Q?gtyHjcB2QQHyKVbpCDsu2wTsU0WC+0kf5UnOXdMPt47mOs9+R/wMcXZGdUjv?= =?us-ascii?Q?74qsSTVW2XbAQbrQIdL8s9TGwPtXaTgkQMA/l5OFXe2ANYt+XElyB1d6yy9J?= =?us-ascii?Q?esymDwRevdRCOCHaiTclunrArOXZGyDmgpUB4zWbSd6ZhQnFhAe269m0HQM0?= =?us-ascii?Q?wP4SUjFQbe/uEuQtDAEh4SA3oJaTyErn24YATGWxEyzAzvvu0nFyWzjYR3Sr?= =?us-ascii?Q?15PcbXD4ATo/Q8rXZET3Of8FCb3WYYtuHF0KQFawAjcmlN7enuxNd2s5pmt2?= =?us-ascii?Q?EV0FJWYKf41SlK6HUuUOi6evvyBDa7RXe40Vi+JiXfARQwKsW25TjMAJfJK9?= =?us-ascii?Q?N4plpMiwGvmfB7os9Pao317b5zgtc7I3/wliiSdw4dQ+kSD6gvH9MeeJBBjy?= =?us-ascii?Q?36HAkc7e22FSkqQ8Hq/KMGA0gjPLFYIfjYyNVIboXf/Fa93Uw6fzYat/7g2h?= =?us-ascii?Q?LkvDR3IT0Nf6dCPVj//v3RopVpY8DTft4ZNU4mhQSWHXgjdZbJVgE95zLpkK?= =?us-ascii?Q?PXceqQAL4Ju0XZ2BgQq94hyyIsEWL+r6FgHOewCTqcXUdnD5qXyTnHvzLp7y?= =?us-ascii?Q?ytiS/3QrUGKscsRNUY+y/LEtt72mMpJBStTU?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:11.9983 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4fb0139e-3d41-431e-e761-08dda7790ddc X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF916D632A9 Content-Type: text/plain; charset="utf-8" Now, all driver structures will be allocated by the core, i.e. no longer a need of driver calling _iommufd_object_alloc. Thus, move it back. Before: text data bss dec hex filename 3024 180 0 3204 c84 drivers/iommu/iommufd/driver.o 9074 610 64 9748 2614 drivers/iommu/iommufd/main.o After: text data bss dec hex filename 2665 164 0 2829 b0d drivers/iommu/iommufd/driver.o 9410 618 64 10092 276c drivers/iommu/iommufd/main.o Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/iommufd_private.h | 4 +++ include/linux/iommufd.h | 10 -------- drivers/iommu/iommufd/driver.c | 33 ------------------------- drivers/iommu/iommufd/main.c | 32 ++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 43 deletions(-) diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index 32f0631368e1..ec5b499d139c 100644 --- a/drivers/iommu/iommufd/iommufd_private.h +++ b/drivers/iommu/iommufd/iommufd_private.h @@ -230,6 +230,10 @@ iommufd_object_put_and_try_destroy(struct iommufd_ctx = *ictx, iommufd_object_remove(ictx, obj, obj->id, 0); } =20 +struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, + size_t size, + enum iommufd_object_type type); + #define __iommufd_object_alloc(ictx, ptr, type, obj) = \ container_of(_iommufd_object_alloc( \ ictx, \ diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h index bf41b242b9f6..2d1bf2f97ee3 100644 --- a/include/linux/iommufd.h +++ b/include/linux/iommufd.h @@ -190,9 +190,6 @@ static inline int iommufd_vfio_compat_set_no_iommu(stru= ct iommufd_ctx *ictx) #endif /* CONFIG_IOMMUFD */ =20 #if IS_ENABLED(CONFIG_IOMMUFD_DRIVER_CORE) -struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, - size_t size, - enum iommufd_object_type type); struct device *iommufd_viommu_find_dev(struct iommufd_viommu *viommu, unsigned long vdev_id); int iommufd_viommu_get_vdev_id(struct iommufd_viommu *viommu, @@ -201,13 +198,6 @@ int iommufd_viommu_report_event(struct iommufd_viommu = *viommu, enum iommu_veventq_type type, void *event_data, size_t data_len); #else /* !CONFIG_IOMMUFD_DRIVER_CORE */ -static inline struct iommufd_object * -_iommufd_object_alloc(struct iommufd_ctx *ictx, size_t size, - enum iommufd_object_type type) -{ - return ERR_PTR(-EOPNOTSUPP); -} - static inline struct device * iommufd_viommu_find_dev(struct iommufd_viommu *viommu, unsigned long vdev_= id) { diff --git a/drivers/iommu/iommufd/driver.c b/drivers/iommu/iommufd/driver.c index 922cd1fe7ec2..2fee399a148e 100644 --- a/drivers/iommu/iommufd/driver.c +++ b/drivers/iommu/iommufd/driver.c @@ -3,39 +3,6 @@ */ #include "iommufd_private.h" =20 -struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, - size_t size, - enum iommufd_object_type type) -{ - struct iommufd_object *obj; - int rc; - - obj =3D kzalloc(size, GFP_KERNEL_ACCOUNT); - if (!obj) - return ERR_PTR(-ENOMEM); - obj->type =3D type; - /* Starts out bias'd by 1 until it is removed from the xarray */ - refcount_set(&obj->shortterm_users, 1); - refcount_set(&obj->users, 1); - - /* - * Reserve an ID in the xarray but do not publish the pointer yet since - * the caller hasn't initialized it yet. Once the pointer is published - * in the xarray and visible to other threads we can't reliably destroy - * it anymore, so the caller must complete all errorable operations - * before calling iommufd_object_finalize(). - */ - rc =3D xa_alloc(&ictx->objects, &obj->id, XA_ZERO_ENTRY, xa_limit_31b, - GFP_KERNEL_ACCOUNT); - if (rc) - goto out_free; - return obj; -out_free: - kfree(obj); - return ERR_PTR(rc); -} -EXPORT_SYMBOL_NS_GPL(_iommufd_object_alloc, "IOMMUFD"); - /* Caller should xa_lock(&viommu->vdevs) to protect the return value */ struct device *iommufd_viommu_find_dev(struct iommufd_viommu *viommu, unsigned long vdev_id) diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c index 347c56ef44d8..85ad2853da0b 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -29,6 +29,38 @@ struct iommufd_object_ops { static const struct iommufd_object_ops iommufd_object_ops[]; static struct miscdevice vfio_misc_dev; =20 +struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, + size_t size, + enum iommufd_object_type type) +{ + struct iommufd_object *obj; + int rc; + + obj =3D kzalloc(size, GFP_KERNEL_ACCOUNT); + if (!obj) + return ERR_PTR(-ENOMEM); + obj->type =3D type; + /* Starts out bias'd by 1 until it is removed from the xarray */ + refcount_set(&obj->shortterm_users, 1); + refcount_set(&obj->users, 1); + + /* + * Reserve an ID in the xarray but do not publish the pointer yet since + * the caller hasn't initialized it yet. Once the pointer is published + * in the xarray and visible to other threads we can't reliably destroy + * it anymore, so the caller must complete all errorable operations + * before calling iommufd_object_finalize(). + */ + rc =3D xa_alloc(&ictx->objects, &obj->id, XA_ZERO_ENTRY, xa_limit_31b, + GFP_KERNEL_ACCOUNT); + if (rc) + goto out_free; + return obj; +out_free: + kfree(obj); + return ERR_PTR(rc); +} + /* * Allow concurrent access to the object. * --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2086.outbound.protection.outlook.com [40.107.220.86]) (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 AE1DD221290 for ; Mon, 9 Jun 2025 17:14:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489259; cv=fail; b=NQ27FeEK7PBJqtrMXoCnnshOsD44VaSDRXn2KhhEmDFBxyexoiZXX4b1AnAJ7iSYQxs5oj4FC/olaZ8TYOVkMLPmvYNM+uyWBHZ8OVofOlMPgKMdhDbZEpcc8yz0VKn/81X4ELFhKCKkDxCwIb71qtDelBC6flpAz7eYvDlU2Gw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489259; c=relaxed/simple; bh=0qTQi+H3LnrGJrHBO0Ge/InjGzDgTRHpYfn3Xt1I3N4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uQFisIttrkHlTlIIwDT7n29TjQ+yZk8aDxDwWUoNB3joXH+U+yWlAMsHrLV8QRMmUMBFsTMdWeYBNSAzKYIyoE1KjAuwTIbSQqCSm8UXrFVpHK8EiVMaaSuSzlC5NLZscrangDxv2/G0vW81GtdmzmkHBOlGTI2BhHukuQWjgCo= 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=oJst+j1a; arc=fail smtp.client-ip=40.107.220.86 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="oJst+j1a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PxmQtlF0rzVsnzGg24RyZAD2i16P9qmWjXGzHiZWrUlqg+ncuqIAtVVRa0kEZbpSn+7itQNdE8F3bjNmriRP9fD0UlL3/zYmp0C8/hM/WTEafg6lM+w1BrFR1LmErAnzIKp9vH18TdaOD5Fe4MUK2geNYqGRQpyI6hVyeOw3XKTDAwXHBEOPql2psBup8oBkqLg3nVfMvHwlovfHvYrRl+NCsp5VH4pnJSkW8W6MOr1ztHsxSokZw1scoArZLLk2Rscn7P37RHFh7Pzr09nn87gAKwhvfFwnSEPZUCMAFTE4J64gKGaF1bkhfnVTI6h2pLDvm6VIJ+kms/DZp3+rkA== 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=LtWOAdzC2XfXZhbaW9ZHcILQDIedsIfd91BDF5xlkFI=; b=k1ObgIzRGGQQBrE6uTJFdWV+5TxIFPDXmKDsPwM0RdbfJQdmA87ZsnT6xFPByxQ02KM3Fgdapsnj6TYPAfPIUZsFIaWdsGDkBj3UBy7lpWBfkg442hitrptmpdHb1wgpGqOmQPQ6PwLAc/TmJzjKnbZXCuBQhg3R+zOalCl81ccEMY0HxyKH4HaJ9LKyEbMWsrkghyF6Ylq5ehQdg4ACsnf7s39e6Uoi4YYRP7V2MMfGyQ/NK8ylqw0XrnwnSKjlVJtJBa4IkklNWp6GIdNVwu6aSHZ7wQD6VmHAi0iOi+MJuznibBdhr/SxFUisTSFJYOjZVKJbqkEdzTcOTu4Wfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=intel.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=LtWOAdzC2XfXZhbaW9ZHcILQDIedsIfd91BDF5xlkFI=; b=oJst+j1acrEsoGNy2dJLKsvlKbmnyMwvEVTGlqwOA83Z4IZH7Zt8Alx4rJzd/ta/Y/7XNXTDHr/CDNNA+uxbZR/gMtgzLiUEqifRxFn/zxoqxWmy7/5ccY3MTuiMmMLMQ0eCt23EXJdwQ7EXzunU3daqJ4jBJDC+JdHJpTsR+gevsJJucp8AjAupl3YEhD18cRmDC90if6PG+BYd3wVuq19dARwjQ1Ndb9+n3tDqeWem+ndbG2JPJtwXn2RXVs+73tQ2LoCyg20/gMZE2xU38ybhFajvRSaUofm+t14Pay+6YNcW5NTU2wDV4ZawJgFvnJ4JeIcw8NxK39ytFM1kog== Received: from MN0P223CA0016.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::29) by DS7PR12MB9501.namprd12.prod.outlook.com (2603:10b6:8:250::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.40; Mon, 9 Jun 2025 17:14:15 +0000 Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com (2603:10b6:208:52b:cafe::8e) by MN0P223CA0016.outlook.office365.com (2603:10b6:208:52b::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Mon, 9 Jun 2025 17:14:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:15 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:56 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:56 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:55 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 11/12] iommufd: Introduce iommufd_object_alloc_ucmd helper Date: Mon, 9 Jun 2025 10:13:34 -0700 Message-ID: <52edfd3e74c264f0f7b1f706d29e9edcb705e2db.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E5:EE_|DS7PR12MB9501:EE_ X-MS-Office365-Filtering-Correlation-Id: 4907953f-2e59-433a-621e-08dda7790fb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Kd7L9krkFZXShZDhUE9DkIU7Fa9XMRz2rgKAzm5dwJezcmVC9FOo3XX0+eYc?= =?us-ascii?Q?TSp/pxsXlTsYvUtdSbXJSV4lVY5Cgh6/OlN3pQDxJfhyL5Qzci7QlhG4FKR3?= =?us-ascii?Q?ubHlooUfT+RAGcZpsFxCTzFDx+DZLGDbaTuJwMJaS9UgTTO3sYAhluOm6n2t?= =?us-ascii?Q?4VprdfZAWQ3Z/VRDkr8cTwV0WAqSot05/M7nMXHqmiF7WP05eC+/wBUnfEGN?= =?us-ascii?Q?BzgIWG8Ks+RhaDA+3XZj6D0md9+CLUHpZost70KHvrsnPMQFLeY9JsnQcWSD?= =?us-ascii?Q?x2giNFXGQloh5W4hrXtLF3wsp4jhGVwrJc5HHMRcoQUbJLHbV+5XVv198B3O?= =?us-ascii?Q?TPy32I9oltLZMuUWP76tdv1bDGqWcYSesP0L2NW3+4dY2t8LCZwPwvTWVMrQ?= =?us-ascii?Q?/xDYeQ4pb2iVBPIbYzUhQaBh+lmgwJ/h99sCB068eZCP9D7JN9aj+Kpo5l24?= =?us-ascii?Q?XmUsvIWxZLh+tYR+ibwmXSiD1vIXVf7OvJvsUvZC5tanTVD2GqN5kxqnB6cN?= =?us-ascii?Q?KYttrEitRGOqtKnTc0WGHZwOAsDOwKNuyXZPbCXlOVWpBJWw3TRw6pdxiSCr?= =?us-ascii?Q?A3Pt4csEwZjw09+giqf/yre1QFfHdvHRtC5nJSNLDwWtg+Id671VW8qtbG58?= =?us-ascii?Q?66AeT5Z5UOxxUWzyYsQic60eeNaKutaT04mXrch1FYlXfoqGIZPDNz2ZdD/Y?= =?us-ascii?Q?0TD7szQ3cahFp6v440HgCt+JlMwMl6vcdju/jPMZsx77O1DVN5V7UyGW9LTa?= =?us-ascii?Q?yy/T2rRxQrwC4aBjYMFac3DscT3P0aav+4cDaLQgFdizAQK8j/nAb0mM8WvR?= =?us-ascii?Q?8pDQ20i4jv1h3BMF3nk4vVjZrHrzknfECavvPL7wBjSh4i9Xkc82avlyiFu8?= =?us-ascii?Q?RDUsWdgMrzPpNTnf86eP7pmmB0m2GO2KAeYLrxkZQe9LwE98GH8KjLoXRhMM?= =?us-ascii?Q?+xsXNaODK5jTvY0za/LhKIGyiDM1l3ndh7T5RZRC/BeFu4fhHUKz6cHRgyBM?= =?us-ascii?Q?utY0g53IVt0Efs66tbg7Oeu+11+TfBGhxRfTZ/J0oNkp72nd/LgzP8wkveW4?= =?us-ascii?Q?mXKQ8pmJ7bYEQd4N4U3XeCO78InnyxNibMlrDfotsaD5Y/GtDvbHr0BvyBh1?= =?us-ascii?Q?UNniaYZCoqOQPIOiZ2rjYe+HN2B1rodRlPRyS4oQTfv3zJUvBnIOeLkZF93u?= =?us-ascii?Q?5e9Y3KO9I0YHauekgvqcTVBF9/36R55StQ/PyJJl6JCdt/OYZEkDZS6OOpcS?= =?us-ascii?Q?XOKi2QJTYiPAu2vYj6lFG2ZyXESC7weLmXfqUHSAFbrCtJrkIUTd2WaEnqK3?= =?us-ascii?Q?k2E+++CtqgRsJg1KyOa1VTXjExkU3n18paOxLmPEQ4DzWocniNm3r7KXBx9z?= =?us-ascii?Q?69efR3+ZBX+Lw7LHHPXjCcMZbiG+MY53tpnheyg8Xj5vIhcY10Xl0XjHRqlr?= =?us-ascii?Q?k7JQeZYQq5NB7JU1GSYJDfRLCHqIKQBgEaReLnyePw1QxMhUZBnqcMKNoDhO?= =?us-ascii?Q?0Ityckq31AqbnvtiJgfCB+osMkc/hGbvU01c?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:15.1057 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4907953f-2e59-433a-621e-08dda7790fb7 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E5.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9501 Content-Type: text/plain; charset="utf-8" An object allocator needs to call either iommufd_object_finalize() upon a success or iommufd_object_abort_and_destroy() upon an error code. To reduce duplication, store a new_obj in the struct iommufd_ucmd and call iommufd_object_finalize/iommufd_object_abort_and_destroy() accordingly in the main function. Similar to iommufd_object_alloc() and __iommufd_object_alloc(), add a pair of helpers: __iommufd_object_alloc_ucmd() and iommufd_object_alloc_ucmd(). Suggested-by: Jason Gunthorpe Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/iommufd/iommufd_private.h | 17 +++++++++++++++++ drivers/iommu/iommufd/main.c | 24 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index ec5b499d139c..884dbd67afc8 100644 --- a/drivers/iommu/iommufd/iommufd_private.h +++ b/drivers/iommu/iommufd/iommufd_private.h @@ -135,6 +135,7 @@ struct iommufd_ucmd { void __user *ubuffer; u32 user_size; void *cmd; + struct iommufd_object *new_obj; }; =20 int iommufd_vfio_ioctl(struct iommufd_ctx *ictx, unsigned int cmd, @@ -246,6 +247,22 @@ struct iommufd_object *_iommufd_object_alloc(struct io= mmufd_ctx *ictx, #define iommufd_object_alloc(ictx, ptr, type) \ __iommufd_object_alloc(ictx, ptr, type, obj) =20 +struct iommufd_object * +_iommufd_object_alloc_ucmd(struct iommufd_ucmd *ucmd, size_t size, + enum iommufd_object_type type); + +#define __iommufd_object_alloc_ucmd(ucmd, ptr, type, obj) = \ + container_of(_iommufd_object_alloc_ucmd( \ + ucmd, \ + sizeof(*(ptr)) + BUILD_BUG_ON_ZERO( \ + offsetof(typeof(*(ptr)), \ + obj) !=3D 0), \ + type), \ + typeof(*(ptr)), obj) + +#define iommufd_object_alloc_ucmd(ucmd, ptr, type) \ + __iommufd_object_alloc_ucmd(ucmd, ptr, type, obj) + /* * The IO Address Space (IOAS) pagetable is a virtual page table backed by= the * io_pagetable object. It is a user controlled mapping of IOVA -> PFNs. T= he diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c index 85ad2853da0b..4880c085b159 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -61,6 +61,23 @@ struct iommufd_object *_iommufd_object_alloc(struct iomm= ufd_ctx *ictx, return ERR_PTR(rc); } =20 +struct iommufd_object *_iommufd_object_alloc_ucmd(struct iommufd_ucmd *ucm= d, + size_t size, + enum iommufd_object_type type) +{ + struct iommufd_object *new_obj; + + if (ucmd->new_obj) + return ERR_PTR(-EBUSY); + + new_obj =3D _iommufd_object_alloc(ucmd->ictx, size, type); + if (IS_ERR(new_obj)) + return new_obj; + + ucmd->new_obj =3D new_obj; + return new_obj; +} + /* * Allow concurrent access to the object. * @@ -448,6 +465,13 @@ static long iommufd_fops_ioctl(struct file *filp, unsi= gned int cmd, if (ret) return ret; ret =3D op->execute(&ucmd); + + if (ucmd.new_obj) { + if (ret) + iommufd_object_abort_and_destroy(ictx, ucmd.new_obj); + else + iommufd_object_finalize(ictx, ucmd.new_obj); + } return ret; } =20 --=20 2.43.0 From nobody Sat Feb 7 17:56:58 2026 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2065.outbound.protection.outlook.com [40.107.92.65]) (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 4D682221F2E for ; Mon, 9 Jun 2025 17:14:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489264; cv=fail; b=bbRzTO5HuHbtfLBAsBbq7iaJwIQDFiQkonWLRn8QZ+WEhH+5zLBFwEo9+mc/GY9F4Vk65GYwdT4+POZOCzSn6jYaM0hZ5UY3JJmR6OMcG/0bsiohJ2jiaWkKbYZizGEkNFMGntaQ6pVkYMUwHKbH24XSYm6ZLknXqmieeBPyHdA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749489264; c=relaxed/simple; bh=Vm7vUu0ySVpK2tJ9Noo9m4c+0mTWjXjVv9+OxIQuvhI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QRSwPpSZetMq6EP2JRZ+lvGAzmjx7O9EmgZPU1eNNpLxKSqZVv/1U1nX3db36259KtrBSYG2rBn5o/8I0HTA2CFGMLl8QwQTxonO5yoQVIt6K0bcixDzn2o7ueBGjwtkmbG7J3Iuzc4j9yoracsUnQfFOIU8DHBhvm0fVJmeSSc= 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=Zs8pdM9T; arc=fail smtp.client-ip=40.107.92.65 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="Zs8pdM9T" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZWJTGS1BTwfMIyGWhB1IoxsnOmopBwz9iqarEDmp1sUZOqX5OTmd8wYpmwhUNPXWOMADmpZ0hCIseJusnwTJe8Qw8LvQeEF6rw7Pe4gzeLlSebSmMrSq8xLUS4TE+gg6eCadRTgk1sWwow1JPT2e27xPTWLuiB/zwHrDkx3Cwa/Ye/Y00dbKv88nTOCKgmQSrFO8E4lVOanq+jFh+7ijj6dlMFxaZekarUCk9a5R5aQqB1dB0pXGdqFTaaeogD7JovmlAf58UNPp0VEzhUnd74F3pcNBJe/CBPpTh5x1OCLaKeAXZl5C9QOHpofhmFZ+D16Kq7xnRTkP95HvexLt4w== 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=8J/Pt2CO/fHZks9QXTl95Cwy3fAmlggzr/A0VSwTlSc=; b=Q5w4T7vRtLNLVLTZYf5eP0RziAHR/NvdzqRlY/I247ieLcy7SOsO/7IIsWzNrFdswlL8ywfYtzd8J1Nr4DJC+krxPO5lUN9Q5QT6afwpJASXD6ob0CazQLGKP0I+YgN8EgK32xmCVPnOSIp6dtAViRtqhvl8rpVA8+lb1q6pmTDecoQTp3UihNREVioM6Tln+HDjm9lcGHDa9AgpAP64ZLLG9QfaXFfXi/dqOqpPVZDi50A2UZgzHMN8/5Xi5Wj+ypAgupL/WGgQ+zMlfudeUte9kR9odAZ6JjzgAWW4LxEOfGNwMd8YV3z+XoJFWluLeoIlhLD3sYcpIF/iiMTVrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.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=8J/Pt2CO/fHZks9QXTl95Cwy3fAmlggzr/A0VSwTlSc=; b=Zs8pdM9TUofS8iNtL6wjrBwhM7n1zVQdtXIREmXG5Alo26NKQ36KyXmmHHFSaDX6uW4+GiiM9HAF009KWXtWb05uFBDuADcSc5q2hRRjakCuqHvvZWGBl+e7EXkhcrKbP+3Kat4DiEocvyAMHnUgG1VH5XNTbJ3/GGMQYb/F9KFxDxT3BTW+AmsO7JXIAvy27ZfB/UyJmRdzRnKCZ8+WB8KtyzfaRjHDfL4mjArVVGg3cBBPg6p7fi9MGXcWDUQh3LwuFbaQCIQYoZFo/Z85Qp0B6SW6c6yelljpEzGYiwKL8O3K2a6zfbBYAVAXvTxMbCGZWnn64F8EiLIecEfcHg== Received: from MN2PR05CA0007.namprd05.prod.outlook.com (2603:10b6:208:c0::20) by MW6PR12MB8664.namprd12.prod.outlook.com (2603:10b6:303:23c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Mon, 9 Jun 2025 17:14:15 +0000 Received: from BL02EPF0001A0F9.namprd03.prod.outlook.com (2603:10b6:208:c0:cafe::b7) by MN2PR05CA0007.outlook.office365.com (2603:10b6:208:c0::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.14 via Frontend Transport; Mon, 9 Jun 2025 17:14:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A0F9.mail.protection.outlook.com (10.167.242.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Mon, 9 Jun 2025 17:14:14 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Jun 2025 10:13:58 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 9 Jun 2025 10:13:57 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 9 Jun 2025 10:13:56 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , , Subject: [PATCH v1 12/12] iommufd: Apply the new iommufd_object_alloc_ucmd helper Date: Mon, 9 Jun 2025 10:13:35 -0700 Message-ID: <1dc6db3fb727f33818d37c6e46bcf3a7ff4d4ce2.1749488870.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A0F9:EE_|MW6PR12MB8664:EE_ X-MS-Office365-Filtering-Correlation-Id: a002406d-5cd7-49c9-dd60-08dda7790f91 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?a51+W/k64dRkM+0PQJrULO2b15DjkCjS2yU7TFAoTLyVWNfUuiO51DQcbkHA?= =?us-ascii?Q?Q2Twjj6BlI2Mkvo5htNu5EyKf4jMfmKL7qgkgBjLg+gQ4lOQ9eG9pJn9bo3p?= =?us-ascii?Q?TdGANk1S+3xqNhV3SK5OUCjEqjDQfvTElKdsNcpxhVu9nxFgyPR7RiughDxw?= =?us-ascii?Q?Bjlqfb+rum+Vy+YWUzKhRHPYwl/lJgPKdJvF6EdoKawpYIsPziFtXUlwNMoj?= =?us-ascii?Q?yuokgxSVO5PZ0Zw70NufTk+r5cQH/68SiD0PhmaqOV//bZutXOKPk6tsoSjF?= =?us-ascii?Q?0mDAHcVUaY2Cau+pOtTghYrqAaL5X3QpIOSqe36tFi9hTfljLC/tansa2yPO?= =?us-ascii?Q?JHLe3KJ1deiwqSWQ7uzz7cIXm526LtkGFcOBet4w/Nae76OweJVfZjA/3SyX?= =?us-ascii?Q?o+XTgJ5SpBKNB0YF1qG7BvxowkFL/zNkNchRaROorrK8Pgniq2cO6LhBCirP?= =?us-ascii?Q?5Udv6uF6W3oWCoS6hAEdERI2MEb99OFBb05U6KzLbUeDJlQz1/ahQAn3hUPW?= =?us-ascii?Q?Ku10Wo2VgZocjT7CzwHpqtA7ch7W3qD1Ybgz0sEqCEaRlMF34Ml1SmrsShbJ?= =?us-ascii?Q?O+W8XU9qrFUwXZUGORUCm/gYxeCy96wu/4wyBAHkRyUZ1mgNqbUCjKxvqS3q?= =?us-ascii?Q?lEgThtULrGqNTtED78ov93mjhsdVK3BNBOohLMvWmCWm0LKo+d7jAHs8U91K?= =?us-ascii?Q?RqEjF/0QGe3pF5I6491jTowKwZPZnAvnInDaFRzLMpbO0nOQ1O1Q4Kc28XuN?= =?us-ascii?Q?qUtS81BeO+TbV46QyTtudpyjmt+F5x4CD1c10GtJwDDRuXKG5/K87Ud5gqCd?= =?us-ascii?Q?4qEubzJtP22EuuiXjTnI1q9QqcDRTOWrXsKYHRhznQQNlcQ81g+Op00FcCKR?= =?us-ascii?Q?VCWKVMdpbRcMbG6aID8yuiQPi03TAUjMt87FaGkgT3HaZxu3Up1t7yZAg/IN?= =?us-ascii?Q?GmcYrhxTLNyNAZAoCHuqEm1Yhq8iL6BzKszyfYA+xfgJnAflZoBIwv/DNzd4?= =?us-ascii?Q?fCIU8AFPVgxw7hAOKIizvSCGIsQXaD80HMWhX6+D4RPP5v+h/XqjC5+yVC0/?= =?us-ascii?Q?VCw9Fizjqyxb/iIZEQbbO+5xkoZkpQDJvbwuaeIGk/ILgVxqIWaCEDQhA+nG?= =?us-ascii?Q?RffqIpFsVXdWmeqTtcdZxJiQl5KIQOv38dgCPwH8sE9aMgSohhc9avxan0Hr?= =?us-ascii?Q?PWBcj/F4USN8W7VcF0AsG2nj4cAHQeaxhxAui0DgP2XXvDpS/62Q/Y7NAQ+h?= =?us-ascii?Q?eiV7vHMCvRb/YC8YeRIRWx/ILuPu8sQSSRxf6R1Fdr47lf0jScKyuwlzWZ80?= =?us-ascii?Q?dSbfXHtt3+nJPFdYFlm9b8cb8GkvVo6wavzbxvJPGgLOSux2pTC0OaBqWuZ/?= =?us-ascii?Q?h0AOUxrDTKX4BN75B1yhHDRvm9Iss1ql9FlKwxwnH4PJ0NYhPT7ocmemCpgH?= =?us-ascii?Q?KTIZN0qvqvKs9e6t8ZfxJZYMNKynbYRyaZXtBrKqzB8beS1OnhMVk1kY/7/5?= =?us-ascii?Q?L5R7O4wlvsXk22pjBEB56wKuMZtv5Lpb+8TB?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2025 17:14:14.8600 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a002406d-5cd7-49c9-dd60-08dda7790f91 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A0F9.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8664 Content-Type: text/plain; charset="utf-8" Now the new ucmd-based object allocator eases the finalize/abort routine, apply this to all existing allocators that aren't protected by any lock. Upgrade the for-driver vIOMMU alloctor too, and pass down to all existing viommu_alloc op accordingly. Note that __iommufd_object_alloc_ucmd() builds in some static tests that cover both static_asserts in the iommufd_viommu_alloc(). Thus drop them. Suggested-by: Jason Gunthorpe Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/iommufd/eventq.c | 14 ++++---------- drivers/iommu/iommufd/viommu.c | 24 ++++++------------------ 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/drivers/iommu/iommufd/eventq.c b/drivers/iommu/iommufd/eventq.c index e373b9eec7f5..fc4de63b0bce 100644 --- a/drivers/iommu/iommufd/eventq.c +++ b/drivers/iommu/iommufd/eventq.c @@ -427,8 +427,8 @@ int iommufd_fault_alloc(struct iommufd_ucmd *ucmd) if (cmd->flags) return -EOPNOTSUPP; =20 - fault =3D __iommufd_object_alloc(ucmd->ictx, fault, IOMMUFD_OBJ_FAULT, - common.obj); + fault =3D __iommufd_object_alloc_ucmd(ucmd, fault, IOMMUFD_OBJ_FAULT, + common.obj); if (IS_ERR(fault)) return PTR_ERR(fault); =20 @@ -437,10 +437,8 @@ int iommufd_fault_alloc(struct iommufd_ucmd *ucmd) =20 fdno =3D iommufd_eventq_init(&fault->common, "[iommufd-pgfault]", ucmd->ictx, &iommufd_fault_fops); - if (fdno < 0) { - rc =3D fdno; - goto out_abort; - } + if (fdno < 0) + return fdno; =20 cmd->out_fault_id =3D fault->common.obj.id; cmd->out_fault_fd =3D fdno; @@ -448,7 +446,6 @@ int iommufd_fault_alloc(struct iommufd_ucmd *ucmd) rc =3D iommufd_ucmd_respond(ucmd, sizeof(*cmd)); if (rc) goto out_put_fdno; - iommufd_object_finalize(ucmd->ictx, &fault->common.obj); =20 fd_install(fdno, fault->common.filep); =20 @@ -456,9 +453,6 @@ int iommufd_fault_alloc(struct iommufd_ucmd *ucmd) out_put_fdno: put_unused_fd(fdno); fput(fault->common.filep); -out_abort: - iommufd_object_abort_and_destroy(ucmd->ictx, &fault->common.obj); - return rc; } =20 diff --git a/drivers/iommu/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c index 63a92fb27ef4..742df3cb0ba5 100644 --- a/drivers/iommu/iommufd/viommu.c +++ b/drivers/iommu/iommufd/viommu.c @@ -61,8 +61,8 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) goto out_put_hwpt; } =20 - viommu =3D (struct iommufd_viommu *)_iommufd_object_alloc( - ucmd->ictx, viommu_size, IOMMUFD_OBJ_VIOMMU); + viommu =3D (struct iommufd_viommu *)_iommufd_object_alloc_ucmd( + ucmd, viommu_size, IOMMUFD_OBJ_VIOMMU); if (IS_ERR(viommu)) { rc =3D PTR_ERR(viommu); goto out_put_hwpt; @@ -84,23 +84,17 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucm= d) =20 rc =3D ops->viommu_init(viommu, hwpt_paging->common.domain); if (rc) - goto out_abort; + goto out_put_hwpt; =20 /* It is a driver bug that viommu->ops isn't filled */ if (WARN_ON_ONCE(!viommu->ops)) { rc =3D -EINVAL; - goto out_abort; + goto out_put_hwpt; } =20 cmd->out_viommu_id =3D viommu->obj.id; rc =3D iommufd_ucmd_respond(ucmd, sizeof(*cmd)); - if (rc) - goto out_abort; - iommufd_object_finalize(ucmd->ictx, &viommu->obj); - goto out_put_hwpt; =20 -out_abort: - iommufd_object_abort_and_destroy(ucmd->ictx, &viommu->obj); out_put_hwpt: iommufd_put_object(ucmd->ictx, &hwpt_paging->common.obj); out_put_idev: @@ -148,7 +142,7 @@ int iommufd_vdevice_alloc_ioctl(struct iommufd_ucmd *uc= md) goto out_put_idev; } =20 - vdev =3D iommufd_object_alloc(ucmd->ictx, vdev, IOMMUFD_OBJ_VDEVICE); + vdev =3D iommufd_object_alloc_ucmd(ucmd, vdev, IOMMUFD_OBJ_VDEVICE); if (IS_ERR(vdev)) { rc =3D PTR_ERR(vdev); goto out_put_idev; @@ -163,18 +157,12 @@ int iommufd_vdevice_alloc_ioctl(struct iommufd_ucmd *= ucmd) curr =3D xa_cmpxchg(&viommu->vdevs, virt_id, NULL, vdev, GFP_KERNEL); if (curr) { rc =3D xa_err(curr) ?: -EEXIST; - goto out_abort; + goto out_put_idev; } =20 cmd->out_vdevice_id =3D vdev->obj.id; rc =3D iommufd_ucmd_respond(ucmd, sizeof(*cmd)); - if (rc) - goto out_abort; - iommufd_object_finalize(ucmd->ictx, &vdev->obj); - goto out_put_idev; =20 -out_abort: - iommufd_object_abort_and_destroy(ucmd->ictx, &vdev->obj); out_put_idev: iommufd_put_object(ucmd->ictx, &idev->obj); out_put_viommu: --=20 2.43.0