From nobody Fri Oct 10 09:15:02 2025 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2042.outbound.protection.outlook.com [40.107.212.42]) (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 C6DAD1E378C for ; Sat, 14 Jun 2025 06:35:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882951; cv=fail; b=bUz21exss8T5SsWvwC693kpubpbHWSEwWXza1gDf2csOxAaVejVx/QuVbsnyfOgKs1tEDGzYedpyX1BzOgVbHjSsNaIidHn9YpPnT0o2T2maXQYT5FUVC2SAFgl53mBjuORjX4foYXfZqC4uUlvoSXHB5Z1FUYv52lye9Gpi8JI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882951; c=relaxed/simple; bh=g4qJt/CKkJelOxdo2Oga3csrYG1o2R2iNypuIdpbGy0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oVhbGM7DG8TG0YLPKQ61l0OUbAXsVlTqG8TMYNFxFpnbBLhK5O+Hxbe8GOwQbALeVq614N0zowFvilerHECNGtGjWGb7nZlw6rgybQUtvsV9i4U27mIQof836jKY1pyuy1ggW1+FNYkovPGohWpJ47YIjLNCUk2Zeemjp10CZqk= 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=CKdY0JjR; arc=fail smtp.client-ip=40.107.212.42 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="CKdY0JjR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jtqV4NV1yHWJL9yp3sdXJMHftwEqZ8BTz7Bx0Tvs0xuOFfkofwP0fh76e1I9My74HESUAZgLl3l6y/1IvENmRjXewu/jBdul73Ua49IZFEzIgzMbx49/l60eQocYmyKxdcVh5YIzfrdzfjLulnFUAD4AarvBGaT2yqeyYjdwBuP/mTay8GuvVkpwDbnFfsrqod7d1BtpL+KnWZiMV356ChxEpWLizZQfbuDjeBy/wJMDXZul1RdUhcvH0Tw3Vdfz1kVxL4S1j7LE0hhet0t1HL6lKuR+I1b566dAi+Wl+2p9IdQeE8SuFeCIvYNvqB4vse0VlD6hI6nvdgP2DWJppQ== 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=zBN/FvUNov+cZZej6aTjFT1QLOTXHnNVkXXWJvzWsKFgvuaUCq5SzKVNVatY+6EexwKsjt2djTHzrBQZVNAoSDhlL5zSABLXhD0+ikC4tPY2SVACwcHpWgl5FH1YY5UJwB7wuRU0Q2rNBJBv5KQmS4ssodTtgb1s/Li2VXuJ4b27ty9dAXkURPloiebkCKT8ISv5DsJscNuAOsL9hyTwD1Ul3hGZDJCAzLr5Gcl34DWTzBXHF+DNFJQmAMSaJUJLifLboyQmejJZl0GnoqN6dXXOOoLJWGpsSrZsYXb4R0vMGgwRtLsJDnMclidNhQpXh8yz3hl2dBwv+TudHnrHLQ== 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=fsF8BjcznT+3WKiDC6VLhWngLhtxU4EyCBlexGedYyc=; b=CKdY0JjRVwmacopyXFr6mcmZSssKSVC31SG3fd6PCfi8PMpIjpxL1xE4RR/ZUCBO17/Hct1cZ3Vi1L/ZJUKXSwtxMe0YmYFFswJDP5GNMuZwzZ4YUG3YmUlStKNA6Q8BIKplJJwgiVmyJAIM/moqx7LX/XrZYZs58eIWJfK35nVb4KDpy8c8SKfPYEL5+4KYiRbiq/umOm2pMnGEulWYVrLYoAi7b5aosoZHA3DvhhVPo58jSzF0XDS8tRxF446nFo9Fl8z8PRFR/SqBlvyG6uV4lXOVU+c9ympjv0Rypzj78N/wBoAQWLJmKYeBOxNCz/OzDMXhAg/FBX+ZB3jJIg== Received: from CH0PR03CA0224.namprd03.prod.outlook.com (2603:10b6:610:e7::19) by DM6PR12MB4297.namprd12.prod.outlook.com (2603:10b6:5:211::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.26; Sat, 14 Jun 2025 06:35:44 +0000 Received: from CH2PEPF00000149.namprd02.prod.outlook.com (2603:10b6:610:e7:cafe::88) by CH0PR03CA0224.outlook.office365.com (2603:10b6:610:e7::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:44 +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 CH2PEPF00000149.mail.protection.outlook.com (10.167.244.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:43 +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; Fri, 13 Jun 2025 23:35:32 -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; Fri, 13 Jun 2025 23:35:32 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:31 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 01/14] iommufd: Apply obvious cosmetic fixes Date: Fri, 13 Jun 2025 23:35:13 -0700 Message-ID: <9132e1ab45690ab1959c66bbb51ac5536a635388.1749882255.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: CH2PEPF00000149:EE_|DM6PR12MB4297:EE_ X-MS-Office365-Filtering-Correlation-Id: 005c22e2-ee3d-4adf-5e6d-08ddab0db07d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7416014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MqlmwIcX8w2MZfGr50m9F294BkEr9x8CBpI9GeIWDPQvN/rIEg4L8R9c+ocj?= =?us-ascii?Q?IVANuJPioqTi3yHtjbmIUgc1pKS+GAMKPKtNLfjt4GzJQVjxNdDpJT6scL3C?= =?us-ascii?Q?Xb45oNlKB24tIwtweM4No4HveNdpiTHEVSb01FIaBeqeecSRdtmdjYrALLEz?= =?us-ascii?Q?mj/2UuWleSzt5LJh/6dRLueGcTcyj2/UurhBoJjHmY08lYPxi/Z5C8mE0pmm?= =?us-ascii?Q?s08icBNJ5gcEff7kSOJsQgLgtBMXut1ONKM7qWKYEc6KDmFLVA2p+ZlXTbuu?= =?us-ascii?Q?INlVYryGY47YqeQr9KhTcozua51p/ajnqXP32fmLWAm8JyQagA6FSyswz1IF?= =?us-ascii?Q?ru/uz72/Gz/FeGtHMeL/cmyL3dZyXa6ZNgvUvp+WH6qGAk1lnJaFUEEs0i1v?= =?us-ascii?Q?0hdi91HIikk7qv0MVuHtcazW0C8mzqETgMHb8mDRES0XgV2C8Uivic3/1avc?= =?us-ascii?Q?4eH3Lx3tWvZqApdq3DibM5cZ1qf3pf93tl2ualrEHHTTBqPnOF4tP2HOM0rR?= =?us-ascii?Q?NlVEAd5bUnY4KqP4WaG0+7Iuy/POpwie1/DP+7fzpv3VmK4CAw+119vlVxTi?= =?us-ascii?Q?SwQ2R9sqC7O0P6qjDBz7So7bkYDmoUUJ2Jgqf0pRF1RIh+2F7Ge3IT0zT5fQ?= =?us-ascii?Q?HB85unKRrupONtGslxVLwE1xnH/OSaS9TnvPQxJxQLKOEI9rQyRGo4x1iMq7?= =?us-ascii?Q?psNw6sekjGHXoSYB1Vv1w04A0Z85LwN2nshGoBs+b7ijggeuVXo+/aXaC8h2?= =?us-ascii?Q?4JGap+VOU+tDeGID4a18NG96xMzHJF/u6t7oq61t5cTqoGGmoRTedmY95RDo?= =?us-ascii?Q?bRJkXBzZ6Ls/Haz3jaiqWo+F0Vs0+z7f/fexuN9Vs9ASuQpisghMicMK+5q8?= =?us-ascii?Q?e/0vcg7F8rvuy0NhLd8+AW9HsuAcwvcbXLtjA/CionHCw9YSulJBr6sn0k/x?= =?us-ascii?Q?1ztptXB1jkep1S94NNfUwrCjw3+4NR76VEuSBP4kUDdpVp0jvtqORhN2maJW?= =?us-ascii?Q?/PhugzMZsLSzIwWZLBchmFlUKBoMEtotMPL5K/O6DBxLl+pFaUxvsbDDSusS?= =?us-ascii?Q?p7SHXVB2/7NPYnwJa8OY5fVyuwGGJCOYAd3C4l8EzT97SsQkelKr7Kdehccv?= =?us-ascii?Q?LnN1dcA7YY0/rN8zN3UPlICQEqx4G5avJEC8zMPVCf5ciNL5zHTp6CQhZume?= =?us-ascii?Q?N/HshrvrBh21js55OtZcgvXu/D38uPShSfHZaapf3nts/ultSOtm9Q3Baq+T?= =?us-ascii?Q?wSCGln8cQojnCLq6hj4t+naxxrIGv4FdY2Prw3xYoXO0VsEUyqViQDxg5NOV?= =?us-ascii?Q?2uqf5HBqd7aLU/990leLFhHGVvuTKFR2wXSrQdkSo4MEfUWgCsPv/9UHxf6/?= =?us-ascii?Q?59lWc6hgSJBIxKt6l5GKQfRRS3rVMQvkQb+Ruqc7/ZFKAvfz+a/avVJUJSFh?= =?us-ascii?Q?Do7Ugz2UkjHZA0kLJiy82tJDjgJDFnF/hj6ucQEDV7VsmurccCg6Njl4mWRy?= =?us-ascii?Q?XrLo61cWqRL26yAVtfw7asP8YWqHkcwn5EcM?= 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)(1800799024)(82310400026)(36860700013)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:43.8747 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 005c22e2-ee3d-4adf-5e6d-08ddab0db07d 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: CH2PEPF00000149.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4297 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 Reviewed-by: Lu Baolu --- 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 Fri Oct 10 09:15:02 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2086.outbound.protection.outlook.com [40.107.92.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 4E53B1F09AD for ; Sat, 14 Jun 2025 06:35:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882954; cv=fail; b=ccORnY5seQofq3z5u1ckFbccKpDnHrUVSSYz1uy4WVXGuvJtMs+lgLkSiifnrCm25gTi80nlrDp/kCM5zDYj4TFIiFyhGETBXHXion3CogntABmk9/E9oyUK1xyDKIYAY2bJj8HN5hXDNRtFrM2mpR+X+i5iRBpya88ZTxPzCFI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882954; c=relaxed/simple; bh=d90UoW8a9DRBVs+qumdr6L+MZNoq+PrzRVCBZEfeddQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=arBVIj4+tL0snXBLOP55DfUoQUu6uGDfpuSMVPMT8uVplymkQSlUT6TmUmZx4mI0dS7U5wamRNQvHuVoQGqh1lCIcfgWsZBWix8ZeMv647qp8lN4ctERVvf18ixrBk8vcyT01IzIIFNTArrzwpCBmh0ZRkFLYAaOYyc9N081n90= 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=P9yX82Ly; arc=fail smtp.client-ip=40.107.92.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="P9yX82Ly" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qnf+ePMLLFI0oF+cBujqTR/EOxOWUNaUTfoB0+ZCCRsArtSBPmex7ntmi/Ea2CY+nXVX5XhQlVg1daFbZNADRjpi4S6zQZPmRNATJcweSsbjxQeC02WpT/XK3tNJ8Sp04VRi9LqWaji3JZLUwqiLRljui7tO9LwTHJ74ATJMN19eX3sfMKoiZD71muVaaugKy3gGlr5acPUOX0+RjMFe3ZB1+XoCC3qBAwdRY2tpUrp68KhHNZe4WIU/eT8qNnkaCVVSBwT38V2PB/6ySu7IGQDqd33S2ByBwvWUF9EJipj65acrXZdqbVbQzNU+QtRUlmk56RoBIYmCCkjBRyRfHA== 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=xBKuGqPon6RJyhFJT3vVIL70XMIoO2f0qkjcDH+zU3o=; b=iTwrfsDsXw5GNiUkKeNfmaE4bMgjNksWafEtP/zkUJ8Xm4j5BSVVMfuRpdlcJH5WhXKotfRZBUmCeAaWmcAfLGmoM+IjPjL0M+iouOJrn0wkYS33sXqBWvim7voGjx+4KfAhuSY8nQ07Dd8Fog4YketannyBGo7JEiSbAFCEWarprAbdgjRiTjwFJGg7fvflpwY12BRt0Vz0Ev6/gUdEizoFTY2noowHAgX6YJhTF5+lWxa5/96IEVVXZXIfXGLiqxhsz9QHhLNTfUXIS/7/Mf/0J4vjdSy4J1MM9ssxJPZT/HrfdXamJnYIArDh9UgwZd11LK/pFZ0G6Gcz2Vi0iA== 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=xBKuGqPon6RJyhFJT3vVIL70XMIoO2f0qkjcDH+zU3o=; b=P9yX82Lys1f16wE8XV58K/l6q+eNGBG+wIUNj+3NfLM/tkOKjXXRxS1HmZWxYUw3K39MF3p1i8TNEYyqumw04Qc+FqsUlAZQsyjkloXbnxt9ra4tLQ0RjECqJDtVlW0ZWZjSJ9U/99qOzmr48562rD2Df869LmIJzYt7Fmxudu4kRc29dXzvRzHuAuy6XwaVojEDiaefwLKwRwFNsayepxl/SeQyvjFb9jHiGwwzydeubwduElqPZeaRKyioTNmA4+4z1tpG/pXwfu19IrFQSX2IDyoh7Ew6RSQVQMt1PmLcXXZa2/7Z8jDPHAnBLjJ9MUXwtPgCRjyb/6z89Bm1zw== Received: from BL1PR13CA0145.namprd13.prod.outlook.com (2603:10b6:208:2bb::30) by BL1PR12MB5874.namprd12.prod.outlook.com (2603:10b6:208:396::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.36; Sat, 14 Jun 2025 06:35:48 +0000 Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com (2603:10b6:208:2bb:cafe::51) by BL1PR13CA0145.outlook.office365.com (2603:10b6:208:2bb::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:48 +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 MN1PEPF0000F0E2.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:48 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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; Fri, 13 Jun 2025 23:35:33 -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; Fri, 13 Jun 2025 23:35:33 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:32 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 02/14] iommufd: Drop unused ictx in struct iommufd_vdevice Date: Fri, 13 Jun 2025 23:35:14 -0700 Message-ID: <6cbb65e8df433de45b6c3a4bb2c5df09faca8a7c.1749882255.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: MN1PEPF0000F0E2:EE_|BL1PR12MB5874:EE_ X-MS-Office365-Filtering-Correlation-Id: 10ede7e2-8425-4e9a-2fbd-08ddab0db32f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|82310400026|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+M/+JCwNgYRE1YU+RSygJkToYoXy9n7a7oqTkVGxS6BCxKpXAT/hr2vC62yf?= =?us-ascii?Q?WeC2ZDV9F6xukgmlU2F2arhMccE/awA11e13gF+gaqHcH6UABWceTe5J8/cf?= =?us-ascii?Q?kA27PkxlyHB0VSHwOy1YEMDRiiFsBJXG/iwvM3V3h+Mh9H0AayfTeiIR+Gle?= =?us-ascii?Q?0Vbjs2CBy9hV+2trRphWkma5LHf//P6QFatek3521OtiSzpoBKsZ/t0x7qUl?= =?us-ascii?Q?cd4BwijId2GVmquaEkeKVr55IgvRF4D0LS4Xa/zmj+D5IHGsICcWintML3g3?= =?us-ascii?Q?kLNZA4AqvApQsccYZSqkqGl5YZblzUxQrG8HldbXRxQfimQ7+rkki/XJLTCS?= =?us-ascii?Q?1cColjhBXggy3xMwTV1P5iGPJ5ldQ2A59LmKlpjXQFuGz1qma5DpRD8prNT9?= =?us-ascii?Q?HHQBVApUqcaQEtDvM/0Q/kMAUjdFuLSc6QZ10noFGbNYWcozs08JiLB2Chf4?= =?us-ascii?Q?GXdO7c6w7T/ofuY8cM7jXiEWI+RiD7Dp4hKEZR2Vyk+g93ralc1jVXQRBI+L?= =?us-ascii?Q?soC8tMe9sWKwDAXrWRiyX97AuOahBKTixheq8qwhCv6Kospcg76qg5eEz7pl?= =?us-ascii?Q?qSibiulB2Bf18lEIFlKqot4hK9o65reTVKiaN9iHBmDQ/8DCVSwUoFV/zs/v?= =?us-ascii?Q?BiO/vpTHB9Yk/9R1zjVowdBp50l1ki7YMuAJW7iEzNRikJcOniKlAN17S41x?= =?us-ascii?Q?wvR0+8mOFZyxpiVohqUECqucL3qLP2WthZ+nBXnraJ115pstwHUjAMSjA0Zy?= =?us-ascii?Q?2MWQhGV2mSx40MCyzz97o+CaxDd0Cf5rKPU/6xlxtRkf2XXMflMg6HSscJ84?= =?us-ascii?Q?Zuoo8tx8SJuf2aUPW96k7lpXURsNx9mmg3y1Pdz+vMAqXU78YZRxQQa8PYi9?= =?us-ascii?Q?nOpKYnVwp4ZopuWOihLJWpXCj9mDuT3Hh93Zf/6TaJI/tZC8/Oz2f8oUw54E?= =?us-ascii?Q?SqLyZ2CDHdP/IlQWNTX98ZtU1czSgznBOZLpVxbxbqR5EtUcrXD9+UGfuvdQ?= =?us-ascii?Q?5gz9fu4NMP7fQsZIOhUSCvTTIfenarjvDxP7ROwMRDWUmrvxbEtcOMiqaW0e?= =?us-ascii?Q?rEZ7p+0ZsIu0sEdWpiR8pZGVrcdQXUDIH7hu8fKnxXi27AuHBuGdKO7ESK7x?= =?us-ascii?Q?VJ/6/SwTrPDZiKAFLpxzcg8XtcE23p7m12p+qCev4Pw28RBxJuYXrfsGjU6U?= =?us-ascii?Q?yeu/veChMVCsAewcf437OY4XMaYjSkhOiw0EJQKzh9oroLd+vH/JuWsF9rHo?= =?us-ascii?Q?9zPfdVghyc02ohmed67xVb+RY7PIMliNbqgnUTLg/fPBHhYAqkT6wz3/rePn?= =?us-ascii?Q?A5IdsjpIX+87GE2JYAgM6hTqgffK9ZTIbFYdk2q8O5EEAOYHfe4/918St5DH?= =?us-ascii?Q?vZK7AMcSuQK4oVzQfEDiLKysFTMZj2dvotkJ29ZEFL6Kk+iBfxSVZQ9rMlas?= =?us-ascii?Q?Npr2a7zbjh3zPbKm3wd6HS5hIw5voJLf5nu6FFzQGIxYEcaA0wSuI0cDWIZq?= =?us-ascii?Q?pqeteLyBRiwdniqhLwpfilguVFBiXEQ4p/Um?= 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)(1800799024)(376014)(7416014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:48.3615 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 10ede7e2-8425-4e9a-2fbd-08ddab0db32f 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: MN1PEPF0000F0E2.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5874 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. Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Lu Baolu --- 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 Fri Oct 10 09:15:02 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2082.outbound.protection.outlook.com [40.107.236.82]) (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 EDC551E5B72 for ; Sat, 14 Jun 2025 06:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.82 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; cv=fail; b=RSxOgdQMUfKl+VvfkEXMf49ARvdZusyE0a7fz1C5WJiQvYIPZFbMuTOQetg2StW3Mv2ySPr/pYakdDo08TNrztridzFQ5k0Fk5Sc30I6erwq7VS1RmnJJJdbn+W21qsrYTpQW5Spx3SyBuOsUUe7WFVqG26FFNCKnr0g662Vzpw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; c=relaxed/simple; bh=pe8fvLpBqRl+hAZ1jKLHCgOa4iSeDF8DQiLY6LTmSGA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ckIK9rofnvOQf4BUaRRRfPSMOl8PB0W7ob2AXNDuWZwcJvcmUIUuj8HmH5DK5Dkl5JvHxhu+d0HfM/f9D86skNLqmfxkMGt1/bfrK0SqGH8mU401HSaiigJ1QmRqwXrJKICtTnCIG8cIH8+DjP25zAwg/m6bBC2IjW6ZvTRyWYw= 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=Vut+mXIQ; arc=fail smtp.client-ip=40.107.236.82 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="Vut+mXIQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t8Cwwgwyvs5qDZ3G6dDoUwKAXDycSW1+5EIdbGSIkf1pLQt0P/He5HdYrubRqlKJV5awsCabj4DWIdODF83ZwJIEbdGdMiUVqLJQrLBUYqx2ef27htQC9vSrT6SOdMOOrGDGUwKssSga9E9bHpoi9LfJqU8cTwsC5qAnsrrZMq4yFijG3SOKZc5Fb5DJh+mNa7w/NtssnK5JRV4AKr3YfgokuHDOYq/s0o4NpwkaI+ZENzlUeqBux4fsQDjuHzz0W1mk9WYjqio5I9D9a9fo4Kyzw8h/qWceQAvF+MS4Mr3KDtJXnHVNn6WCXSQBsvnt9eBJ5z41wrP4eG+DJExbig== 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=cl8W99GH0CZLHJoBgYZF8zpqVYJWRmyi0SYIDV6nWI8=; b=pcdxZ8kFZoWqg/T/nzYY8J6BJLa+pe5Qy3M7hAHOAFAtrBHN4QjKLLbQqEwqi3E47xrZS3UXN9uVgDw55RHg1CJ+QGEaao0oJdtsRLD2pFUVrCNt69GT4+Y6Dg6HeHlQ3RnipRTzi2JcYMezHihC9z375ncyhnuyQ0ZXYqx7HPETmEdKYT7TdcJMc2j94c1FcFNSVvBm39uh7trJR3maCZeV36GcT3cgHcMG3zQl52Sk1MiGjcVaWTMMVUsztOyI/KqkG2jn8ymTBa747iD6z1ELeLurBOPsqBllt79cQT9oleIP4TzCE9/e7/kzclEALRXKNxemAKmo1Jd1XZoWSg== 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=cl8W99GH0CZLHJoBgYZF8zpqVYJWRmyi0SYIDV6nWI8=; b=Vut+mXIQ7fkl9cYssjCbbGPEF6kidw9DSkY7kSo8qDtKaf84tTa8+wyR/5BLBZEwAKGufWcNJTfqkQBg8Oa08UmpVI6fwFF+bn/J0NQUblLc7rHSn2AAh2Mb3/i48+yZlnTmX1PK/2Be0jC9IWswW9BN/DqGelpkEvJ9w/jpeulLnYsBsZoiYa5pOwD1bBpjps35eu9hWfTfW7mN3+JcKJW/34l6Ds7CDZQf8AJkWWcmTxaBr2wwdr2/8Hqj+mgwG5jyOBT2s03/GhCQNpIwhKufSS7KddUOjytWgCe8Fv8rBbL38xKOvdw8kwUsfzMR9ccT41fsZ3if6cb1etiqdg== Received: from CH2PR02CA0008.namprd02.prod.outlook.com (2603:10b6:610:4e::18) by SN7PR12MB6744.namprd12.prod.outlook.com (2603:10b6:806:26c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.25; Sat, 14 Jun 2025 06:35:46 +0000 Received: from CH2PEPF0000014A.namprd02.prod.outlook.com (2603:10b6:610:4e:cafe::78) by CH2PR02CA0008.outlook.office365.com (2603:10b6:610:4e::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8792.35 via Frontend Transport; Sat, 14 Jun 2025 06:35:46 +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 CH2PEPF0000014A.mail.protection.outlook.com (10.167.244.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; Sat, 14 Jun 2025 06:35:45 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:34 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:34 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:33 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 03/14] iommufd: Use enum iommu_viommu_type for type in struct iommufd_viommu Date: Fri, 13 Jun 2025 23:35:15 -0700 Message-ID: <6c6ba5c0cd381594f17ae74355872d78d7a022c0.1749882255.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: CH2PEPF0000014A:EE_|SN7PR12MB6744:EE_ X-MS-Office365-Filtering-Correlation-Id: ed8d2929-c261-44bc-d702-08ddab0db169 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Pn5j6eK0paWWBf1mwB3TVIOfzFvBgjeGp1YWfT8L2vXAHGKm3y3v9O2E1T44?= =?us-ascii?Q?PqGlMJFvKzE/wGJZZC5AGFz2jvdYmbKxXTMcUeAFhJ5dd7YywTzaraqZdiqS?= =?us-ascii?Q?GfZx3RI4/3ne9YLHHioD68/ALUQWmIZpu5MJtAf7IVW09qCpE+HoWC/f2f4z?= =?us-ascii?Q?Ba1B2ZTNna0baCkQynwZjvcIZ3oMT7aJmpCU95FvznO/+rILeN6PmPsJyV5T?= =?us-ascii?Q?e1m3Ft7YUkJJ5HRWD4igTcCqL6sKck+AJ4tyEn+CHxj9xxypP+hjnlYX59fJ?= =?us-ascii?Q?LbP3EGnv5pm3MsYbl5Cv6Sd9DnpvLTJ5LRXpxF1q/OLNGMEBTjkBl//TWoFP?= =?us-ascii?Q?1z+5YWWvAZXOYffpE4FDfmIyz65kctIWw4EllVDWgIbdY2bBAEY9XR0z6BhI?= =?us-ascii?Q?FK/dFKhz1mxwtVaZAcPdP2yysS+ed/vT7EDdt8QvWEpJ4hROJPkzy9LcVN3d?= =?us-ascii?Q?gFL40Q1bn63m4G2EaiOwgIq4xxXb9kv9faXDASQX7GD8SFHAh7v/KQa9WLVh?= =?us-ascii?Q?PCEF4K3BiJfvWJjPmeGszwv2SB1BJarLiXDbBYFYOk1m9y9Zu9qy4B/wwMCD?= =?us-ascii?Q?tji7DZuHOw6OQvTGCbDEbrsgr/eyBrFS7uIgjOXVmKaZZeN+B5+PCGCMnyxl?= =?us-ascii?Q?WDErCWRph6DzvJ3wFNH618uANRXS6jS8PRNoCv4oU++Mi6jsY6L/OAnvXT8I?= =?us-ascii?Q?J4z7tkPwVlpyHCEUb3Ne4Vcr/Ap2mR6gOpXgcuxjjNqImVMJeLLkmnUoNXQQ?= =?us-ascii?Q?kNJeO4VJWxJpZcGsQLLXDELA/tB7JvOnoKZFJPvss9RSClT2YctCbLz1dPYL?= =?us-ascii?Q?A3tqIfgvvFae5NKE1TluwzianOATbhWGUeEwiRx8ryYv+kHhz55gTkvHAHzx?= =?us-ascii?Q?FIul0cXgFOeOnXZ7s+98okpYVJ4mu8EJ9EOwI279OxqWu8sPcX0pMPyiAdT+?= =?us-ascii?Q?L/TCuW6ClExYzkIa7fWPmDDNnYSV74jga+qrnf9PNzHpVE2LhwPSO3w1xTiH?= =?us-ascii?Q?J4x59KPh8qQI+2ZLM0MdavcnOJb9bXmf6zEiXI7jS8KMMm+0KE7VFicchW5E?= =?us-ascii?Q?3/TMqftlEWXhQB4NrRP7DcI55o+6EdDrdwfSRIwBukixC4+HYE8nzUIKN+76?= =?us-ascii?Q?11A3hFjqe+G755xwTvG24xPX35NBnlMkZ5EolTHpmc4EinIpyTWPTHR5V2eS?= =?us-ascii?Q?FUley7rWUMwFEmOUel7GQ3Il2H+WKHF7JQj5QWGZC1E8d7kAOfS3UCmTnqZG?= =?us-ascii?Q?rPz9qECRVZySuBR6cQ/Wr87YlOtDCcnJh9aUkrituH1KTKfT9zcxrx/Cl18x?= =?us-ascii?Q?cC+02jrdpcOMV7hCYnZgRokZMUnpmd4i5J6cSi5ww2AzZNPcpkwIbYLtEqXF?= =?us-ascii?Q?S5IL5RAcNXSA7A4gARe3Mn/cDwn4Dm5Su9XGQY5+sCXlitU5FwedLDPT55LS?= =?us-ascii?Q?FrY82WQIbEtF+hdVkWkjG2HP+ks96zp6m+ylxXvF1G5wgCXGxtieoBuIUzzw?= =?us-ascii?Q?c71ZGxc4Qy+wPJsCHQZO/Eq5+yIV1dKBJqsY?= 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)(376014)(7416014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:45.4300 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed8d2929-c261-44bc-d702-08ddab0db169 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: CH2PEPF0000014A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6744 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. Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Lu Baolu Reviewed-by: Pranjal Shrivastava --- 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 Fri Oct 10 09:15:02 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2050.outbound.protection.outlook.com [40.107.223.50]) (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 B9D031E5219 for ; Sat, 14 Jun 2025 06:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; cv=fail; b=AFt8VP3/iY1r3dKQ0/YXLzOg3LRDpnrE3yFsVZj/Jvqjm3ajoU4C8HDflNtui3NLf23GdVsf6A59WSMJhYhLznptG6YMmNhLs85vgRrGFNTvXoV1fEjML71qzkF6M7mgwOHrPrMpUkKD904KBfGo2uJThLAupKqGxqI0cf3satE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; c=relaxed/simple; bh=kDdy6bpUzbKC893XFgQ9iwmmcj9IeBkppl9rguSoDhw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZcDGUy2fgIUachC9rg/+yl1NezdG1GWEyKYgQKfrDI1KwFR0Wam61SiOCNXfdO48Y0vDdNL78uFzX9Sd61QcF799X6HS63iA3spAq2ujA1viAVEebe5zCPLfZ8OOZWNJznvuIlr/lAEwabj8Ds6yLDs4VhV41FeW3fXP7ZP2WC4= 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=nLjEKs3k; arc=fail smtp.client-ip=40.107.223.50 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="nLjEKs3k" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xIPdMLk01bZIGEhTA69/SSZwxuhXIcAr2tRxpKLdAyK/qrpi1JRyg6Fj8LclQmcDmir5I25FydgIa3vkRNkAlGfuVd5hD75M8ukY/Z1JdnrJAUyeV8Glj1A+KwlpjHHXnm9+qqCL0ZBAJc9TQG7ExLLTbDClbQzPueT0vuCDwMMOyfjE7tbSra59AJXSS2c458gxaBI7vn6Q0GysZB60RNo2zrQw0lBBpEyeLRVmgslOUKhvL5PEptncDt9O67pJ+ou7kI357zJZx3qXgshu10V8FWBs7fxinuYWdfE2yzS3eG5HERrK3CAdT2hcIQJTkD+Rmvnq9GIVsfRejD300Q== 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=vIzSdepgaRjaL1oqsNJan33EenPpQNywJl8OcpwMAVM=; b=tLKIUVIBfBpeE82thZMOt1DtN1xP/5R5hPzRh36WfN7uRjNPlhYDVyUKVpbVwrgHnp9c/MmnXLI+THkZk3ui/X4YFdYmYbFVZhQVQ/Nc1dJSggMzygV+K21wYgJRJ2a2llNyeChh3M3TZuOpK2E0XCMBfsFhH7M4Qasq4DnM//z+kYWAV/7mSxvSXyv1a90tRGqTDq6hgH47gPCxxLvgL8hhBVVqEfKSW3xAluxNg44gTFHBHgzQ1T/axJd1KpJjihbHEAydr4fTBQKSAeo7QUDlO5toWGqB2s8hQ9o81vRZej2u5KL2dNxCoY8P0eJUSWccvalApyBHaN237L2ZbQ== 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=vIzSdepgaRjaL1oqsNJan33EenPpQNywJl8OcpwMAVM=; b=nLjEKs3kesjXFwErSBez04rWrl/JER0qdm/VwTDnhPM8kbG1jdNUwkcHgs6g1zHBqQjMpaFIgFEtXvECxjB45PCCrRjVUQqVh7M03VKXpeOaYkh4/AxB5F89Dix8aGRahbakdMtOpiBfBBIw8gOyWSm9tRxBoGb4xLWnClo6llOw4f+Fk1ieW78LlI5T7zjLzj30R0lGKyPQZw+tKpnCFXosanAm0ClJLHo3s/OPJSgicSYHHHZrcvuJ/4+TocR+0gnhiXX+Tj99ypvjJwPfY+4X30PuYrnoqHWQUR9NRJm+Qx0LIxjOFw57ffVU8ctZqk5A3CZfMmyiKvYtnN8Xlg== Received: from CH0PR03CA0238.namprd03.prod.outlook.com (2603:10b6:610:e7::33) by MW5PR12MB5600.namprd12.prod.outlook.com (2603:10b6:303:195::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Sat, 14 Jun 2025 06:35:46 +0000 Received: from CH2PEPF00000149.namprd02.prod.outlook.com (2603:10b6:610:e7:cafe::94) by CH0PR03CA0238.outlook.office365.com (2603:10b6:610:e7::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.25 via Frontend Transport; Sat, 14 Jun 2025 06:35:46 +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 CH2PEPF00000149.mail.protection.outlook.com (10.167.244.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:46 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:35 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:35 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:34 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 04/14] iommufd: Use enum iommu_veventq_type for type in struct iommufd_veventq Date: Fri, 13 Jun 2025 23:35:16 -0700 Message-ID: <208a260c100a00667d3799feaad1260745f96c6b.1749882255.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: CH2PEPF00000149:EE_|MW5PR12MB5600:EE_ X-MS-Office365-Filtering-Correlation-Id: 150e54d7-2f90-4abb-d5ce-08ddab0db20f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|1800799024|82310400026|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YBro5FAjsJnpUT8p8yAcAck16ceFEfM1jgpH29Y2Bn+Wge6z1bfcB+SNwoU8?= =?us-ascii?Q?AYTTEVWBR8IgOiHt6uTQr6oPqfvKsZYLurF1wwnmhsXXA2Z6stEqRrbyPETT?= =?us-ascii?Q?tleG7ldfubeLKzC8HLkV+bdPDQnDUfp8sZCmeiOZXj8Y99i6WKf6tkb471SF?= =?us-ascii?Q?yE/+G3/iazuHafsXGVknao3ASJ+IVEfHxjM5+d+tPRY8IkTpabhGGNCvn9Sl?= =?us-ascii?Q?mnXs+57KwH4rIEh4VF7BXUiSvcJsEMgZDvgj3SsBfn+FZ96z5jJfJZLsXmI8?= =?us-ascii?Q?Eiu91ucGsWdjM79R0B+6WbsvUg+zU/pacqhMi7y4GpBMI6S9VQXzX9aRHupx?= =?us-ascii?Q?dySs9AQwpMi5cIavzzvOsZGH2dKGa4Je3daEB/9U+sMSRf4LSek7AsHb4Cgu?= =?us-ascii?Q?EHypp6sJpcaw37m6Y3mvFQe5AWeCd4qixRRKy6yDjhm/cZCu27yPrQmE5Boc?= =?us-ascii?Q?a3PNKunDTT1/Lo8RNQiWRhD/5UsAqDMe/gxAsEUS9qss+TvfBIbJwyGsP7WO?= =?us-ascii?Q?kwhJRDMKqGLwpEwWpM9hg47s3x+11ecpy2LehBkRLIahaba6P/LBDJOllqJf?= =?us-ascii?Q?mU1LZEuAKWfmM1G4/Kt5MimRg72DBTyKXJSw16YinZXwo0cg3pYEIZnv92c2?= =?us-ascii?Q?t7cwo5f+huiu6piAmOMulWO4PSVN/YZAa+mClYNXGJuRNJkB/AFQXlU7Yw/o?= =?us-ascii?Q?Zac2TvlxscHfoYemb/IpCGTiWwSj8NNcZOE393o+vvarsyqWtYFA+yAmLeCb?= =?us-ascii?Q?SxPLgT8VYkF4LaKc35vmGt/ORvyJKHq57QqHApREfIYeFeOtKnIIAlgwAHZM?= =?us-ascii?Q?0EGDxFPviJ1VZILYWQ8cRLl1gmkKf4yP6md0DToUH05GyPegYc0P7nl3Cv96?= =?us-ascii?Q?nbXrGni2nfoIDzGDuFcYqmhFAB41XgsYmNvygbsYJQur2hbQbPqac47OdBfT?= =?us-ascii?Q?fa2T3OJUE8oPVAlnpA6eREFXYOgfE09JRSGP6yOWqw83l1WVmimEsJnDalRq?= =?us-ascii?Q?QKQq4GZgjWCOTnSikDrszSmUUH0a7VnLrSj4H3lGzGvGHih0+xWXGa5d/ahI?= =?us-ascii?Q?XvYgwWzPQ+jul8L0NLPTEKavJk7cPTvLytkYrjGU1TCbTMO9VBvU6DEaifxQ?= =?us-ascii?Q?7TbMNfKyca6E/e7Vet3J6iOVfJmZC8xRJBUfbGrJGDT3bYttbB00l5XkALC9?= =?us-ascii?Q?qOY8yhadVDT9w1/niYncNMQB6DlIot3EYL9+UJhGjDhzwk9WcZQSjm7iyjuG?= =?us-ascii?Q?sobi6e2XsU3a3wdSXJ5ppvmXouSes30P4LlavzFlAq1kFwYu00foWNlg01at?= =?us-ascii?Q?c+o2vmr6BdBSEqlpX4w4ef5nlhFcdpKJzw/BL1siRnO2/wn7FBMZhzTkAM0U?= =?us-ascii?Q?bGp/euc30a76ppkXr4U0ZbP0yDGkp1rq7VglHXcxbSBNpABVubeZ+GQ2hzAg?= =?us-ascii?Q?JNxw/Qld2qNKYGDJghE+g5bf6lMl25hw0T6X5upgWY38MQDLlkpLFA4C7Ez1?= =?us-ascii?Q?C2chnvDMu2L6AKUsY7fQiEbeywuWq0ZeC+CN?= 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)(7416014)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:46.5130 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 150e54d7-2f90-4abb-d5ce-08ddab0db20f 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: CH2PEPF00000149.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5600 Content-Type: text/plain; charset="utf-8" Replace unsigned init, to make it clear. No functional changes. Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Lu Baolu Reviewed-by: Pranjal Shrivastava --- 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 Fri Oct 10 09:15:02 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2040.outbound.protection.outlook.com [40.107.220.40]) (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 EB9EE1E5B64 for ; Sat, 14 Jun 2025 06:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; cv=fail; b=iTKYwjeH0GzMcfGJp8HidxClFuV7sadhpAB9ySxh/6fd65l9h7lqZk4ORZjPcejTuSvfepeMb4wb6WC5ATPXxhQiJhlcgoAs+kYoaml3uxNl93y4daI3CGNJAgGJbuXLbRy0Bfh1ioZZn/rWzTni0ZNnDneL2nfaGFpTyEUYeyA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882952; c=relaxed/simple; bh=rg1yE2MXqC2cnyNYLVdl2239OF9X/xExNQgOvojvGBo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YL7VWOCCXR4iOYxJLbASJdyvZLCoyx+5xxXdRcwIY9XZiTAVwkuJqtv/sJIT9Vt2vubBXXpm6rw0NTvQzFl5/l7VczjSVqJIB/GYt1g9q1ReIEpfcmUbceth3Nk1Zh55oLJvZPJpwT1zO5eaFWLa+AJtzbcHZcJxcx0v4BdO4mk= 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=CUm0/YpT; arc=fail smtp.client-ip=40.107.220.40 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="CUm0/YpT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oTGzedmeBJrBBj8AxC9sUUx9L9yh70bO85khN/MdnAGUEL4FL9AKNtUAv0y2gPhGqb4rlsNzo/pbKycvUyBMH+8eec68CX1BBZzKIgKbL7+X+gIbUKB/d3OT8IptQzFf25cwXEuE4E2Fu/W6PPT3hi/+5wQTpysSjKtEeYFlIhIX0xtIcQnl5RncKK5GVSDcxDkom/dOdkJ3z+IUwRQziLNNRbJgg1fMdezvR806r14254irjs/xQ5XiY4b1qsgdVsOgTX2HspozWKMN3BTnZbRLOOthBY0635V8q7aHk3ge8JOHD9H8a5kCcGuqyNd/Mm/WS0CDMY3gswKWX90+AA== 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=DMJ4tA75JKnY1O8mxVqQxh5MQus6HpHA8B9U7j5krBY=; b=x/l2zh/exzFPGABAPxb7IjRriVpScXUssiAbcb6Ba4+0JxZB+CAwfyeVvMXvXS7GtE0Pi/9Z0KCvgxoyAP6i2UtXX6kGtioHmpkvwzeod8/WuI42UjMvhheBkCgNoewbRJ3WzU1Tv38kFdkpZ/CsIwWrHvDzJoIGySkqfW1m37gnFw67rOl4w07LM4mhEa/lbZpaokqgWQPV8Jox4DD6wMIA0Mk2AElDhGJPicnCjfHSku5C9+qdkZTc6u96ionuzMkF9JLS3Cg0BMl3TL6HAKQXLY1NrJmAhltxEoSv8XCXSBBPnoJ4PmmDX5GVAjnszIgvB9w3nZMNmoEQKsWPIA== 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=DMJ4tA75JKnY1O8mxVqQxh5MQus6HpHA8B9U7j5krBY=; b=CUm0/YpT1WMqd0HSrxCh3dq5D07mZ5S1kIICkMW/WTsUqw6GLN5XtR1WNRsJcHvIJn+3EVUGVvCe+cTok7oUbOpnW66eh9ZfAQyWO0Y/DHAUyuj7EqoFS+yDIuTULTCdNvo9hG/lFi7WzVK9SbslSeS4PJ1kIKxn7/mU1hdMb3mVC0vkcO1kpLY0VB9zTeR5Iexlybk9v74viQMF7/PeI0fYUiynbJafo8q2qwgRUtsSRkaXXFgDMBtE3EDX51xFipk9CdzJvVFs70kp8kN5Lslb7CyjfC/J03VbuzJohCXO4UXTT7nBIbjtg39RH2TEYmEl6gJrDiBbkdfBADqc1w== Received: from CH0PR03CA0238.namprd03.prod.outlook.com (2603:10b6:610:e7::33) by PH0PR12MB7906.namprd12.prod.outlook.com (2603:10b6:510:26c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Sat, 14 Jun 2025 06:35:47 +0000 Received: from CH2PEPF00000149.namprd02.prod.outlook.com (2603:10b6:610:e7:cafe::bd) by CH0PR03CA0238.outlook.office365.com (2603:10b6:610:e7::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.25 via Frontend Transport; Sat, 14 Jun 2025 06:35:47 +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 CH2PEPF00000149.mail.protection.outlook.com (10.167.244.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:47 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:36 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:36 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:35 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 05/14] iommufd: Return EOPNOTSUPP for failures due to driver bugs Date: Fri, 13 Jun 2025 23:35:17 -0700 Message-ID: <623bb6f0e8fdd7b9c5745a2f99f280163f9f1f5a.1749882255.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: CH2PEPF00000149:EE_|PH0PR12MB7906:EE_ X-MS-Office365-Filtering-Correlation-Id: 2247562d-783f-42f0-0803-08ddab0db26f 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?hMLJQLq5R35CDZ2MejfgKjhNw5E9jDMAEjjRRkmtk85HmLIoKG5fA+Sn9f0Q?= =?us-ascii?Q?WJFlHhKq+xOojQbE5GRnJQ3UuCeMOnHG0jiUjXvn+K+upONbK8loydyI8K2w?= =?us-ascii?Q?kzn235GhYJpYov12vMNeOTh5HTGubR53adBZvlFEcEDpxrkXwlsP0U8GDXVM?= =?us-ascii?Q?yW9AvP/ORCOJeHdL7gwGQhS7wUjUaEsEyLHe/X3ivhD76kheo7vFvPdW9zps?= =?us-ascii?Q?GR09LF1h31ruqX7ECN+c3mPYeDPxkpD85xY21etbh3x/96JTFn6xnyScEGw1?= =?us-ascii?Q?OQDLuAC92s2oYrLgLaxhl0qazQdkiRAxwHtsQQ4JyCk+hkRUegq7BE0ljKdJ?= =?us-ascii?Q?c3Ej3Llo6nTG96rMlKcl0pn3Vd2BP2XWxzB+oG/TKh04cKlhF6Ei71CigdOb?= =?us-ascii?Q?tmF8fO1U58nWWfSK0qlbU1FFmEYHmSPMhRErA3kb8ZkSOdYjti/sm3ZLfvRR?= =?us-ascii?Q?tInFuM7IpLkqPkSLhbp9JrlW2cfa35rKSuXI/bdBkXQnwNeTrj+1/MyQ4Bmt?= =?us-ascii?Q?YlvPjEDC6qX24gAKlb/onbMONW43UA5U+p70x+FL+9tXke/lPz0LwrbSpwbQ?= =?us-ascii?Q?0LQ0he4wxAdA0a8IRWIzG2+PPFOfjXq+oG7levdZEwFpLYslYdeSpIy0WS77?= =?us-ascii?Q?SlUQjGJ8k8fC9xG+/4PMuzxDzGWDUwIOzZROTxAE8AiMzK/5ceMD4td0elhC?= =?us-ascii?Q?61SORXCpu4uRAU4G3VOWazZCL31dvUnUixPd/rZunTVpQMHNEq+iyI+gz0rM?= =?us-ascii?Q?s5pMLl6VhVI1cmV6z60LXVl08UguNlafqF6hC6RUiNLYJivvXHcOyTCRwaJc?= =?us-ascii?Q?xXHoKA2oagwzz0m4fLpfsLEMT5IBrpTcoDoEyq/Cs0AtVZCvPqxH2YK80v3d?= =?us-ascii?Q?bbZPaQ+IgjpOCoaW6dzewlazfescvrN/z/0tX0fmSRXDBJ26gbZjFbUFTNMe?= =?us-ascii?Q?bV408lQopfjG3smegAAbSA1qWGinOKSZFCNbAqZq0ShU77tL0qv11ZDJIqqg?= =?us-ascii?Q?QF8Hrs2U8RTmUiK4MPUscJPw42XJo0UaT9GUPAH2+SdwhLMTLjU0CIjLnpFl?= =?us-ascii?Q?2OfAYaTuUFiNSJ0Oy+oGEmNDC7Ot5QA8bRQeDFoPnADHrICrrG8Sh91XREgm?= =?us-ascii?Q?1cqC8LU/yzukFt/geOSDO4JuNS65vop2QohjF/58DBCtXHRjYQWjxB2iMmLu?= =?us-ascii?Q?omWfWHtRjkoTrH7cmQLWx7RCPHXCjtxjtw5/eh873/rnybcbep/vEdv1f/iK?= =?us-ascii?Q?ATO9HQx2dfcK9zQ82AVf2o7am59+DPNclf8d+nRYgxZ1LignFbNEcl1wzP3v?= =?us-ascii?Q?QTB/JnboROv9F+8XtEBcyjjc42d6B/0aNaez6Yoznccwsz3sJPqfTIUQcMI+?= =?us-ascii?Q?YIHlKs+4D1kNUeGhCa2+dsbl2r/lM8olHjwG1MsBD57DFYPvkCrJ3aZD/afU?= =?us-ascii?Q?RvffP45Adln2Ittla+9wJA10PwSfqqvZDNf3a6g6udLiLTG2uNcuuOKod/p2?= =?us-ascii?Q?a54G+jZuafQcgHpR7yrfKFJhAxU8tE7C6ZiC?= 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: 14 Jun 2025 06:35:47.1315 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2247562d-783f-42f0-0803-08ddab0db26f 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: CH2PEPF00000149.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7906 Content-Type: text/plain; charset="utf-8" It's more accurate to report EOPNOTSUPP when an ioctl failed due to driver bug, since there is nothing wrong with the user space side. Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian Reviewed-by: Lu Baolu Reviewed-by: Pranjal Shrivastava --- drivers/iommu/iommufd/device.c | 2 +- drivers/iommu/iommufd/hw_pagetable.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c index ed0dc539d490..e9b6ca47095c 100644 --- a/drivers/iommu/iommufd/device.c +++ b/drivers/iommu/iommufd/device.c @@ -1483,7 +1483,7 @@ int iommufd_get_hw_info(struct iommufd_ucmd *ucmd) */ if (WARN_ON_ONCE(cmd->out_data_type =3D=3D IOMMU_HW_INFO_TYPE_NONE)) { - rc =3D -ENODEV; + rc =3D -EOPNOTSUPP; goto out_free; } } else { diff --git a/drivers/iommu/iommufd/hw_pagetable.c b/drivers/iommu/iommufd/h= w_pagetable.c index 8565a6f596b2..fe789c2dc0c9 100644 --- a/drivers/iommu/iommufd/hw_pagetable.c +++ b/drivers/iommu/iommufd/hw_pagetable.c @@ -264,7 +264,7 @@ iommufd_hwpt_nested_alloc(struct iommufd_ctx *ictx, hwpt->domain->cookie_type =3D IOMMU_COOKIE_IOMMUFD; =20 if (WARN_ON_ONCE(hwpt->domain->type !=3D IOMMU_DOMAIN_NESTED)) { - rc =3D -EINVAL; + rc =3D -EOPNOTSUPP; goto out_abort; } return hwpt_nested; @@ -321,7 +321,7 @@ iommufd_viommu_alloc_hwpt_nested(struct iommufd_viommu = *viommu, u32 flags, hwpt->domain->cookie_type =3D IOMMU_COOKIE_IOMMUFD; =20 if (WARN_ON_ONCE(hwpt->domain->type !=3D IOMMU_DOMAIN_NESTED)) { - rc =3D -EINVAL; + rc =3D -EOPNOTSUPP; goto out_abort; } return hwpt_nested; --=20 2.43.0 From nobody Fri Oct 10 09:15:02 2025 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2086.outbound.protection.outlook.com [40.107.102.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 D128B1F8755 for ; Sat, 14 Jun 2025 06:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; cv=fail; b=Ai2/yq0wpPcDePlPyQi42ObFbYkQbRNOF8eWfuX/SUNPYx/Vx32GqcpWWu/NhwbmoOXvJYU1gWlwPLN1AzVhR8Z4TR4ootc462prUtoS7/IGVmvUXfHsfqi3xZ79A94pt12TPdVGl4QypSP6xKN9c5Fphz0zqMQ45ssK7q2zkbI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; c=relaxed/simple; bh=tJaiCLMT2jlcQOqDN0RBkaF4P8GQL1SEyrnnTEn/+8A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cOzEQGiv5SpLCfZPhPO6kmV2X5IB64gZKv+CCJoollHkef6l2pnQuf3sTcPfTZ6qRVdkTPH3p+PjQCAVLzyGqIU0Mp96sITP1YBcWyfNlncgzebkgEXvQOXtXNOKTEe4saz5FiNVc7n0D0nBifBGwsPPH1gy90caFOC4qfhcuxo= 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=KyE4DjsD; arc=fail smtp.client-ip=40.107.102.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="KyE4DjsD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bU0P8wZV1177ty/WPqZOLv9RgijomO6loN0utNiBHThdI0lhq8TSWkCleNIIY6WieBOHvT8RgA9J9iueXJU0QcSgngZ2xVhJMSqmTjWbx4MAajbnuZkrzDrUW9AmsjraZTeeZ0xP0xR4KREUaqFHWpKIRLpzwfA9JdgI+m2laJnQ1mT/JePjglhMD7jRG2UDIgX+zQ3OJIFjt/jHyCe+UJfKjFINN4dqn+8LafGfFaIkqxugvRdfvhf4FcS03Caeoy+H+CDF002Rl3PTyyxG/1GNSbuZlVaS1+Huh7VDaH97bFQ++5cm2yRtwTy4kwTYlwZFurszZR4Dh2S2JMzWnQ== 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=ZSRjyQzfnjA+EbewA3MOv322HR2B3VepPo1rhvuI214=; b=MLT3KxdixU/9hZjwvrQAIZcr0JedjnSls/37d1SzjMEgGhPStiAWtVIOuhYJmzBTdvDQ11QinwoMLoMDNgl7XvnkDvTy+1k8cdXArM8kVdLamLHpi/Vmcv/c1R/FXKOxWQtZBJmUGYvCJeJVrmqrFpebICuVxR7gmCwNDkEgivTQsAHD33mAgR7/t/roANjFsxOE9fl0hFCYUVa5qMc21aftwYI+XdlrzqSQrJLCVytjepAJx4q8DM87Jn6vVMCWyX+paydP87V44Kr869bFqlG86k69+6aY2aWyTks7cSIc5F6rKvU2AvoaQM81tSxOWhoYDWfam0dMbNe/Cj3OaQ== 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=ZSRjyQzfnjA+EbewA3MOv322HR2B3VepPo1rhvuI214=; b=KyE4DjsDSSPpqKO+C6W5U8OqXx4gQTevjaSZFYUL2XgN2eKUfJmIGchxbCq90cMTyyTnEBmV+sGbm1wGJVay+NZUpxqcM7xUGf4inewYs4ell80jK6v0CjUYVxvCHXcH2Qei5SIRhZRHD350nQYXObcdh3PLEURuRRXG9BBBaMAc7L2S3KARLH1CdrZR+s/5iatSElRLhvTU8uUG6b/PYq2ITYgjS2i/MWTH58PLwe32BJZTF1pHUojBUJB6mqI0joyWq2ofpHJP5NnoYMr6Lafksdor4F5TEW1WNARADpn8ESC+UIlQoChL4I7EqweRYMWZRLP1SBKISWQZfiZdZg== Received: from BL1PR13CA0125.namprd13.prod.outlook.com (2603:10b6:208:2bb::10) by DS2PR12MB9822.namprd12.prod.outlook.com (2603:10b6:8:2ba::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.23; Sat, 14 Jun 2025 06:35:53 +0000 Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com (2603:10b6:208:2bb:cafe::ec) by BL1PR13CA0125.outlook.office365.com (2603:10b6:208:2bb::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:52 +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 MN1PEPF0000F0E2.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:52 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:37 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:37 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:36 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 06/14] iommu: Introduce get_viommu_size and viommu_init ops Date: Fri, 13 Jun 2025 23:35:18 -0700 Message-ID: <3ab52c5b622dad476c43b1b1f1636c8b902f1692.1749882255.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: MN1PEPF0000F0E2:EE_|DS2PR12MB9822:EE_ X-MS-Office365-Filtering-Correlation-Id: 851440d2-0d55-4411-0fa6-08ddab0db5be X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?N1JY4VgLKgbO4SAzdvZ4JWkwBPnyrvYCTuRT7jOX3BNmjHsVGXJds5e1yeYR?= =?us-ascii?Q?v6vhPJwom5Is1QlXEmjdGFxg9gxuIe9QA8fxcIGIdGnorg41AhGvps0Y2SY6?= =?us-ascii?Q?Sq99ibQ2NWgZIGAnBDu96etHZhgEAnCK8IqREUrwJOH2bavcnkS+6fVvpocw?= =?us-ascii?Q?871alWgyCuapMFBIYZmmOfP0lIWxGqH6mQ87MGgzTcSqskUuciHYrV3FalQK?= =?us-ascii?Q?tEevIzHQK1fla2qnFZrmYRiXg0Jc/aCxREwbVjs6tY/n0+thXyfaMZkxJWnG?= =?us-ascii?Q?k/NJePSJw2GGvZTSIhTos7FtnMk18yiu44HNw6g4w7MPc1SV43j5f2DISnUq?= =?us-ascii?Q?3KpNKvMsogu3VZ/mhbkjlJ5hyRLW0QFz1HWPFCPaaoF5/sqzHc9jYVAnyXun?= =?us-ascii?Q?cyLrepu+P/5wih0ibjISxBO9odFLvX+r/fQzO+u0PjoQiCD56iDmrA1cOP9d?= =?us-ascii?Q?O78ok4FjwaFmjTWrUw53dowPNUGcka0qWsSogoc7hyjn5GjuABhVex2YnlzY?= =?us-ascii?Q?YrPTUZHfh4Azzd15f//7RyPQzgapg0ihfJBKDAVkme4Qg7AACE6fh2JWmtX1?= =?us-ascii?Q?efywW0Q3DTawMR7zvlkpoeQBZ1fT89z0jp/sMpb7xAaiRehSWPZOHjJwW7hi?= =?us-ascii?Q?0K5dfUrfbLpEqkltwEeQmkynZMhJqQFUgIC8FXhjIp2T0scFwtgDIEzUpU2N?= =?us-ascii?Q?MqUmvFnGgZol9jBGD227qZSXxfynkO5EXDD4W3cG5LGqNIsjo+6vD9BHpkmL?= =?us-ascii?Q?erhvIyvfH74dRYYKbc4AkUeBYNpTGrg8A6b7rv1bj2RGW/j3Zc3MzlpOKJH7?= =?us-ascii?Q?z9524d6j+QVF4mIIQFhGisknyb5ThxRFZgWCmxxd+gzW/RIeoYMptWFoW5f/?= =?us-ascii?Q?02RrmY8GZ6a7RaZZALujjweHbQRNr3LsX3D697Vo9jM/QN2WMEiQzLBJ+U8W?= =?us-ascii?Q?aoopqeS7MHL9MAN77QRrE5z1GRgLZYS8z92XgEntgkYfs31Bpq65BehhDPD4?= =?us-ascii?Q?gpt0kZUl2qxfpZZ8xA5ivFYYkQi+gNnR8z5M62cFBf/h5y7nVTj8tPj6v/Rx?= =?us-ascii?Q?2UR/k6IpBnFcs6pDttCzY80yUt0LihWrhD+vqLCt2ck+or7eZWMtMJT1wfn0?= =?us-ascii?Q?oO5WTRuOIc+U1X7eh5QwugE6CDKRNa36RQw0qafvzeJ9M0ot9adPaj8kiQ8H?= =?us-ascii?Q?AGYPjpoUzGuWw5E9tZewkOCO5VC4NaZYIZ90AFziQCH6QzZjWQ8zrh4L8/m3?= =?us-ascii?Q?q9pHxszqXkNSFovL4mx83QEFCa9o8y1GC0h5EyEayV0OTsnKETLe5FwwjfVT?= =?us-ascii?Q?xCm3dQRy3QGZdoSEUj6klDh9MTVRGzag8xa1LZo+ufznYAD2iH5dNe685xUZ?= =?us-ascii?Q?lHrPW4u+pQ93bCCrCZy/6lK0BGUkK0jbclhHspmeeZZxjv1QOHrj/PbWkj9v?= =?us-ascii?Q?kHI+aUxD5KVUl7RV51Vb1WFMoI2m3eZ10KYgcK5My7h3mE7Q/A/XzTZ22gFZ?= =?us-ascii?Q?Okrz+z+iorg4NsuKkFY3vLwsfrHOyJUmyuZz?= 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)(36860700013)(376014)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:52.6522 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 851440d2-0d55-4411-0fa6-08ddab0db5be 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: MN1PEPF0000F0E2.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9822 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: core: viommu =3D ops->viommu_alloc(); driver: // my_viommu is successfully allocated driver: my_viommu =3D iommufd_viommu_alloc(...); driver: // This may crash if it reads viommu->ictx driver: new =3D iommufd_new_viommu_helper(my_viommu->core ...); core: viommu->ictx =3D ucmd->ictx; 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: core: viommu =3D ops->get_viommu_size(); driver: return VIOMMU_STRUCT_SIZE(); core: viommu->ictx =3D ucmd->ictx; // and others core: rc =3D ops->viommu_init(); driver: // This is safe now as viommu->ictx is inited driver: new =3D iommufd_new_viommu_helper(my_viommu->core ...); core: ... 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 Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian Reviewed-by: Lu Baolu Reviewed-by: Pranjal Shrivastava --- 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..9be4ff370f1e 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 0 + * if vIOMMU isn't supported accordingly. It is required= for + * driver to use the VIOMMU_STRUCT_SIZE macro to sanitiz= e the + * driver-level vIOMMU structure related to the core one + * @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 + size_t (*get_viommu_size)(struct device *dev, + enum iommu_viommu_type viommu_type); + 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 Fri Oct 10 09:15:02 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2062.outbound.protection.outlook.com [40.107.237.62]) (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 E13C71F8AC8 for ; Sat, 14 Jun 2025 06:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; cv=fail; b=VMq2RDAwhQq4Y10f7QAXOQg466zomvUmcu+F2I6DsTq7DB/vL4jv/CqHbYlftoaFEtJh6+Ulik3P9cie9ZMdo/m1xc4MBiRFWXnXwgQsnQcs55b8ksrENlPMmV7mntQ1teTQf+EI67ZgOkwd6+Hf5+CyDBQwuihZnTG3d77S0LM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; c=relaxed/simple; bh=WKMItX/0i0FRUXI95pLPkPcGgoaJWE8xU2T708TAMZY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZPYMyMOG4090fjv5m09h7idYiFEq947diASGF4DdpT9cFGgXO6M1sfJBpBwwrghQkYNZxHjWdl6R8nXovizRNs4nlyuTw0UlUZli3g/oue7iOdEDchhAYRCpkgtJ7vGGpjAK1aG+EydWgGiu3N55bn+0VZ6t4l+MX6gBchRAOlg= 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=ZW8r6TQI; arc=fail smtp.client-ip=40.107.237.62 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="ZW8r6TQI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b8QMhfDTZwy5eFSubnXa1ZQ5OPhHuL7hQhLwe9W+XubjCes3rbBprih6i+TxHikay8HPl4O6YeI++vMWDmB+Ii4RX5s+GFwdd4+mgNCok1scFBcfXCsMrYmLyW0HfQVN+559kGd+VOOQrcU33LQ3q93NDS/NRviHQZP0czdh7og08eHIte2VvARG+6LLXyhz/iYen7iG16+4iWk3RT9Pi9DMyROmAFF8Gjw+Z7Xtlukeo2yuY5vdEeSlewK1Zzg3dSuP8hy2pv8YKc9vIo7SaQ/m1DGOLA7SklpiIo8PTKM1W2UjQF7bVv3B9seInfgpAeg8217uJYdnKHtiFVl4Pw== 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=LstwTU0sPtdKxub48BtLSzz6XQmmMJhh4IHJYdY9nNQ=; b=CVuxNihWOZfA1LfreHBjEBdkAQsL1HvEoo5efa6DcDm5882yRZrimmm6psVDhCQUNx2A9WDQ1grriIiE6GHXXSzHSfQx6s+XNxrAidXX8EAOsjwtvxT+cEBGvaumM8mqpr1S8dSdgLDu9YgvyQghTO7GTrPcR8HnCQvrfLMGcEpOzeb6ibTKUXQcYEsMUDq/j2crHBEL3a4x/uiNrd1zfBMzbGVrY1VafYmQmorDH/sHt4gYCtDz2JGwyCaKoASTw7ZNkIYkJuEL0tpWoYhYZRPhKzI/mIZJ/a/KohIgOR0t03Xc3WZznjCfZsMEkbNLLbIYkam856pW2Lb0z+lxSQ== 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=LstwTU0sPtdKxub48BtLSzz6XQmmMJhh4IHJYdY9nNQ=; b=ZW8r6TQICjLMJ6nCgBhma5mOF21jQsZ8Yy8U/1Y8iXB3XmKv+5TKAAxjAIjR4ofypZV0wwe1QFf/979g+FiUf2bDdgtGZ5fxroALD+1YG+/4Dv9Q7F939ndwFSpcbddFDlPYaAp3hrLHLXlvE2b2NgtRAKaXHkEDjdgk3bUoJTjtKDUGu7SC/7qhezJlXW9woL2G7+f2uezMzxe0uNxAFD5mFIp/eiXoqRhWCPxFcWYtvINqKxI4dhBRE3Fu/ajd3rHTZb3ciG9bHVaiAf0AT9YnkXsTVzOhj8EBrqZKf+WE2d0v0BwrVOvmyIqa9UBIfBiXnynxBT2M5rHA4pMr4Q== Received: from BL6PEPF00013E0F.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1001:0:13) by LV3PR12MB9440.namprd12.prod.outlook.com (2603:10b6:408:215::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Sat, 14 Jun 2025 06:35:54 +0000 Received: from MN1PEPF0000F0E3.namprd04.prod.outlook.com (2a01:111:f403:f901::4) by BL6PEPF00013E0F.outlook.office365.com (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Sat, 14 Jun 2025 06:35:54 +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 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; Sat, 14 Jun 2025 06:35:53 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:38 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:38 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:37 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 07/14] iommufd/viommu: Support get_viommu_size and viommu_init ops Date: Fri, 13 Jun 2025 23:35:19 -0700 Message-ID: <35c5fa5926be45bda82f5fc87545cd3180ad4c9c.1749882255.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_|LV3PR12MB9440:EE_ X-MS-Office365-Filtering-Correlation-Id: a7bf9c32-839b-4121-f5e6-08ddab0db681 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?G+NjaIuUn759s3+Sl5XXlYLBMxtEKbD0ZjNKwfQ3nuAcNMH7AlJ38U6FqSWA?= =?us-ascii?Q?/LpWBO7tNJY1WLOMmuyqHhqPW0nOZ3adbHA/qfBV0CCLsl7NxP7qUdKtHgYg?= =?us-ascii?Q?jmyMEY9m7CJRvSbraEfZK56I7R+i00q76UqqxUZIQv9aQNrr4Aa8KBR2GKbI?= =?us-ascii?Q?DRVaBDMALssM1MwDE8IT5jL2eO6x0ezOSvCzfdeLar23pmpojzPu2jBhq4g7?= =?us-ascii?Q?FuXPn5NenBWMYZXHIqPR7dNRRp52DQN3myZYtUZIzaKrsytCeplu0b4VUjs0?= =?us-ascii?Q?obOuOrDB1PtI1Y+MMrpYuGUVmTLgXEdWsjLRRbEA028itRg09TgKP87xxiT7?= =?us-ascii?Q?DqHSiPoP09wfGHmNejPM8xQEHkVyfP9LfJZ8SdTsCXnDBIIvW2dKUqRSkWqN?= =?us-ascii?Q?mqEgA5fkEQFFyVoxpjJfZ2W2k4kOLE4qFp2yZ6cljyRhj6qP2GOWuGJuyNXv?= =?us-ascii?Q?X6UofVasN9t6XWmWv5odcVYrVCt8SxLabHJD642ZiEoXfM7mp6k4MC2NQZPZ?= =?us-ascii?Q?0wyx3nqUERULWnjDpOfQhkytQYmj/dfflM3wVRV0J7lGiXipzNHAn6/e0Umr?= =?us-ascii?Q?tFIrUw2qyzLo0AbjQCAXtPPUjV2XcuGHPB8DmgfaJ3depkRQdQGf6ulZatEL?= =?us-ascii?Q?Whdb9f+W96c1fLU98kMnw3HJOC/sIZ3gv+Yyx+SuRFsC3ioo7wOCrn/dKX+5?= =?us-ascii?Q?+r8VkcJU4iQYBii8l2Bjfk0rCA+nYVrAxz4L5mP/csMfhbBAq3jjO0EA5akz?= =?us-ascii?Q?ekLyGjdqNrL9AoilEL3mtEJq/+/DeNBRZQGND/Y+VYSXMnr79CVeZaxU3aW2?= =?us-ascii?Q?JbRLo9QzUubfAFLiCc7FK2TnkeL/8G51L0+koupMjU0RUxNiqCz1wXxeZwTt?= =?us-ascii?Q?iRQn/cM+MChejtGPqqwW7cu1vqN3vUYjEsFxr9D/zoWdwkxwxhxQGbtxh3gF?= =?us-ascii?Q?u0sm66lfeYYK0FQyZKxKHpNdNWW88gMZjDhctkKNw81qsE/Xfuz6ZEDEANtl?= =?us-ascii?Q?e2FjJIyukFowIFKwKicwpBope9QvLRzXQmSfq5P3yYxNqMX5o8+hnZTv5sBD?= =?us-ascii?Q?sZ/cVqGFfsAjn1ydh1FsSg7geppXuO1xKiR4yMT6ujXRsrdGDQPL0vfaMZTl?= =?us-ascii?Q?MeyOdP+ojd9/geloftaYgfPff4F6wPYVrhTxEd1bJiu3CL1F11hHoB1IpaLG?= =?us-ascii?Q?0guc9ldYMGsi7NMzXGdHjoSdjs0jT4phOefYnodsNYioQII6dxWiEgHUzUhI?= =?us-ascii?Q?TsZAGCVqcTsf3isZQxzh66aWULHkOUwboFPjWpgp3gEhx2HZclYPpxm8lFU2?= =?us-ascii?Q?SRLCl3MKV5B6qcJSyI4IckyBMQdDiLmWkmuN3ev0aDJSSJin1fQBWFobrxVV?= =?us-ascii?Q?OHieaSZicbkOknWWQGKVF/UPZ3DiOitbyiY/m3IeZVqUK0CLdLDL1veXocv7?= =?us-ascii?Q?8aPvA1M6/5Z0Hq4mOArOoFNSYgXsKvSUSDAWZapQ4xMwLRJot1hzebmRFDuy?= =?us-ascii?Q?8jOpu3++lTHeO1ycavrHUWv4gSAX6VIYCNhi?= 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)(1800799024)(36860700013)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:53.9381 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7bf9c32-839b-4121-f5e6-08ddab0db681 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: MN1PEPF0000F0E3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9440 Content-Type: text/plain; charset="utf-8" To ease the for-driver iommufd APIs, get_viommu_size and viommu_init ops are introduced to replace the viommu_init op. Let the new viommu_init pathway coexist with the old viommu_alloc one. Since the viommu_alloc op and its pathway will be soon deprecated, try to minimize the code difference between them by adding a tentative jump tag. Note that this fails a !viommu->ops case from now on with a WARN_ON_ONCE since a vIOMMU is expected to support an alloc_domain_nested op for now, or some sort of a viommu op in the foreseeable future. This WARN_ON_ONCE can be lifted, if some day there is a use case wanting !viommu->ops. Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian Reviewed-by: Lu Baolu --- drivers/iommu/iommufd/viommu.c | 42 +++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c index 01df2b985f02..27a39f524840 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,29 @@ 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) { + if (ops->viommu_alloc) + goto get_hwpt_paging; + rc =3D -EOPNOTSUPP; + goto out_put_idev; + } + + viommu_size =3D ops->get_viommu_size(idev->dev, cmd->type); + if (!viommu_size) { + rc =3D -EOPNOTSUPP; + 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 -EOPNOTSUPP; goto out_put_idev; } =20 +get_hwpt_paging: hwpt_paging =3D iommufd_get_hwpt_paging(ucmd, cmd->hwpt_id); if (IS_ERR(hwpt_paging)) { rc =3D PTR_ERR(hwpt_paging); @@ -47,8 +66,13 @@ 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); + if (ops->viommu_alloc) + viommu =3D ops->viommu_alloc(idev->dev, + hwpt_paging->common.domain, + ucmd->ictx, cmd->type); + else + 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 +92,18 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) */ viommu->iommu_dev =3D __iommu_get_iommu_dev(idev->dev); =20 + if (!ops->viommu_alloc) { + 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 -EOPNOTSUPP; + 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 Fri Oct 10 09:15:02 2025 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2064.outbound.protection.outlook.com [40.107.95.64]) (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 D5EE51F3FEC for ; Sat, 14 Jun 2025 06:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882956; cv=fail; b=CWIwG9FNORJsSDItmQdMdLZZftT+bQQe3VWXbxo+YEfCBEX7bJyYqRNBIFB+txAaQ0zOSUNi5WfJS9BIzH6vprr8Gc0CWOmA26C1rWWGB8nlPCybc8ORLZ8fANuJjJJQGhA6gquYacWWzFyPc8EJygGH3U+xATeNCzMwO0134kQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882956; c=relaxed/simple; bh=6bN0pbOnd0L6tDutTofgFEm72F92YEOJLXFeLW56EiY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mrrhc1RwVkfY/iRZRiPthC3FaVyc7VggH6MIF6axSDM72Yva7TZTKwlOUFpbWB4FZbfoNthBQu6268m0Z7+/g+tbQYYA1C1G4UswKMwY14EQORtUe7Z64hMOHlBIWNegk+BScU7LrmRkZCSNJJfrLQuVa99Gi5YpIGnLKLr2cvE= 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=JtYFfW37; arc=fail smtp.client-ip=40.107.95.64 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="JtYFfW37" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Pobj16MuErufoBJAquWsqBsk8HZ2HfQi6Hri5q+OvHnY3iGtYmi062ghLHBsapzPG1j963wGxU2ynWk74dxcvyO4NvfoPDfklC4uEHX9Kcd2S86yjx57ztqBCNop72xrBsIpPOufk4hcPcUEQWowKFfGB8s/XoVfhm1O/3Kx7fL/vtpXtetFuLzA0lru2Jw/7eWkUE70WWB80bwgC2sD91c3LAvtesa5oqMXL/7AzEKWW3P2LnxriqFYyWmn8RRlK17Kr0hrIhaHIspXVxy3t5UwlLdO6d6K9TmhTGUOoxT/Y3nYiLU54U9GGGOQIJ6XYllFEp963PbqZEHoXOIiaQ== 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=0orwlMV4T32YBujd5s94+4y+QxAnqbHfwN1DgF+vnP8=; b=EVJ6oqjURl6+5Ncj5NXPfjl8Yfxv9eHGVMBUsRxsqkao4A1m9umnWslNw5N6DfKOuyPRMoCqeCtaOnRnPMOKtpVUmUetg1fTVXCMpN02zuDFRjTYyqQNK8JuRK7FMS9QFb4VOJMb36y4CL9Lf1I+Ccn45Xp0p92bpi79Xxk4CBv/lqsCHVZmBgvO7MCBWVOf2jMIJZ9W4UEzonOef28g+QBfvZkhLrMADPjRjQ4Nf01QMKXunPEBqgzb4H4K4DJqmAfs2nldORm7LeziWT3s6M0UlPAyFbK0dHtgB2Tg6DXFmAloj6rxUEy59KbMD/nwk5I3MtyqWbXo+h2slVSKqw== 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=0orwlMV4T32YBujd5s94+4y+QxAnqbHfwN1DgF+vnP8=; b=JtYFfW37uc96yWH6IzT47wScrpSc9/V69zgy+XVvuAwAaIMaR3H6yQ6ngtJOTjjfysqS4Trg9LpSMbLAS3SDtEglO7kwMVa6b5QyRYr+SN3zszqNTJwAqDohmscubPqNzec1ITf0RlUIrhRbeauxgoRPzFx1l0sV/PPzACqxmXR+U4487dI839gn7F8L32jLRuaoUz09Qhz3R/HyAVp8yAMbOg0+nL6GBdU1Wh9xuWF6n345qyqucisfASYnXiR0WijqxCv5LNluxXKKYTSfsgibOANwkjxkIkzXwcpYYNdnUtRQ9P0os91lrdeRr3Eptkp7U68HEmybjTSWD0wd9A== Received: from CH0PR03CA0289.namprd03.prod.outlook.com (2603:10b6:610:e6::24) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.19; Sat, 14 Jun 2025 06:35:50 +0000 Received: from CH2PEPF00000147.namprd02.prod.outlook.com (2603:10b6:610:e6:cafe::6f) by CH0PR03CA0289.outlook.office365.com (2603:10b6:610:e6::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:50 +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 CH2PEPF00000147.mail.protection.outlook.com (10.167.244.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:50 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:39 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:39 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:38 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 08/14] iommufd/selftest: Drop parent domain from mock_iommu_domain_nested Date: Fri, 13 Jun 2025 23:35:20 -0700 Message-ID: <0f155a7cd71034a498448fe4828fb4aaacdabf95.1749882255.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: CH2PEPF00000147:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 30e04c5e-70dc-4544-54ac-08ddab0db451 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sJYWo0kUVFtpU4Dwj1xeQU4xjWUPwAUaj9hcVqaXVPtCPZQorDnpEkPLpiGu?= =?us-ascii?Q?JKpyLZWDvSu+9f2sIEXO+chr7i0ZTCgggL4k0G8Q8ILslW2/Fm10K7Xze5Kt?= =?us-ascii?Q?n5NxpcRTsfm2C8LgnbwXPsFhAfZlWO0VlVRKfIr7SOE0ZoJHmnmqb1x78Jx/?= =?us-ascii?Q?WEdac2X0ONbP0sJCOZlZMINd6ZoboGRgk1l1wlprw9lGgftvb5PRvWJSTOKc?= =?us-ascii?Q?NZK3z1XaJ7i0fxZYD8o54CNpWJya7fEdrGa+VxCMNP2efu8Rq/ZI3Jj53ci7?= =?us-ascii?Q?esRpr4WOd0PS1vtkM1DRLAK+G5lz4S/IkBHTeHgo86z/RNbuOyglYuHiWVje?= =?us-ascii?Q?Ufyx1/Ckkuc49dE/xhAhEFWafANJox25lnzfduc8Qznn4gk1P/c2u3f5xg05?= =?us-ascii?Q?k9qPzI9uPUiE8vKh8N08/iN7vjt9pTgC7Ls44IMJ4LJA8Ku5QkOghyt9zc2t?= =?us-ascii?Q?J0oFpcr1UTRQ8PLMLwyR+W9SNbyOEgqN043tZFIX24pq101OA4ajRnSYrUqA?= =?us-ascii?Q?LupCO3l3K8c1Rs4WZWZO4lag3lecZgVxRTk9PU/GVr5LZApRQk6SCBMmHhoZ?= =?us-ascii?Q?SnSb++kRYCKYtxwbFaSEKop7DVOEHQvq91lfwNPbdHBUbtxBW4ugtSx5tu+M?= =?us-ascii?Q?NhovxdgPgwUi3G+ml/btV7guMbHVfziituNCo+qXO7neyCKHLvoWw+UpFgPU?= =?us-ascii?Q?9yILnZ/9N5Ne4ASUHNQx72+pTDh6MsTXbJquwcwB2FSpQt4c2QBhaWgKU5UQ?= =?us-ascii?Q?lyvNQepJ+rydLqL2ap6QJIG8W4P+r4+mmYI3Rkj0DERrmvU4jIiBm3mgWMHK?= =?us-ascii?Q?LB3Qu0D8+tPFZEp8q03MOzH3omH2ib+Y7wCoqDo78C0fdDiFbEL4AJDXTDuu?= =?us-ascii?Q?P94eiePJkbWnzhlVsX6KX0DEhN74pFvS6xtHzs1m4r1QxS0J5h1Z8fVxYjz7?= =?us-ascii?Q?a9jT16k4NvlZ9jLfCSHM3qYhy+PHtsYXp87sqQETLdbTM6uqmbDtJ0nlsq8O?= =?us-ascii?Q?qTy4/pHIul5f2fiNPTGgad9sATjykqiJJUbxC1CnvTmQvCuxUoWixOxeCZd6?= =?us-ascii?Q?eL+TkLaGlIIyW4lfVJVroPnfcR3m7iKWqV2OKpiYkhStcdFhMnXKaUyj1iG7?= =?us-ascii?Q?+VfvAVG2Z/2rUzcZ85VM7PzuMfsYRBP4ROgnepce/ZdeqsXNGLVO8REuB4Gr?= =?us-ascii?Q?o+PbQgORPmcVaO7YoKpPk0sFmyu901H5GeSyp8IbhcDOpwQ2+rmRI6FOKi2H?= =?us-ascii?Q?2ZYl++9SzHK81WjuTPjniLGQWjKa4MHhmQWNjuGpCwyUMCriwc+zUXL6UNXA?= =?us-ascii?Q?iz6sW63e/SdzQs2ICTe5GNiPU2f7Kmw9/QpgnAvWAIcxvc+gXq8zGHAWT3rn?= =?us-ascii?Q?SVbq1J013qNizwuRCIRjhqiKIIFXiqYpzTopHLhVzW1o2RZnAXPTtYccHApV?= =?us-ascii?Q?Vj2LHmHLOF9S1IQ+y6D3CMRwmeKO6KDD8dETojp6PVgWOdlJ5oxDC04rtext?= =?us-ascii?Q?D4FZgxUWgndVJgfazHqJmJE46FPhdLFMqoiw?= 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)(1800799024)(36860700013)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:50.2991 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 30e04c5e-70dc-4544-54ac-08ddab0db451 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: CH2PEPF00000147.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 Content-Type: text/plain; charset="utf-8" There is no use of this parent domain. Delete the dead code. Note that the s2_parent in struct mock_viommu will be a deadcode too. Yet, keep it because it will be soon used by HW queue objects, i.e. no point in adding it back and forth in such a short window. Besides, keeping it could cover the majority of vIOMMU use cases where a driver-level structure will be larger in size than the core structure. Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Kevin Tian --- drivers/iommu/iommufd/selftest.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selft= est.c index 4d5dca8027b1..f9cfb3a20860 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -138,7 +138,6 @@ to_mock_domain(struct iommu_domain *domain) struct mock_iommu_domain_nested { struct iommu_domain domain; struct mock_viommu *mock_viommu; - struct mock_iommu_domain *parent; u32 iotlb[MOCK_NESTED_DOMAIN_IOTLB_NUM]; }; =20 @@ -434,7 +433,6 @@ mock_domain_alloc_nested(struct device *dev, struct iom= mu_domain *parent, mock_nested =3D __mock_domain_alloc_nested(user_data); if (IS_ERR(mock_nested)) return ERR_CAST(mock_nested); - mock_nested->parent =3D mock_parent; return &mock_nested->domain; } =20 @@ -692,7 +690,6 @@ mock_viommu_alloc_domain_nested(struct iommufd_viommu *= viommu, u32 flags, if (IS_ERR(mock_nested)) return ERR_CAST(mock_nested); mock_nested->mock_viommu =3D mock_viommu; - mock_nested->parent =3D mock_viommu->s2_parent; return &mock_nested->domain; } =20 --=20 2.43.0 From nobody Fri Oct 10 09:15:02 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2053.outbound.protection.outlook.com [40.107.244.53]) (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 8835D1F150B for ; Sat, 14 Jun 2025 06:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882957; cv=fail; b=txckN6BEVkbWSYlk6OZ2oD2Li8Nd1NQH+bSnhCW/HzpAanzkjmYGHJrJBO5eRgqIoEcT/4PjsiNgwDctaubzX+d4XtbZSD+ZuS1CzQ1f5sdIec2BAQ/0rRAS/rscW64HbmmZC/0jUV/jj687vWjEhRIQpdcOd6GIDQi4ljUlevE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882957; c=relaxed/simple; bh=+1X9ZibP7vy4fhtD56D9FSpp736ceDxz/xtuhuAMtLs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=I4KEjTFOCwpHrikAPPWTDEZ5GhFxLr7t/rLYdCBQwZ5M9ETa9bb90zN9MAOGZ32XFhUkTdv30MzwoqHlUSL3qt+M0S3SSPcs+p1ybGR+6FvZS0bdZuJKuft5BCxZupvOeCEigUm30Wro4EXD/SLqePcjDo+BjHDe7aIDTh0vVrM= 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=gpuTujhA; arc=fail smtp.client-ip=40.107.244.53 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="gpuTujhA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gw/O2+gTkGMtEC06IvPyTCppoetktG2itp3aFE8YowTMG72QEzB9QWPIL1A0+ajh5+qHorovQ4WsJO2w5oxtVDpzGHg34Fh45nLMjx0LfuB0eNDSoFRItN9DMzuva9k2MOAwbzQkadaId9FoYx1t9W8bXaMBOD9KitrP0K645SR79dt8gM33u2zAwjMXmUmqeH85qCLCzT89aaTR51SGm3MfG895UNv4CIaEqCwVdMORoKGTghq6Dq0IR7Fs3o57aBPDqMjg0kfZJyuG1W3Q2hjewn/c7GQKqW8X35873XqSczuz/mAOGkMB9hDKZDebQbQjKF8xjuWFcTmWJSALPA== 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=/ONeKY+WdpmnjdHCBDrcBuPJxg6LgQn2VyaSVR+2Gys=; b=XRTpHPzNCLlfL21uEUIdefLZbUMBZvAjTrZm71zCeexFf1JlDal6IANdVu0uH4d1m+k99gne//3D+cVFHYPJPPqT7x22tWUlBI4Lg27FKukIbdWSkrqjHzMct4ZNyLQBTC24KdIS84xXbLCmj9hGfeDRlrdLSfzMLu3zfqA7yTJvqqgadPPG1uIfYt2wBQXN62pT+Eg4jHhagyyAeidaiudOQGrcP7QyAtL24IzMuhFYnZ/IFS31fZEKtGpq8wmmZq0HJDLmXGr/L+8Oh7ZxUS4EC2egj0EabvsNRzw7tYkZWdnMlnmZ6hvqn/K7lp7bO96Ca2prJj10PNnNr+juqA== 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=/ONeKY+WdpmnjdHCBDrcBuPJxg6LgQn2VyaSVR+2Gys=; b=gpuTujhAyjoP6LkXKd9j3X41TcxeEX9RyWnNfayUK0AsTy5pCyuwxtFiSHerWltRKua+oeiMQGnqxWS/b7oU7VRP4Hiv9ow7hSW4t6j8Y3FTWq2pbUXKg3U/8H+DYTIZImQGcN7ju4D6y5oRJtndKMF2E8nciQ0GYUzmiH64Flav1IelRW7d50EDBPMyvy9eFMciCdSG9kAj9Xz/TH/OOpvHRbM/DMtWYu6F/DRLPa+WdQ5a596KFLZq/JLFc+rNi0Y4P01iaY75k4/BljeUSwUxi+8rnG+yw4f7MdwbQUIETMT/ctEFsIs+9am+Cb4f+o6M+INzmZfvmpcZBT/duw== Received: from CH0PR03CA0300.namprd03.prod.outlook.com (2603:10b6:610:e6::35) by PH7PR12MB7967.namprd12.prod.outlook.com (2603:10b6:510:273::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.27; Sat, 14 Jun 2025 06:35:52 +0000 Received: from CH2PEPF00000147.namprd02.prod.outlook.com (2603:10b6:610:e6:cafe::ba) by CH0PR03CA0300.outlook.office365.com (2603:10b6:610:e6::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:51 +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 CH2PEPF00000147.mail.protection.outlook.com (10.167.244.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:51 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:40 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:40 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:39 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 09/14] iommufd/selftest: Replace mock_viommu_alloc with mock_viommu_init Date: Fri, 13 Jun 2025 23:35:21 -0700 Message-ID: <993beabbb0bc9705d979a92801ea5ed5996a34eb.1749882255.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: CH2PEPF00000147:EE_|PH7PR12MB7967:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b204b24-a908-4430-8462-08ddab0db506 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|7416014|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TmV4yeBDlyZbbSR4GHKAlZm3UUJenL3eu6w+GlGzGrCugOsqRW/dH0Dy+UwU?= =?us-ascii?Q?96DhOxu5bhfZvW3u8WrqPYxdl0cptb5ISzf9DUK6xZ3jPNPZXg7eETJVjFbX?= =?us-ascii?Q?+tC2jyFHbk2XR2zw0YK39Qk0FrO5pD6boH3+Dg4nhwK6eVBbIES3DkPlqxmY?= =?us-ascii?Q?nAwslPF8lRm1PMzfhmhyiUVPld24Ote/oxsvGmE6sjf42kgwMj3UXqUl0P99?= =?us-ascii?Q?DrSgbXuKW8/K7AxqCYNbIeHuyONhFtO/nL6vrZ8NgQQOepDFYaTx7zFopmfm?= =?us-ascii?Q?3N6Dukef8dnXyWBgC2TI3Rq62xy7MZJ2uk6gtbi+kRce9jAhTL/JORekC4Dx?= =?us-ascii?Q?a5xZSpwANk2K8Umc+ab1c8+OFIiVqlMpVMrzi10+u8JgWtEzonsBs7yHZIdb?= =?us-ascii?Q?ZBELmkkOUjF5QWhGbPb52JZWQdWvnShHjODu4MZAA9k4Dvt1RT184VeIzCtv?= =?us-ascii?Q?z+joYL6/smPYyxrdfy7usR4xx5iYLvYkuzNXM721ToTG2KvZMZopF5kdQSd7?= =?us-ascii?Q?ZjDLKkyuLlhDE//+7VSDLNWBpNkC+YWvefnydjMtK9Gn5x/mE0f8LVqCQIqf?= =?us-ascii?Q?dCNvZKuRMjLOc3/FLiNE94SVm//1CDicLBq47FTCpcnXpv89uyvD8FscON0v?= =?us-ascii?Q?7O8o75+aSjnrJ04GhCo2HgVL7VzYpmD6L3utQYfdYW+MExkft0yfXfKZ81/v?= =?us-ascii?Q?6My+yTFVkj0lSBmSlgY0f/5IkvEVI+XLvUHlOrzJqq8f6WDBVRY1ZIoGayHi?= =?us-ascii?Q?RVjpGOermeEQeVzYfeI7AxHMjXzUEKf9skhhTTYnfiJDEVatUuROh1WkVf8r?= =?us-ascii?Q?ZWByrEpuNr69/AK3CSYVKdOlxFud/EKUP0ms0VTaU3oWW6amLwXd0kXneu5V?= =?us-ascii?Q?a0cFQbtWT/VicPyv5QKFPdw0SYGDqFzbic9aAmUNdAowOHf4liUvp1Hii1Rw?= =?us-ascii?Q?i2MtwTCUbi4k9yT63hWOr6Dq2/7+WWFVuyPnGl5ayg0hbsSx6+ZBovBk+v6Q?= =?us-ascii?Q?T7h2RJbDUPf9UjMJ8WnD22jKJYcgIaj/2VsUZ1ps8v0+afiB+w2Z+aW5FjwR?= =?us-ascii?Q?SC01NysDvr4PsheqKmywrvoVADB2sGHVt/bFK9t5vAt8xmSRMQ4kqzfLLQ0Z?= =?us-ascii?Q?uqmnsXvWrSv5a3Quw+2/dlwUYHhzSQ+rx3RvXiuH0rpXNdON8PJdqP+/txYR?= =?us-ascii?Q?gaYIbrT3x9Tg7ktnRO/3/YDPXeCRzYWs39Gft8hZiPPB7RX6pZas5k60Fnl1?= =?us-ascii?Q?WVU57BPg6sloHdv3BLm3DZ9T5zo6F+eaJ6ePeg0LFAqMchwQYiLbSOcc+BmB?= =?us-ascii?Q?CQflVLqToxcJ0Qz4+BjPQjNrHmDMlVjpI+dsVcO8gPWgdiiHDNuCqPrDxlTO?= =?us-ascii?Q?WGr/F6O1z6YjpdVeVHlr4wdoeim6eKrPpR+qZuSshVViLPy6LyQHFXkeGpj5?= =?us-ascii?Q?198/i9mbm8uqkQcp5d9cuAbO5vSpMIVwxXC1NWOGuOGkZp/vxSE4vOc3vfpj?= =?us-ascii?Q?28Y3Z1cAKBdS86i2TbQnNW9T0t5aBfgj8XaK?= 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)(1800799024)(376014)(82310400026)(7416014)(36860700013)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:51.4907 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b204b24-a908-4430-8462-08ddab0db506 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: CH2PEPF00000147.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7967 Content-Type: text/plain; charset="utf-8" To ease the for-driver iommufd APIs, get_viommu_size and viommu_init ops are introduced. 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(). Remove the mock_viommu_alloc, completing the replacement. Reviewed-by: Kevin Tian Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe --- drivers/iommu/iommufd/selftest.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selft= est.c index f9cfb3a20860..74ca955a766e 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -769,25 +769,23 @@ static struct iommufd_viommu_ops mock_viommu_ops =3D { .cache_invalidate =3D mock_viommu_cache_invalidate, }; =20 -static struct iommufd_viommu *mock_viommu_alloc(struct device *dev, - struct iommu_domain *domain, - struct iommufd_ctx *ictx, - unsigned int viommu_type) +static size_t mock_get_viommu_size(struct device *dev, + enum iommu_viommu_type 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); + return 0; + return VIOMMU_STRUCT_SIZE(struct mock_viommu, core); +} =20 - mock_viommu =3D iommufd_viommu_alloc(ictx, struct mock_viommu, core, - &mock_viommu_ops); - if (IS_ERR(mock_viommu)) - return ERR_CAST(mock_viommu); +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); =20 refcount_inc(&mock_iommu->users); - return &mock_viommu->core; + viommu->ops =3D &mock_viommu_ops; + return 0; } =20 static const struct iommu_ops mock_ops =3D { @@ -807,7 +805,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, - .viommu_alloc =3D mock_viommu_alloc, + .get_viommu_size =3D mock_get_viommu_size, + .viommu_init =3D mock_viommu_init, .default_domain_ops =3D &(struct iommu_domain_ops){ .free =3D mock_domain_free, --=20 2.43.0 From nobody Fri Oct 10 09:15:02 2025 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2050.outbound.protection.outlook.com [40.107.102.50]) (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 4D9DD2046A9 for ; Sat, 14 Jun 2025 06:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882966; cv=fail; b=g6mT/t0WDtQGRAPFQTNshk4mSJrRuRcYe551rIuMxcKHnpWm8/9t1UFeXXuuZ5xldO9XlCZNirCsyKEbZ2mM1r9sM7NF1uBD9H1uYshA59t8zKw0GS20XLIHCGFftKE9mD6h7oRccbQkka2r98OyplfFvphmhvkN1GldKo2h7SI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882966; c=relaxed/simple; bh=by8HZ9Fj2vREdVi70wxBWvRRRHOF3nFP+nBYtihdZ2E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MnmnksklrS1jylGv0CEgH8zhmF1+o1/9RZ7FdrjqvDviahJkqGadbaUH5EfHOVOM23Gb329m6hZOMTJGo4DC6LtjlktTgKsj3EE2S+QixFeyrYcSxg6Ts7mvMln0kOU9tnWnr7Uw8SiOYoBcKG5y/kkts6qOcUeZqr+XP6PLb5Y= 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=bYr2YLbz; arc=fail smtp.client-ip=40.107.102.50 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="bYr2YLbz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jO44TVXrEhvH7s0RD2aV8aDIwaHILl2TAjOPwsZfnBpr5703hJH6xUKQKLLStHixvK/LEBZnFWM3kjSTGiwYzU0aHd5+XrL61xpp6/jlVUaIu0eoTsegagcfbj4Zb3/rBguZmweFfKNWdeAvUVYQhdGRqbBWUYhBHq79F8qKKNOvA6veYxFtafYP8Ekc8eevxNVI8tfLEaujvaMWpJH68DUHK6K3NpEQKS5RjzxBAUouFJeyL3FmnwiNFmfm4p/jT29t9An9eyahFYbNObqU0o7DqLxxaRgDaDkvvkEYA/cxML5dtRsqKDESEoeQNI08MoRR0xOlaIEaQYntt2jddw== 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=+VHj2gT7ME9hnnw1cSS8kRIhCrMG4HDzA+C0aPiHQmQ=; b=V+du2L1CX7v42ArK/3sxM8HhxRKciP9mOF98d2GhY5MSHGR873xpE8spftqalCP3Bky64KHanTjwHub7eE2nhF4tPtGUBVEyychPN5dUCw8rbAXQ51cCIGrEkb8YnWDsILVLVPc6P3qI298FWYvPgt9FkCK0MwoE8pu/XY2NDsPu/3Z79xwYnimAktOFjjv8/h7aUAjioBMQRXjZOV0ociMCQy0fZLSBscAOjHJPkFEMJr13HDBOtTAQSjTDMt0xv3zH8ToOU9soxarJBaV0u93a8DDadontV8St8qHkO9iGVmPVRE1S8RXlPc95ycDA5PvdLMSO8wJaD6rty/xHLA== 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=+VHj2gT7ME9hnnw1cSS8kRIhCrMG4HDzA+C0aPiHQmQ=; b=bYr2YLbzW4Ju3v1LBXOJCUioNnYPe5wQx+raHbsu6VWtD8zovsxxU1zEwfZwryQGuzHno9H8LwXYLOmd/HEvVIHdxDKjBRJsMqt+4gYCsX/8xkjOrWi0UXfj7D94Vbo2T5/7vfNa0EdUntfBsLPrwQopE396VxQIF4IZPDs2UvDjba04Z4Ae9KKfl1GkxU8g1BsKGs3jE7bymtkyrlBp5C4K6MQ6BUw4DEKSAUbT+B5wRIy3RKlFJgYkqkoi2uBtERngr5UbTnysEuEcfg1878G/CgM3JlLVCpnaD5Y5DfqBRe9OpTu6ygeiQU9T4BUNRJ/rgNpJjGgzZ+odehAvqQ== Received: from BL6PEPF00013E07.NAMP222.PROD.OUTLOOK.COM (2603:10b6:22e:400:0:1001:0:8) by PH0PR12MB7790.namprd12.prod.outlook.com (2603:10b6:510:289::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.27; Sat, 14 Jun 2025 06:35:57 +0000 Received: from MN1PEPF0000F0E3.namprd04.prod.outlook.com (2a01:111:f403:f901::4) by BL6PEPF00013E07.outlook.office365.com (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35: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 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; Sat, 14 Jun 2025 06:35:56 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:41 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:41 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:40 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 10/14] iommu/arm-smmu-v3: Replace arm_vsmmu_alloc with arm_vsmmu_init Date: Fri, 13 Jun 2025 23:35:22 -0700 Message-ID: <64e4b4c33acd26e1bd676e077be80e00fb63f17c.1749882255.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_|PH0PR12MB7790:EE_ X-MS-Office365-Filtering-Correlation-Id: 0feb6dce-9194-4c00-a9fb-08ddab0db7ea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NaPRCOSrYffE8bSskY48q8ijD75nSuWAd2ZpubTMt+ZE7u5U/0sWI5b7+DH1?= =?us-ascii?Q?IVSiAzm+hasw8sQ9cKdGlQlKkvi+Ztco0qwyFsvI6XivRwcRjNpam5056Rm5?= =?us-ascii?Q?W1GYsMULVCCRUXfFZkf9aDdTIabCpA5kn0CfBQaV5uIa9fU/OhKeaMcZF/eu?= =?us-ascii?Q?LtVsxHCydMQFaHPumLi5lG6l8JA2YmuNivKzng2gm+zOXCPEzzkPGrp/R9/S?= =?us-ascii?Q?aHxXqGGmgHAVxaxQ1ZytBU1wHlc8at1cn4z37aSIS0vG/L1Y6v0WNIyUGGac?= =?us-ascii?Q?GJ5VAzXKcI5Cd2uVAvJeuDyLkBffJxL+B6xfaaAZLdgSVPakFppPAs15y5le?= =?us-ascii?Q?LrHvojoRrHWi8wrSpjtX0bYzjheXkhq+tukQuW/NIqC7/eEB8Dpco8JDjj1Q?= =?us-ascii?Q?tbHA/jZ6Ecf58zLPF/nxrqoKP8J10dX5UpyMH4Z840YpSk0OtGJ/9PhNPaoI?= =?us-ascii?Q?X7DA6ZcXgEULj/rnX95aVi4HIHxfR/b5aDNmAlUy2JYy2UWo4OwTxqRKYVF3?= =?us-ascii?Q?4AVi/zLPotOoPHBvy5oJH21xho1FWSPTx9iZqLq5OsJadu3rcuSf1Ktm0j/x?= =?us-ascii?Q?l7Hh6ZP5xRHwI4qPP14T1xnAaKu3NMPFrIq2Fx6kw59BTZzLr68M3Jt8Qbs9?= =?us-ascii?Q?eOa73W+p55amzYod+CHQxGcZcpoOXAO5uIHL1h50ncO2dhQklBO1966ECHm0?= =?us-ascii?Q?d+q7GsJ32yYDFz4DELNqAtr1f6s0/AdasUeC2EIId4hIGt1+MzrI/OgvePPQ?= =?us-ascii?Q?TcSXD0ETNtA+mr5K+W68/WT9RemHLsOT1GTjFHS+b3n7qIBOZWuKpPvjzmKZ?= =?us-ascii?Q?4x0/EUJhYZ/meecJUaoutfZS3ZVx14BlEEaWPgeoXrOMeSq+qtv8nV5yEE/I?= =?us-ascii?Q?KJ+M2qYt2WQH9vDCCxw8KdhLRiua419BlaM50Lwb2OGNFGrS8NTU+EcV9p4B?= =?us-ascii?Q?nRBvMfQwQ907/sylK2g83vr1LsU7/jOPeOPhT9hP4dbWOW7fwC6/CbYEhDAy?= =?us-ascii?Q?71ujxfqhgiJ6goFRO6PcKHNK3vzSfDhuUft9/VA/4g52kMVG/QqxbApL/YVb?= =?us-ascii?Q?4dreufa2QZl2cPjag7GOnQu9vCGKWjfJ9z/BKyY4a2lRJmppPjC1WTExEWJw?= =?us-ascii?Q?dtmsSDoIf1t3iJ4iGIlhA1b18vyOM1lVBWpkZw8M8FZzCCiQqBfVvSC1lcsZ?= =?us-ascii?Q?YnMiiixFIBA75NjlLJ09BKw9rfC3mWROB/UyUWgiSWIn2kdakOmzq35cIjVY?= =?us-ascii?Q?grgknhOJUm5Se3jLBtypwVlW1714nlsS8C2iz3qY6L0F7T66FS5OXN0hvlVu?= =?us-ascii?Q?NcBpBfvghHh5h4tY9JXZZp4qK6Lf4iyq+N8ew2dvex/CDVkT8jm32Ovc+snJ?= =?us-ascii?Q?IWdifA1zW9RhOcgUIQJlJg8bpTXVdmQCTBZEcWhDrMmRhRaT2VyFelUeomNX?= =?us-ascii?Q?b8yCpqe0S7hVne2SpoX73yDp4AcKSAkru9QONQKGr1l0q95cfhpipQuxiSpY?= =?us-ascii?Q?TmH0VdWNyUfvDm2ZbLOyCQPSGRZaAcF/PLFu?= 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)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:56.3032 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0feb6dce-9194-4c00-a9fb-08ddab0db7ea 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: MN1PEPF0000F0E3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7790 Content-Type: text/plain; charset="utf-8" To ease the for-driver iommufd APIs, get_viommu_size and viommu_init ops are introduced. Sanitize the inputs and report the size of struct arm_vsmmu on success, in arm_smmu_get_viommu_size(). Place the type sanity at the last, becase there will be soon an impl level get_viommu_size op, which will require the same sanity tests prior. It can simply insert a piece of code in front of the IOMMU_VIOMMU_TYPE_ARM_SMMUV3 sanity. 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. Remove the arm_vsmmu_alloc, completing the replacement. Signed-off-by: Nicolin Chen Acked-by: Will Deacon Reviewed-by: Jason Gunthorpe Reviewed-by: Pranjal Shrivastava --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 11 +++-- .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 46 ++++++++++--------- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 3 +- 3 files changed, 32 insertions(+), 28 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 ea41d790463e..bb39af84e6b0 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -1034,18 +1034,19 @@ struct arm_vsmmu { =20 #if IS_ENABLED(CONFIG_ARM_SMMU_V3_IOMMUFD) void *arm_smmu_hw_info(struct device *dev, u32 *length, u32 *type); -struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, - struct iommu_domain *parent, - struct iommufd_ctx *ictx, - unsigned int viommu_type); +size_t arm_smmu_get_viommu_size(struct device *dev, + enum iommu_viommu_type viommu_type); +int arm_vsmmu_init(struct iommufd_viommu *viommu, + struct iommu_domain *parent_domain); 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); 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..9f59c95a254c 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,25 +382,14 @@ static const struct iommufd_viommu_ops arm_vsmmu_ops = =3D { .cache_invalidate =3D arm_vsmmu_cache_invalidate, }; =20 -struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, - struct iommu_domain *parent, - struct iommufd_ctx *ictx, - unsigned int viommu_type) +size_t arm_smmu_get_viommu_size(struct device *dev, + enum iommu_viommu_type 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); + struct arm_smmu_device *smmu =3D master->smmu; =20 if (!(smmu->features & ARM_SMMU_FEAT_NESTING)) - return ERR_PTR(-EOPNOTSUPP); - - if (s2_parent->smmu !=3D master->smmu) - return ERR_PTR(-EINVAL); + return 0; =20 /* * FORCE_SYNC is not set with FEAT_NESTING. Some study of the exact HW @@ -408,7 +397,7 @@ struct iommufd_viommu *arm_vsmmu_alloc(struct device *d= ev, * any change to remove this. */ if (WARN_ON(smmu->options & ARM_SMMU_OPT_CMDQ_FORCE_SYNC)) - return ERR_PTR(-EOPNOTSUPP); + return 0; =20 /* * Must support some way to prevent the VM from bypassing the cache @@ -420,19 +409,32 @@ struct iommufd_viommu *arm_vsmmu_alloc(struct device = *dev, */ if (!arm_smmu_master_canwbs(master) && !(smmu->features & ARM_SMMU_FEAT_S2FWB)) - return ERR_PTR(-EOPNOTSUPP); + return 0; =20 - vsmmu =3D iommufd_viommu_alloc(ictx, struct arm_vsmmu, core, - &arm_vsmmu_ops); - if (IS_ERR(vsmmu)) - return ERR_CAST(vsmmu); + if (viommu_type !=3D IOMMU_VIOMMU_TYPE_ARM_SMMUV3) + return 0; + + return VIOMMU_STRUCT_SIZE(struct arm_vsmmu, core); +} + +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; =20 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; =20 - return &vsmmu->core; + viommu->ops =3D &arm_vsmmu_ops; + return 0; } =20 int arm_vmaster_report_event(struct arm_smmu_vmaster *vmaster, u64 *evt) 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..181d07bc1a9d 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -3688,7 +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, - .viommu_alloc =3D arm_vsmmu_alloc, + .get_viommu_size =3D arm_smmu_get_viommu_size, + .viommu_init =3D arm_vsmmu_init, .user_pasid_table =3D 1, .pgsize_bitmap =3D -1UL, /* Restricted during device attach */ .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Fri Oct 10 09:15:02 2025 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2078.outbound.protection.outlook.com [40.107.96.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 CD1A51F873E for ; Sat, 14 Jun 2025 06:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; cv=fail; b=gpFeHC3MP3Z4N7wpMWOes6Uw6D+zCOphimzCgbJCH8MNGhYUa0sxZjBm+dll+MjpxRDM1/3mMvvuwq2DiMUnp5TXeAlReVwB6ThZo4hikarRkMGpeOgH9nxM0YClPxw61L5/9wB87DS7s8rgpLFvq7ZIX5sKYB+hxf9jD1xpoDE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882959; c=relaxed/simple; bh=2AVA37Eu1Ph6oHmqZUUDW73kXWnZYzdXA+57UySEx4k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=M4zB5HNaa/GbcLXrMwbJAmFMbiMpe4TOLGvoVUHNKnVv5K3utokN6yH0M1n7Ph0QUKkGQ+4tAgExcrWuKsfEu3TvU+eWdQwAxWQloD5WhCXghl5Zx0moUvNBjH/p5jwM1wH3lZxz+HyHAeXO38kz4PVFr0wpr6UV4wJV0l+arg0= 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=pZCyCvh4; arc=fail smtp.client-ip=40.107.96.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="pZCyCvh4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YEOkoobnN9gEenNAgDue0EYrJOxTrblZkOX0mkHVWmPkn3huXgyhMHF57FPb20bswNQ0EqKyV+uaJ4p4tT7/N8o+vrvjGlXGYQ1cffOUbdgNk8lH+Y89Ti7V21ujh9XhTOwJAOvLhmeNW4wz84nJq0L5E6IdqyKkcAhXCZKTpdvKIc8y/nzpHcTO18EY1umWgO0d4cO4i5sz0LOLEZEptaz40gUaTVVuIEepP/+bGL36lWolFXH0OKmDxZkTdREDtcsd5NWdt0+zlBI6U7gC45RmrFJQ0hKH2ctFnC4TQIyZeXkxZ5Wi5BEeSyMN5HTeFZcVhSjCD/4k0JYjqNhmrw== 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=JzRICHr/rbnxzlW0m7MaValzQike50M7b3rplFoYPss=; b=Tt7RtDQpvs4nllK/lShhnZrAshQVf4U68USeIWqxMo+jqdCJOcGxcn6YQ/ULKIaNxyQLDa/u+5C3/8nFnUKRXd5oSxQ3vOFjdxWpXcDDY8z/4wd8nOY98+rSQcgwSx6vkc1/j3GCqBryhhg6mjwwUNWfDjhkr7ybvCOyqsx34PM0ydC+9I7pFu9mhKuePuFLZTOVfYNjPkgG1S0tVOhrEiqQzR5MUN+zbF+9ljuy96pZg3r7y5Q4TqwwulGhGmDXMiCC0+agzaxR5lzxNS3d+ycKCz74jzN9z9o43nDPMgpIvJ2OSwZcRWj0YK+DG+Um/r4IRRtY5vETgn5TOsewug== 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=JzRICHr/rbnxzlW0m7MaValzQike50M7b3rplFoYPss=; b=pZCyCvh4hJQEJNIHJQQRy2oCcBr22dDHbekWPRvcBPSvplNkl9B0Bx9xnO2Dtdvo+jpBfSvrQK4ITaT0YZvAvvmgMrqXwixYgi7tJvq6o2RYGxnuGkpSLmmWlS03+ppLgZPPj0iMuSkaL5LtrxvkBkTdtzQqTyoaWveq9QZyT9qMV2+/+VnfRWCW2q/l5P5Uzdu2xo+3ORA8Abs2uFeLmherdqF2jKGuZSaBbXjh5gW38Snbqdw9QZo6rGRc3ouryCtM9zwaVkkW/e6m3/WIgc38oF8On1MWgdfUuNyUuPrHy1lVl15jgnzFYTi6ljd71ka3zKTBG3Qc3xE0hF/bSQ== Received: from CH2PR02CA0010.namprd02.prod.outlook.com (2603:10b6:610:4e::20) by PH7PR12MB8796.namprd12.prod.outlook.com (2603:10b6:510:272::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Sat, 14 Jun 2025 06:35:53 +0000 Received: from CH2PEPF0000014A.namprd02.prod.outlook.com (2603:10b6:610:4e:cafe::75) by CH2PR02CA0010.outlook.office365.com (2603:10b6:610:4e::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.18 via Frontend Transport; Sat, 14 Jun 2025 06:35:53 +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 CH2PEPF0000014A.mail.protection.outlook.com (10.167.244.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; Sat, 14 Jun 2025 06:35:53 +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; Fri, 13 Jun 2025 23:35:42 -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; Fri, 13 Jun 2025 23:35:42 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:41 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 11/14] iommu: Deprecate viommu_alloc op Date: Fri, 13 Jun 2025 23:35:23 -0700 Message-ID: <5b32d4499d7ed02a63e57a293c11b642d226ef8d.1749882255.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: CH2PEPF0000014A:EE_|PH7PR12MB8796:EE_ X-MS-Office365-Filtering-Correlation-Id: b20767d1-0011-4d19-32cc-08ddab0db624 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pvxjpIowTMj/R0mD442lxATNJJQKxdNCo4ZeR5whp2lANPeLj5SFDQsQnbLQ?= =?us-ascii?Q?gnoJ345+f/vRRBGwJhUGsSILTKOmVZlkkMPjg3fiU3iSLyQDlnQy1fuXvFVe?= =?us-ascii?Q?kfivWbzu32qmUNZymrSoS+z3VQE7kTEx/6nJbdjNXfSOHaAzRCmx602RN07a?= =?us-ascii?Q?xC+OBWdrPv3PxVrodgS3qLbt3VsrFcfoAJyMsv72gge2oJ/nCZ5Jx7ydrWZR?= =?us-ascii?Q?sTvcSoyRurd1Lw8f+kjsYi80uWc0qerBpUX8wS3EVDgCUl5CbHMDkogJIcsb?= =?us-ascii?Q?ID9vxtCeNdBXLZIbTKeNpiCkRCRjy1aVkpQD5Lce68u9lR6lAnMAtDDryu05?= =?us-ascii?Q?DETCrPUyS0r3siSa9t9a2NuYXBUHREM+XPFB0vN+SBXed6/qBa+VLYIfStxz?= =?us-ascii?Q?is0z6TSEBeGTKz2FP4JdpNSRtm/hsxNYqxpb/Qv5qGcxcgOQCVdtBD1Os1Tk?= =?us-ascii?Q?nr8zB+UtbTiShe3qEM4Uoev71UQI+fjumMcpSgEZ9WjTPd2KDuuO1ItzUE2n?= =?us-ascii?Q?GhNnaCS8+UfZgVYv/Es1o17XUFGAOTaZNc6tiMs48rU5lldWL5Q8qE2dl1gr?= =?us-ascii?Q?MuSTbrwEFKORR2rbR2Fj1iMHOfWBqg1htiHPLsCIqFgff08SXEduTCG/vzvK?= =?us-ascii?Q?fQKN49VkliYI84/beFAQQpJMQTJvEuLgFY2Zw1PCfMY0JYRIGqUOCSWW5bst?= =?us-ascii?Q?OyGtG60MOmll/+dplsJ2tQP9ApvtIvnT45T4wcLGovTnpUGB07JpZITVc0IK?= =?us-ascii?Q?Ck93GpFDMQ0HTkLh7hn8WqJl0CHOplp6cEFVhi+22qrhg4bxHb8Nj26D9smH?= =?us-ascii?Q?6FsF5So77Di1QvJIHrG441FdVi/ew5JQ2mVqfrY3pECP1idrJIj9ezCTsCN/?= =?us-ascii?Q?751oZBqvfhAh8f8u5EMqxYxXSO2kNB0S2eCFu3nUTg6UZV1ocW+adxcQ7ZQK?= =?us-ascii?Q?0YJkYj9VcgN4Sk5OfJ1aKOs45mZs92RYG13jvsD80N+VMWFcpPJiik0NOeIN?= =?us-ascii?Q?sLx74PoAtUPWws3R+1845k0cldzb6Z42RTglLTOoI1RHFbJbP/aL/5YG0DWa?= =?us-ascii?Q?nTs3S8HiYTfgdD/0JeoHWEzpz7GUJpvmkABktZCFAM8hutR9X56dSEktfwVu?= =?us-ascii?Q?upsTaPhlqxWoh+G6OJjvD3LB2zaG/dI9/Q9nNzonfaTcEjUdqRktJS9okszy?= =?us-ascii?Q?zxaYll6q5MFAWze4Y4dCixdaQjPqW3ENUdJ47qyqDWORjbGfvjrE/XQq+LpK?= =?us-ascii?Q?ja/oq/zYGx5BR/T4A+dlayOc2WBNYYtaYGQpVK0SanDU1RZL6/qicP7IW2yL?= =?us-ascii?Q?6V9uUS94mnyC6hwKPIP7f6rYexscjaBnY2wGAPek/ZrxzUgvzwQy+Eo6Biy2?= =?us-ascii?Q?0PjU5XF/75c7QjTnK01fQ14C0A3ZiWL2D8UkbFzUTz3m/10CW8fXFIzlxcyZ?= =?us-ascii?Q?ZB08Z1S8zSi9D6IjSt069SOnnx8AdEiKDL1pl2IBOBFhoe2C0958UGq4G8Ls?= =?us-ascii?Q?b5RV78VEhtOvd1UgzbCw+MZgqjhSCJiV2myX?= 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)(82310400026)(7416014)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:53.3837 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b20767d1-0011-4d19-32cc-08ddab0db624 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: CH2PEPF0000014A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8796 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, replacing the viommu_alloc one. So, there is no use of it. Remove it from the headers and the viommu core. Suggested-by: Jason Gunthorpe Reviewed-by: Kevin Tian Signed-off-by: Nicolin Chen Reviewed-by: Jason Gunthorpe Reviewed-by: Lu Baolu Reviewed-by: Pranjal Shrivastava --- include/linux/iommu.h | 11 ----------- include/linux/iommufd.h | 18 ------------------ drivers/iommu/iommufd/viommu.c | 20 +++++--------------- 3 files changed, 5 insertions(+), 44 deletions(-) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 9be4ff370f1e..04548b18df28 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 { enum iommu_viommu_type viommu_type); 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/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c index 27a39f524840..044e3ef06e0f 100644 --- a/drivers/iommu/iommufd/viommu.c +++ b/drivers/iommu/iommufd/viommu.c @@ -33,8 +33,6 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) =20 ops =3D dev_iommu_ops(idev->dev); if (!ops->get_viommu_size || !ops->viommu_init) { - if (ops->viommu_alloc) - goto get_hwpt_paging; rc =3D -EOPNOTSUPP; goto out_put_idev; } @@ -54,7 +52,6 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) goto out_put_idev; } =20 -get_hwpt_paging: hwpt_paging =3D iommufd_get_hwpt_paging(ucmd, cmd->hwpt_id); if (IS_ERR(hwpt_paging)) { rc =3D PTR_ERR(hwpt_paging); @@ -66,13 +63,8 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) goto out_put_hwpt; } =20 - if (ops->viommu_alloc) - viommu =3D ops->viommu_alloc(idev->dev, - hwpt_paging->common.domain, - ucmd->ictx, cmd->type); - else - viommu =3D (struct iommufd_viommu *)_iommufd_object_alloc( - ucmd->ictx, viommu_size, IOMMUFD_OBJ_VIOMMU); + 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; @@ -92,11 +84,9 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) */ viommu->iommu_dev =3D __iommu_get_iommu_dev(idev->dev); =20 - if (!ops->viommu_alloc) { - rc =3D ops->viommu_init(viommu, hwpt_paging->common.domain); - if (rc) - goto out_abort; - } + rc =3D ops->viommu_init(viommu, hwpt_paging->common.domain); + if (rc) + goto out_abort; =20 /* It is a driver bug that viommu->ops isn't filled */ if (WARN_ON_ONCE(!viommu->ops)) { --=20 2.43.0 From nobody Fri Oct 10 09:15:02 2025 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2057.outbound.protection.outlook.com [40.107.93.57]) (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 F384B1FAC4D for ; Sat, 14 Jun 2025 06:35:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882960; cv=fail; b=rnnJhAmLPT5Ls+S7YdkuEMgP86r1Fj4xgtS/aCrFUDJ6lyV1gzyfbwUldo/FBK0W10TbvWmZtFQ7SIv9R2tPYdFzPmminqhEVHmDdsXDqdTx3airjfce45y3P0h6tVtDiBMthpiV/eZTc4k0QVR8mgexNy4fze7JeeeumdlMLck= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882960; c=relaxed/simple; bh=dkZQCkmpaj5uqhtpadauQSTVO6N3MgNHYoGwzvTRSBM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hpcQq9iOva6Z6nCAXP7npJCZFmTxnnfJEg5MED2+gMUyIfEXXQCe+U0kkxmvTfuFZdsKRadudQKrzjwzRfjnc+noBk4QHPT0yYvf9b0NmNcanaOC/PPKD2VssVmPto0z5qxPWmwtiTTpCbjJ/rp29wL4IPFFJDaRIxEAE6D/MjI= 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=Ye8exowZ; arc=fail smtp.client-ip=40.107.93.57 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="Ye8exowZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pwJcVThuIp8esQTPbcipvlQS72x9iSa6tu9uGyGLsy8apO6Pr8WjjDsv9pwgvzzPdfaZPfGncIMxRx9C+ym2/NgWCr5oL6lInLb7NtCp149N9v5C6NR7bwCT+awN96jVBXrqOwsMYwUNUWFTX7GTDjlml7+fTiWgss418oRQa77mLDXwc2xXku/pmtkdaBmCuwtkiXT2LDqXBL1o2OaGHcke9H4DgHBSZ+YSCisu4tBtOpPXXqaatdb8A7Re6kxkAaT8+xPq/SQj2BBOrJA3dnB8t+RjZKYilrkWNLcBafkqQUsVtvBjTZrmDIjXaWNURZ7hQxiLxPKCUXe3IF7yIw== 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=+5JCoVXo3rI46p+RcSpC0xkILX6eZK7K0tyZOd5uu6o=; b=NdPY22Vbj1EgKVZN2n+e4jzaGiicjTcK360fUv0/7XFAYOTzBSX9XQmKALDGow5kYx3iFmHMOFyJGou3GVZo37JWegMIpc1u5OxdzAPzsPtJOJKESKVZZ5Fh5UAkjuky7VLqLzx7pXuVgbFPCfVg8bJesMG/Jg9JPQ/ZItdAeGqjnh0aZlU7/g3sKfEkwXCGZXTHoLMyHaG+S293G9bHisg0su16WABpn1x4XK2QEc+qBH5SKKzA4We8TwkBi1lvaXJW+0ReVerrVneqBlXbQ/uXdOHyrgmLW12Y+5JyexI9ajkN2PWrmQ9s1vNIDA6xVSCwfShg2YFf5D0QGGGeeA== 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=+5JCoVXo3rI46p+RcSpC0xkILX6eZK7K0tyZOd5uu6o=; b=Ye8exowZWWCzhOyfnmoOWjxRpw/MG4oGDV1THU4jDdQWVi7nXXf9RTwBs2waffyMHM7nfTPw8RnS40b66V6BT/dySsPd6dxOX06Ck5gHsk8GQK+qqG5K4yOo/t3+n/REFdXOEJQ14cVMCh4Wm/PVyrfmT/oJyohjoonMUQMaA7N8o3GSl8tPCdbap+cOCfrS+Gy8GGFXx7pejT4Q51hZ0Uk6SVrT+pE6UwO8OLGgsgXDoh9oNy0M1fI79tVI3Kia7sCwGTrpV/DKUnVojy/Un0vWGWYXTmvZJdlyPC/fQY5Efmfiw+kdvut6qlxyGoF+3RedMJcEWbOoO8EDwNmz3Q== Received: from CH2PR02CA0020.namprd02.prod.outlook.com (2603:10b6:610:4e::30) by IA0PR12MB8256.namprd12.prod.outlook.com (2603:10b6:208:407::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Sat, 14 Jun 2025 06:35:55 +0000 Received: from CH2PEPF0000014A.namprd02.prod.outlook.com (2603:10b6:610:4e:cafe::70) by CH2PR02CA0020.outlook.office365.com (2603:10b6:610:4e::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8769.25 via Frontend Transport; Sat, 14 Jun 2025 06:35:55 +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 CH2PEPF0000014A.mail.protection.outlook.com (10.167.244.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; Sat, 14 Jun 2025 06:35:54 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:43 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:43 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:42 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 12/14] iommufd: Move _iommufd_object_alloc out of driver.c Date: Fri, 13 Jun 2025 23:35:24 -0700 Message-ID: <79e630c7b911930cf36e3c8a775a04e66c528d65.1749882255.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: CH2PEPF0000014A:EE_|IA0PR12MB8256:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b92f0dc-d294-47a8-7bc6-08ddab0db718 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Jp8SEXWewHle4TDFHfAWgl4FfC++NeOLrxoWJvHXU0/1UABoX8Cfn8ajE9zY?= =?us-ascii?Q?wCw1DFoAG+bUX8J8u+LPDYy/WBVRxjizUMVH+OiA3DtOwMPhVFg0XVFm0RPU?= =?us-ascii?Q?n01+MLx5wGkxnRDsfBmrzBbdfV3wG3s9gEbr1HaO7bWhNJWR1ambybmTQpcS?= =?us-ascii?Q?TNY1gm1vA7ztre7jY0FpFW5aatNUVY3sqvSbZt3sJQenyyp2maveh5pzM/cN?= =?us-ascii?Q?JEa6H/UP0sVTS16h/E8q/sL5dO8aG7qzO0mJcAZ+tv1REGVCHFXoFF97jkX/?= =?us-ascii?Q?A5yGLY6ZJ7ggqxtvxrp2GMR2a+Z+gU8RylEd05KnShcgce/sBaYYd2s/NhnW?= =?us-ascii?Q?d2oHHgCYL/RNNMeFFmJq4el+4RY6VD1pmB54g0eo2F4gtCK6kG+yqcXPoMCz?= =?us-ascii?Q?kGE1CB3TOIeTqHZA/N2tVWgFIcSbX8tkQWMfS6qXeejC3GZ+b9F8nprPfX2m?= =?us-ascii?Q?DMvBYbTuQ/fP//I5CmNkAdsczT2DPBlKrPP7z/wv5dwN8z2QQPwlOrSm2uVF?= =?us-ascii?Q?fq7kr8rvLFS1OEA61uynccS7sKgmCMY3GD8kMz0TL6MiAlxcTURyBXGB5WxR?= =?us-ascii?Q?FhcyiaGv97D4ZINCP6clJmCaOZ7lPlSDdsTPZRhB2uEXKtPvyRGfk5HYiCmk?= =?us-ascii?Q?/BT5DOcajtj826YNi7GK/44CKSEDfqADxQCe6A8IXBXzlTv+icfVHEAIg8Nm?= =?us-ascii?Q?BS7M21ENiIQ/v+PN/xu8hRgsm477aAn5gFL28dRY/Cb1I7Y++pEqg4ZROBS8?= =?us-ascii?Q?suFCGRN2PD6IfWVvMzsyfDKiKC3gOVoHppU7YARmBNRj1bjSWxLG84KGzNfh?= =?us-ascii?Q?bVQZS16UTrj0LfFQ4zqGHFb7NF7n/UkjQ94KctMif6M9LsMyMGbTrxK9sfQe?= =?us-ascii?Q?hHegckN0/mHjQALMvjeN8WrNIOmL2TK0ZgQIH0SKhKSEeY//TDpgHVfDehcC?= =?us-ascii?Q?ySLXaWMBFJ12rEoWpJfaoYF8Kc7ewb4jGuvbvWZILD3xKKQbTD8GL6/OFssr?= =?us-ascii?Q?hAJ7AUC/3fSXzUx7/NK/jx/idzscW9Edd2HiejHslwfzcYd6VndEW67665yW?= =?us-ascii?Q?LJzulP+jy0+jt37C0TizuauDDIkNCtqbkjxJgydOfOXsfRhfg9L9GbfrkDPG?= =?us-ascii?Q?5qyJr1XDXI+beLOOf4cPsmg0qfMvfKs56f8DY4qDlvDz+X+s2CFEt3MNT2fI?= =?us-ascii?Q?1pmGgsYDShw4Hg1ZHHuGuGmSMMaCvHYVHuTZEMrpfAS3KuoXth8B+qIGSnWn?= =?us-ascii?Q?ScVlHAnpDReXlh5PyBe/7QLGsSQAEl/Febl71DHnPA2B58BXawF1OtVhtCrh?= =?us-ascii?Q?y2l6+WbpdCZPj1Kw4rlHYai+PDiJ7F0YVuXNdsqyw1Qa6Ki2LejKwFNkB61f?= =?us-ascii?Q?n+cL1N8eRWxy/lpEcrh+vAbCNmkKfFSqqyWdfDlSjDKSPaAiPq+5iTcjtXJ7?= =?us-ascii?Q?P4fDaRjeEOjaiPcFYNym1q72PhHvl+HE4IgOBjQB3QEYWDvYYxG7nMMPzsZb?= =?us-ascii?Q?By1aAtxxqKMrCQxkuuy2PPUP6gY2L1kR/WBn?= 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)(82310400026)(7416014)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:54.9368 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b92f0dc-d294-47a8-7bc6-08ddab0db718 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: CH2PEPF0000014A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8256 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 Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen Reviewed-by: Lu Baolu --- 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 Fri Oct 10 09:15:02 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2046.outbound.protection.outlook.com [40.107.94.46]) (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 5104A204F99 for ; Sat, 14 Jun 2025 06:36:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882968; cv=fail; b=Z+MiWAcAeiKb8ZhzYBeZ7N105h2vIT5g3KCNYWEu85YKZSgtu9bcVf+9yc8Q+KTM+19utdlDRzvlGNvGzKOwDn0GWQSMIfZ0hhFCKD3iZrm3IZ7O6eGtDx8un25CSs1vz0qio4RnoPSkqlpELWlTKPhsnGdMHwbwaDakW95wvFQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882968; c=relaxed/simple; bh=8tJrR1BVEl8c9MMlqmlLrDSIfrMfPQFhz46q+y0jA/0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=py3j2ru6nfV3LD7S5lb2Rr/Q+/K9KXddjdVvptdWM7uzGXvoTa0D9Q8EYzcfGX0kuzCStoMSPnqh8tokEF62TcF+Nhsb9ECgf8UXQuxcsq044pe2DDJ2u0wrGZUJptJsoWrWmjJ60g+j2gLFnZryvEF8oE+M7qqd7WGsl2Ik5OU= 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=CC9dKloI; arc=fail smtp.client-ip=40.107.94.46 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="CC9dKloI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mAyQYSbrp1yZnrMkPtjOQUZPcpGQ9ZBLLBWquWYgriZTSBAeLHU0p7BfL4hZhqepK8z51HAS/rrPBOcjnoqryIFVA+ZWboeCG1whlc32vQGN5KtzXwaVnpZZpMSoRDwI/TTc63irKlTsKpUvpZMd0jXLk30yqn77uHqxxjjtGrSQeknu8yNfJGwPAoYAaR9LMLlKLT2BDr4pDq+dRFylxLg+4WHk463otvygCmtFRBE586uA0431SUCnOCLOhpiCuJCCOJL0GUTNd5dvkZbI3Jmj4wH/vgL35op07+0F93t14moencXRX6bbYgEI8RoQ0vApbXakNQhPThHsml6upQ== 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=JzxGmQR4LlSgVoLr3rB5XYInbdZl7hJLYirtouR3h5o=; b=t0MoF9TUhAOMAOlJSC15ndIFBkWKucrKaVw8ox7ICLqAovMeu6OZ2A9gMprDTc/kwJkdDMNKx9yvarH6ghZED8sr+ghgkekprLmG+tgBv52vmKU6aJ1+CLfUnjS1iSKikz0rv9u2vW7ZJHMYOt5LV6kkX4kg6LK+x0R+UBxD3JCxXT/PVK74eoUE9tjuePgXp3hmtkOxVfhj25kpCw9QMMzNs+kmvM7CnEvyjjTW2xAKZhb6yAxdiVe10pYZksOkgoNRQlJB5ZzUzY+u+NOhWvzU84WAGKTvdyqJ47vHs2gOQjI5KMYIneP9MqjDNyksGbd7tKzn2L1g4Rw+GiZUCg== 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=JzxGmQR4LlSgVoLr3rB5XYInbdZl7hJLYirtouR3h5o=; b=CC9dKloIJL+Zz2T1mmpwyvmUWycz/Tg9ztnbozjwhO479jf2U18h7Pqj3MjKRIOAqasV66EPYZCnkl4vokVdHHE4anAQVKtm7QUijlWwi+F7lSO6QeZD1fB0Cd0XZ8ZEpe8w41SqGP67+yNI0rdrFv7RfNEVmJ6jSsTe9jgvkcnupi0Z0rwh3wf6XfwhOLnc9dqeIXYacwW2+pxfx0R9rZ+E1B5pY6gQcxq6uObYsuiwPG+sUmIA3R/aTNVPAIDhhpjqI/9u59ih67hi2JXWsMQPndn0efGorKT9+7TDkRBDF6aCe92q2YcI5HEHiWj7kTDh+KBFtdasaoa2LaWUlw== Received: from BL0PR02CA0121.namprd02.prod.outlook.com (2603:10b6:208:35::26) by CH2PR12MB4069.namprd12.prod.outlook.com (2603:10b6:610:ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.27; Sat, 14 Jun 2025 06:35:59 +0000 Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com (2603:10b6:208:35:cafe::b0) by BL0PR02CA0121.outlook.office365.com (2603:10b6:208:35::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.23 via Frontend Transport; Sat, 14 Jun 2025 06:35:59 +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 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:35:59 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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; Fri, 13 Jun 2025 23:35:44 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 13 Jun 2025 23:35:44 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:43 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 13/14] iommufd: Introduce iommufd_object_alloc_ucmd helper Date: Fri, 13 Jun 2025 23:35:25 -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: MN1PEPF0000F0E4:EE_|CH2PR12MB4069:EE_ X-MS-Office365-Filtering-Correlation-Id: 82b9f7d7-25d4-4b89-27b1-08ddab0db9ca 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?Mt+cPkMRC8ecobuydKVUb1xoheFBAJdiQV4+vHl3yK5hmFHCY50HLKXVTgK7?= =?us-ascii?Q?PepHPoysBSxFRWriP0DwYjsxkuAXJLqarRVKVPBI2aDhPc/iePUwBTA9E573?= =?us-ascii?Q?seLFvrF0dYfw+pyhMtB7JIZIDkEwpBA9B5n0kvuhIavdDZU5VHz2WLwPSWpa?= =?us-ascii?Q?f1oA8qq3mNZt2DS6+WhDzR5m/n+a3vsds3xf9aJwNHkstQLruvNevTd4iA+l?= =?us-ascii?Q?wFfvP3hlXR/u3mYek2Qq6FZUVKMXvTygUS3TNkb34hJuu3nXiDSYTp3sr0pX?= =?us-ascii?Q?lKeaETxm5fm0rHr1+ERjLQ6kHo1/z3FgeZUIIRm2D/DryyvHNWuJR9br+o8W?= =?us-ascii?Q?ofIex4vYjg28aqsmpWDG4RtLEXwD3cIezCbsVlaY0ojtbHcSw68DAcqeBam4?= =?us-ascii?Q?vAXQQZgCCpt828O4SPASV9CRh8c8cycxJ6qi1gZbFzSZx0v55/6naaT4FBW9?= =?us-ascii?Q?qCctrN0FSVLh7FDOrtVPk2nD+aeqknQ4kIqb5BeV61JIm0rtWK1QHMNFH87J?= =?us-ascii?Q?ON/bXNye4U36dPs433LMLJLHXnEu0RQR5aik13PgO3bw+JVwGvtnhF8GczXp?= =?us-ascii?Q?ukhM+lUzkhcs4lGk89Me7Fb8Ui8g26BJ8lQb0MxsjyBpHy3iEN62A+ixoC0u?= =?us-ascii?Q?oC7Z06HQTyKAmkExpHvCPP9z16krldbLejeW3TV2qvX6NzrtPacPgfqtlIVa?= =?us-ascii?Q?6gWE7pL1tvg9bPqv5FFHmubUHl2jcp/blGQylknrAlJ85YnV5NVfv/v9W+Jq?= =?us-ascii?Q?iS6hVaGWkZJmyHqHCy93zBibfnqpBCQDv5dO4rXgf+cx3B9WTDPdkl0eSfTe?= =?us-ascii?Q?+SYIyNDzcZJ9kwWN6mKedqsLaNyi0Aky6mrsOGnyjb/XGjxDIfxSnQ8vSj1J?= =?us-ascii?Q?pVbkzCoXKFZ4Pp4aUEPSqZ6ihyP8jEW6r6Ex6SApEd1ZO0EvfU3HaonZKIpA?= =?us-ascii?Q?5Bf9sXH/0BBtfTqo3tEbysBH9etJB5EsGfiYEsyU0G0xHb9h6MoYrnIGjISV?= =?us-ascii?Q?BLatVxI0QPTMeO7Fxdsbc5vtes/FGb8ipyCtriDQSm9Y4QW3mMMrNTMr0EEI?= =?us-ascii?Q?TREnwiUJxFt1Tr/EEI0MfnMDAEAOY7LBRinp0DPGDkaPOglRZh8aXLKsaMv2?= =?us-ascii?Q?O+lfOkVioR95tgWDoZNlqM0hKl4BRxp20IdxQF/FL3amlW3x9XafQC7cZmVk?= =?us-ascii?Q?OHeTirvpDFqd7mo9XaZyXzJGv2F4P1iosO4j5urlZr344oRJHZ7wCSmKMq/A?= =?us-ascii?Q?JwyYmExxXiGlHGmzXOf7GcVBMpuv9VBKKO9B3Boevt5ptLFbEQtJ7+UUt8hB?= =?us-ascii?Q?JHNRIqMdRfEBd51X984BFJibUdAY4LPUhce9WJY+GF8ru1vb08MgFrKJjq46?= =?us-ascii?Q?GbpSVtGWPEPd7PWmNLayyeNys6f4aNDCyzmNE2EArQz4bdMpf/ZY5uRxq7jV?= =?us-ascii?Q?my/kp6ynal15Ix7n1MIobZwOomdhKq2CTPx37+Q5dtbXxcLWaLHbzDMVwniW?= =?us-ascii?Q?N1pF3X5uOm3srq/QLxQRfTsEiG0RI+U37S3L?= 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)(36860700013)(1800799024)(82310400026)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:35:59.4484 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82b9f7d7-25d4-4b89-27b1-08ddab0db9ca 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: MN1PEPF0000F0E4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4069 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 Acked-by: Pranjal Shrivastava Reviewed-by: Lu Baolu --- drivers/iommu/iommufd/iommufd_private.h | 26 +++++++++++++++++++++++++ drivers/iommu/iommufd/main.c | 25 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/drivers/iommu/iommufd/iommufd_private.h b/drivers/iommu/iommuf= d/iommufd_private.h index ec5b499d139c..4f5e8cd99c96 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, @@ -230,6 +231,11 @@ iommufd_object_put_and_try_destroy(struct iommufd_ctx = *ictx, iommufd_object_remove(ictx, obj, obj->id, 0); } =20 +/* + * Callers of these normal object allocators must call iommufd_object_fina= lize() + * to finalize the object, or call iommufd_object_abort_and_destroy() to r= evert + * the allocation. + */ struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, size_t size, enum iommufd_object_type type); @@ -246,6 +252,26 @@ 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 +/* + * Callers of these _ucmd allocators should not call iommufd_object_finali= ze() + * or iommufd_object_abort_and_destroy(), as the core automatically does t= hat. + */ +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..778694d7c207 100644 --- a/drivers/iommu/iommufd/main.c +++ b/drivers/iommu/iommufd/main.c @@ -61,6 +61,24 @@ 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; + + /* Something is coded wrong if this is hit */ + if (WARN_ON(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 +466,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 Fri Oct 10 09:15:02 2025 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 3C2B61FAC4D for ; Sat, 14 Jun 2025 06:36:06 +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=1749882968; cv=fail; b=r40MtaWlnZmbPN6+JbXmDQk4+ircEt8YZzd9RAwdDmm2ruNBxCdyOCN0WXv3rU2Hi7xiUTqdIzA27EAWOy0GnMpO/ax2TGWzDnBo04WK+2B6FqRarMhwgg+x+Y0CVHql8fwq+j6UTXE0YVH73EkxAYukWt8E6X0dw85IunITOK4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749882968; c=relaxed/simple; bh=FrKXrudyhfqtmpcMHlkL8Sa6PU/A8qMmLzDVtLEnuSs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dtVAlNmhobh/6LU3Jr9YHx2HQvlxnGcf04Lnxx84m0DLTg7P/2hqniRvy3XzRgB3r+Ir8m8lukka/ZEMlpOn3K/TaixvnXV2Mej1aA5mTh65edNoMVqODZ1LfqHD4MR4FJ59YDtI5iqcvfIY5ihc+OOT47MecZFyUz+Sepoaxns= 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=CSuDe3H/; 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="CSuDe3H/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lYCDrXRzess/ygaQ5sMcls/CfTWgr8QeZbsaxa/h/Me5cm+jEHhnAFaSHmXQubTeJBdPYpdyeOL2Kt4oBggG++C2X2Sd/+4CT/8Dcnw+HkDCZd5d80Gpd62yiyoPAP0gUUIof06ahhhVWvLZiGuZTKZdR75nrsjgvFHY3+bkCzuWVc0dUp8SRhoOWiosTLi0H8A4i+/DPhBEcZQ4jMiKPPvw9K1kjY59MbO8fB2Z55DJhPgbPLec2ukp+LT77CvB4lkZRuGMfQMPw11ld8/YTgloyIPP2bJROgBUsC18yH8DpytMIE5Y8FR3nHk7BEBsQp0OiY+S58qXERheUcW64Q== 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=YDvUc5Lg3kfoN4Sb/WC3fCMh51yl0AAzH4VpwbOIevs=; b=ud75h+9KCL73rbEXI/sMXq0awfVxV+y2aB11ouFmuLAgoxinegJJt7B4bIZThoqYKcsuMN2WSfO5u5EtiOAk4NAsJsNnEM3rp2ILrHtzmppiUt8m4wr/cdrY0+4SGNDhfPJX9XuXX32MvPO6QBvnBKgLv3BSiO6qPmI1EVx8vEVE6uiDCPEwxZ1gHrpq74eY48R0GFxbYpmiKALJZJcl8t9U9h/bTcAfaxDH9LCPG4Rq2X0bvWfphrdFb8PW6lwhSR1fGaR06W+LX2fuMMNFGgCFoziOiiQ4p4ycdWxz2c61TctInwfaDZ8RvBJ9iQRFZ7uX3pBusEEaxyRW+I9jqw== 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=YDvUc5Lg3kfoN4Sb/WC3fCMh51yl0AAzH4VpwbOIevs=; b=CSuDe3H/pBG4/qBMChzEuXPSZz+VitsCO+Q/VAiQrSFZLh5/0QDz8cQfgU/o4F3Uwc5TyZHkjyYphzDTzi5P8wsyXxyL2b/hQTo6QodjeXn8aVnAzgxPCUMluhGRUxSub1NNE+vTg8nBPLzNLbYe8hXfMMKqYB0PYOwH6ZuYvs3LTAcCEWI4EaL2pQDR9RfBtRbKknlZgPJvrgBn5THPF9R14BYbOcsrVtwJPelZdGIr9lGolahpXLV5Bg303Zmoj2gOXZiujY8vS9W/KFRD0dR3DRjXzPpCM6kumhnKAscO3bgBmD/K3SgdoYcpUhcUzq8NrovTSFMWKEP49vUV4Q== Received: from BL0PR02CA0132.namprd02.prod.outlook.com (2603:10b6:208:35::37) by SJ5PPF0AEDE5C3D.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::989) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.26; Sat, 14 Jun 2025 06:36:02 +0000 Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com (2603:10b6:208:35:cafe::94) by BL0PR02CA0132.outlook.office365.com (2603:10b6:208:35::37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.19 via Frontend Transport; Sat, 14 Jun 2025 06:36:01 +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 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.15 via Frontend Transport; Sat, 14 Jun 2025 06:36:01 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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; Fri, 13 Jun 2025 23:35:46 -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; Fri, 13 Jun 2025 23:35:45 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 13 Jun 2025 23:35:44 -0700 From: Nicolin Chen To: , CC: , , , , , , , , , , , Subject: [PATCH v2 14/14] iommufd: Apply the new iommufd_object_alloc_ucmd helper Date: Fri, 13 Jun 2025 23:35:26 -0700 Message-ID: <107b24a3b791091bb09c92ffb0081c56c413b26d.1749882255.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: MN1PEPF0000F0E4:EE_|SJ5PPF0AEDE5C3D:EE_ X-MS-Office365-Filtering-Correlation-Id: 493849e3-7a39-4564-0209-08ddab0dbad8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ivEEGSh5arCL8omeE9+AwYjbAAvSWGIcKrjcJVXAPEqOWvzJ4m+row9GeubY?= =?us-ascii?Q?PMgzAgU7Xiw8AK8iUUDDII4VanGOtgK9DeviUB4yHhM/t5aTJA3WAIebQoW1?= =?us-ascii?Q?pcSNM/jeTyUMPu/ekrBmyhK4Wh7mJNJXKBA8gwBgwBbNiaqUiSs4iZDT7a+U?= =?us-ascii?Q?sZeDRwgDxC1OZzyeqwoj+Lxz5P9nBuhLreuxWyBCbYg6UcJ74f9kt3u+N5ad?= =?us-ascii?Q?UdyCQ/awfR54PLiz8C2GNb5RaS3E7eDZxm+8hkeAQJ4BNncvI6JP9nlBLysl?= =?us-ascii?Q?MZtnLs0Xb0Ccnq6xSBERIjheQsP/HDZwMG3H3w3UhpxaaS7vLzhz2MqPmi/E?= =?us-ascii?Q?XHb0QSpOUwd1REe18fj5b21O+OoIVIVYQBPLZyh3h2e7BcySX+P4H1oqlrEK?= =?us-ascii?Q?HgXr/AJ5ZW+MO63AQhKGRrcmLerpvsGDc7F4x6zNQhPHgpXqajl3ZM392AZ2?= =?us-ascii?Q?ML10haSYLhNH6GxcHd6b6Vl0/0LgVPJo1Troax72ML1408StbV1sAPOlaoOd?= =?us-ascii?Q?sRP6142NBxMLiPgE1ikX1QCdK0lp6MNR0pBZXJqXyArxuTtRkroqY0PBkTuO?= =?us-ascii?Q?RRuVP5+3qv5A+aI7jKpHp8nOQ85f7it/zPGllP9WjYm3JG4BMMkbd81xpC4n?= =?us-ascii?Q?7qTqSP+VcaP/NqbYuazxnlf30Wxq5OXFJSUh+fB7JVVE2rvvC3XIychvcgjA?= =?us-ascii?Q?G0vFbMjQk1pmU+WOoQJeB6LCtcscsmphy1xUBt+LZym/+vPl2ChaPiw5DyDP?= =?us-ascii?Q?ewxCV7tPAR37TwfEVOoQKCA6tbucLKJT4x0lyz1RttW1j6bRdgio4g19El1S?= =?us-ascii?Q?3kjXbdt8EinDrtlj/SyAoCduygRqto6vb8GS0W3GW9iVHnfZibRx1ncDoxdc?= =?us-ascii?Q?85UFtDKWfLOsILEz5yKh+VksvQE0NkIMmFvAoUA3mGbDbjkGLvCb73hirrE6?= =?us-ascii?Q?C5lZKL3Bka/ALTFbCWsZvk/d5DlP/abzO7l6ZxCipLsntCatson21KuyDB3S?= =?us-ascii?Q?OZe61NQjNRrIu2JmoMT2H4gtWJyhp1ggU2WJTaRTlbto/LfsQm4U8ElYW2I7?= =?us-ascii?Q?PyHz20fIUPt7c6P/XwYPo+JUHyn3ecDx9BnaamcWsNbypt2n6SVEif21GZ64?= =?us-ascii?Q?9jNFhAyXXeylVxEiWbDT/2ehXXxHOSUYM5NQBvjWP22mNGPhLokl+8vXDNan?= =?us-ascii?Q?IcuCSLuRP/rrEXwDp2GHJxQYZ2RKO+JS0riFXD87uN22dkR61EX0jK5li66G?= =?us-ascii?Q?3A8fLYfytjrspt2BPav2KcvRjnA+XSy6Y3xx1X1F+M4davpuN29MWR9qF+TF?= =?us-ascii?Q?I94kWrAnQ0LTtla7rHeIhyM1q+9qRVSV4xyXTLTR2xIKidCk9YKvA6SWIm0D?= =?us-ascii?Q?11cV1pKpnQZTKNEjlDj9XaQj4A3nbjwTBEVMO5B2JK1HchCQx+FTbfp+IlAq?= =?us-ascii?Q?cVY9cIk0GgK6DqdYe7gItrGXT/44Xe5la10PZK/XlgWOf4ZtG0nJyHOUXQxK?= =?us-ascii?Q?0Z7Nos6WDBDEMGP1pYzpNropvyNlaYRyLljX?= 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)(36860700013)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2025 06:36:01.2109 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 493849e3-7a39-4564-0209-08ddab0dbad8 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: MN1PEPF0000F0E4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF0AEDE5C3D 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 Reviewed-by: Kevin Tian Reviewed-by: Lu Baolu --- 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 044e3ef06e0f..25ac08fbb52a 100644 --- a/drivers/iommu/iommufd/viommu.c +++ b/drivers/iommu/iommufd/viommu.c @@ -63,8 +63,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; @@ -86,23 +86,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 -EOPNOTSUPP; - 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: @@ -150,7 +144,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; @@ -165,18 +159,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