From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 40302C369CB for ; Sat, 26 Apr 2025 06:01:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Gj6dGnxvjESLxfj0q4qEyjVFSdUq1qiIEBAfCZXCSG4=; b=bbqlf30UnKqTR67Wef+HfFJrNI tbWHZQhfgZsQrqgBsg12s5jjfQ3+TWngBrawl4tOLvdAc8SkR5NV6TYzdrao39p+gtHs/nh4dmMx7 v6Giq9/3CKkwh2u5St9+1sGbqx3Bqb3na8LarMT/iruHGYBdL8WRRlFzqyv4Nx2qxAPCWsbO+pxYl 2p6OJa+57v0rkDxhhmL+kBlanCOZ0AnAduKldU1jfCWJm4NizuJVzwTWtC2c829VzEuVD0W4O+Q9i /w2oJHzo1YuyBLAFnj5mZ3fs6JjEKX7P/owYiQ3U4PyskHe5NhSVr6Jvh6yX+tg1cNj8E7w/s2EtI fGKkRaXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u8Yak-00000001UNr-0ybm; Sat, 26 Apr 2025 06:00:46 +0000 Received: from mail-dm6nam12on20607.outbound.protection.outlook.com ([2a01:111:f403:2417::607] helo=NAM12-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u8YYq-00000001TWx-1M7K for linux-arm-kernel@lists.infradead.org; Sat, 26 Apr 2025 05:58:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fjgww7xBZ6t6HGD6oT+nFdD8p9UZ8DvYkO88m/ajcX72jWOjX863kmsWa8HNk0swKsAydkzdOFqgeYq822fwDAxYtYKstwrOSU9LVx210PIHZl0pXSAu+YuR3Gf46mtxOTGxl4bULG+XwmJIcfMaxejrs8zFDo9do/QPdnb0KXkM9398KbwNwyUILWhGSvLcrmhmn9+owLcKIudA9d/iimwzIDJZPixRWZGBvwfbQyVs4eHFn00e5XYSJ4pj/FnhNwEtRF2y4ku9bQdBT9TYY/PdhfRF8jhWb8C78+jT0oOvZpTAOX21QYsBRoT/+CWTWC6GOBkimjSxnL20dydkPg== 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=Gj6dGnxvjESLxfj0q4qEyjVFSdUq1qiIEBAfCZXCSG4=; b=C8g7VV7DNjIj6k1NdFYLuuQe1Wuv/DJ/EeJagFyyxNAUOtZmL58iJp8TX/1h/UzdDYlbnfdFr/jS002cwBgmgr0f9GCu+IeE+nQ0ceAhDsPeFFeOD1bNry+J7LEIS/V6zNm+Odd/+Ch7kb3OW2YXXH3o5u/okGSUAeEgj9+DovXgpU71Ct/15J3wp8xA1D0w+n1DsoSO2iz/OsHkwjvOLLNpQ3bhaBXtWuzV4RDnwDWeyKE332mHcQlLHQAHGIqWCDFJQq1V4/f92cTiYseGTtto3XAxf0KHqqDDRBsG8ya0j9zTtRad5u4gyTeZw2wbGVfUbwzdVDsqNmF3DAULnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=lists.linux.dev 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=Gj6dGnxvjESLxfj0q4qEyjVFSdUq1qiIEBAfCZXCSG4=; b=L4dbhwqnTntUlFeXIHNS3GN0oFOju5sn1zTFkn1a+/gS8WME4v0fV15Ld+xEBmayZg/tjceBbOl94M9c903Ttjcjb0STBAUTzNu7u55SvlTsAb15flvKmJpCJnuXH0ZXK02EVAzKDWRcxkhMSXKeiaqbIXID5Frq5gzPy5xN1XtGP8lQjB0KahoZdg9Z2c4H9D1V1Fc+LflpS257wFIEr8DqUqgXvrMRmQ12tTgnQ/7Wu0Nz/gDfY8W7XsG43vExBCHtUQHEYmxMEzbkvj4MSHO/zhazwF04JSa2vGhw8AtYHslCnItzHH4S0KcZZ+Q8wx2KbzbphBxRFkMtbqlc9w== Received: from DM6PR21CA0029.namprd21.prod.outlook.com (2603:10b6:5:174::39) by CH3PR12MB9098.namprd12.prod.outlook.com (2603:10b6:610:19e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Sat, 26 Apr 2025 05:58:41 +0000 Received: from DS3PEPF0000C37D.namprd04.prod.outlook.com (2603:10b6:5:174:cafe::b0) by DM6PR21CA0029.outlook.office365.com (2603:10b6:5:174::39) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.11 via Frontend Transport; Sat, 26 Apr 2025 05:58:41 +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 DS3PEPF0000C37D.mail.protection.outlook.com (10.167.23.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.12 via Frontend Transport; Sat, 26 Apr 2025 05:58:41 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Fri, 25 Apr 2025 22:58:39 -0700 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 25 Apr 2025 22:58:39 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.12) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Fri, 25 Apr 2025 22:58:36 -0700 From: Nicolin Chen To: , , , CC: , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 02/22] iommu: Pass in a driver-level user data structure to viommu_alloc op Date: Fri, 25 Apr 2025 22:57:57 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37D:EE_|CH3PR12MB9098:EE_ X-MS-Office365-Filtering-Correlation-Id: dfce5b10-50f6-414d-deb6-08dd848765bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DTLFqtiVN4Riu6CrlDMTA66PFnbRr7/ip8Tcj1V8enKa4Rd/V9rHJq2XTsEG?= =?us-ascii?Q?BXFkJCBmwkhTNU4zXHMGpuyEsaUGIM4RRJvTAo+ywPjp0OvQYgW6wgPKxpFA?= =?us-ascii?Q?FHzqqAHSiAvkHMoxXJ52+r6WAOGQd71glEvqJVHUyTajHboNKe4PLFIjpgcJ?= =?us-ascii?Q?ONqnZUBMW1X+jHrSFLbJ+6pRINMyok6A7pO6GxfYqDcIDoM4+jtQKSm7lB9G?= =?us-ascii?Q?yt8mD+5asCEiTve1juesGreLtkHtya/f7UzQL2iLTzXS09HXFm+vx3h36ABw?= =?us-ascii?Q?ozRuxoKDbp1HhdTudJnFYVRU8Y08c3HoAoCsz3qOVz026UaNJ209YEfheZlJ?= =?us-ascii?Q?b/0OuSqC3rqHoCuHDvopV4uwn+F4Q4qzATOFB/HL43Y+RYDEtF/3s49yyC+X?= =?us-ascii?Q?9WNqEEjEh/QykMup+8kwoWsKyMsgZc8/1CN3a6365X9hYoufcTJGXNLn65qr?= =?us-ascii?Q?q/paOddxvQo5vt7i53dLbjdbuZUblYIMEpH+5WyaUElHZmnZqpPCv6O2Clf6?= =?us-ascii?Q?DNVhbDW1zKR2VP3tB+pQMi/q0WAHTxMyryZX/ImFuPp7i98Useg+RRd80NuD?= =?us-ascii?Q?yU9IMy6wBq7Ynmk5asO95s5d0ol0u9hSDhVutoGRdSrDPWESYiZ8QNgcvHLk?= =?us-ascii?Q?Z8n/VbVVxsahlvKBo+PXwwo0dO1WxPvxFtnoQ8/KftoMWdtLc7tNumb5UV4o?= =?us-ascii?Q?MdVQFCe+Hvbm2B5qsXhL4eDnNEIJbv+GTKzWV16mhpn6/qfBxY5+jyrCxaFH?= =?us-ascii?Q?KV/MannX/NxBbKAbT6+60M4UtzfKgEIvcf42eswlWrwQjCI3bVwHHiRht2Ls?= =?us-ascii?Q?zuTjyAVHDMizKr5ExHAhwkmFg7ID3kyNX4HmMt/BI3PuuUbs/DRkSakTByQJ?= =?us-ascii?Q?BvHT5TK7fb5qc9B8zWx9bIkBXLLH1nD2egu35sVwbULHlocVCHN8lvlu4uy0?= =?us-ascii?Q?7X+1kO/N094smsBfEzbRtD+gy+0X9e8iUI3dIDhguXO7G0y0WvoaI3rw1GkM?= =?us-ascii?Q?4RMvb2opbF/ZDq0aAmI6tkkfOzEGiNXfiILeIeELwn5y9Zq66stM6hSkFycL?= =?us-ascii?Q?ZWMdtdaS/EAEulv1ozDKhIznKNuolF0vHU9TTkI+xHuwnVPWk/fayqyTr8k3?= =?us-ascii?Q?6DDSiwVmGpf7CuEcA5neysJV5rZL5FHu+dnBVDgqSc25+ApuTrzzEFdRozRM?= =?us-ascii?Q?XFig6oSjrR1dpexLvuQcUm0fzsC0VVp7N1YxmVgAKkIYOObfQ2BVR9Xbkjwf?= =?us-ascii?Q?NwYjFI0/DqQfKX/COZFjc9Hu2j1AhnfjXTqYZdkNogY1esNvVMkBf05dzUlf?= =?us-ascii?Q?mawLNNJyuNLsSU5IhoZZp/QrrNO0BSU8qUwjXS9Cf34H15gKvlawiGY6RhOo?= =?us-ascii?Q?c6B5YEfLkMezeToqc5oJ5AdkfEk3sMYDGcBBdbNWynHxl0PbdATj7XIpZ3Vn?= =?us-ascii?Q?gGZmHZ+qOQIgNb9AMiJZ7Y+WtNy7wz+syY5jqOiNX0uwvxnjG0curMQ1Xr/y?= =?us-ascii?Q?WMeVKl11KA0v/9HGFHTnJpChl8QsQTtt17Zz?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2025 05:58:41.7596 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dfce5b10-50f6-414d-deb6-08dd848765bf 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: DS3PEPF0000C37D.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9098 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250425_225848_363162_59F13C7B X-CRM114-Status: GOOD ( 13.41 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The new type of vIOMMU for tegra241-cmdqv needs to pass in a driver-level data structure from user space via iommufd, so add a user_data to the op. Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 3 ++- include/linux/iommu.h | 3 ++- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 3 ++- drivers/iommu/iommufd/selftest.c | 8 ++++---- drivers/iommu/iommufd/viommu.c | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h index dd1ad56ce863..6b8f0d20dac3 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -1062,7 +1062,8 @@ 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); + unsigned int viommu_type, + const struct iommu_user_data *user_data); 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); diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 3a8d35d41fda..ba7add27e9a0 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -662,7 +662,8 @@ struct iommu_ops { struct iommufd_viommu *(*viommu_alloc)( struct device *dev, struct iommu_domain *parent_domain, - struct iommufd_ctx *ictx, unsigned int viommu_type); + struct iommufd_ctx *ictx, unsigned int viommu_type, + const struct iommu_user_data *user_data); const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; 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..66855cae775e 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 @@ -385,7 +385,8 @@ static const struct iommufd_viommu_ops arm_vsmmu_ops = { struct iommufd_viommu *arm_vsmmu_alloc(struct device *dev, struct iommu_domain *parent, struct iommufd_ctx *ictx, - unsigned int viommu_type) + unsigned int viommu_type, + const struct iommu_user_data *user_data) { struct arm_smmu_device *smmu = iommu_get_iommu_dev(dev, struct arm_smmu_device, iommu); diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c index 18d9a216eb30..8b8ba4fb91cd 100644 --- a/drivers/iommu/iommufd/selftest.c +++ b/drivers/iommu/iommufd/selftest.c @@ -733,10 +733,10 @@ static struct iommufd_viommu_ops mock_viommu_ops = { .cache_invalidate = mock_viommu_cache_invalidate, }; -static struct iommufd_viommu *mock_viommu_alloc(struct device *dev, - struct iommu_domain *domain, - struct iommufd_ctx *ictx, - unsigned int viommu_type) +static struct iommufd_viommu * +mock_viommu_alloc(struct device *dev, struct iommu_domain *domain, + struct iommufd_ctx *ictx, unsigned int viommu_type, + const struct iommu_user_data *user_data) { struct mock_iommu_device *mock_iommu = iommu_get_iommu_dev(dev, struct mock_iommu_device, iommu_dev); diff --git a/drivers/iommu/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c index d4c7c5072e42..fffa57063c60 100644 --- a/drivers/iommu/iommufd/viommu.c +++ b/drivers/iommu/iommufd/viommu.c @@ -48,7 +48,7 @@ int iommufd_viommu_alloc_ioctl(struct iommufd_ucmd *ucmd) } viommu = ops->viommu_alloc(idev->dev, hwpt_paging->common.domain, - ucmd->ictx, cmd->type); + ucmd->ictx, cmd->type, NULL); if (IS_ERR(viommu)) { rc = PTR_ERR(viommu); goto out_put_hwpt; -- 2.43.0