From patchwork Tue Feb 25 19:39:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 13990825 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 36FAFC021B2 for ; Tue, 25 Feb 2025 20:21:00 +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:MIME-Version:Content-Type: Content-Transfer-Encoding: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=CHUIS8H7lCmGJIfDNmokPOsO+9kIuB4pJL9MpdOoQy4=; b=fMLjWxpR7jhR/O5DU1HdMo067Y PX0+RzErgPNMUkxqFt6xKMRJXMo6nGVpcZRlHanJmLDoMonEcBi3Zole/TypJtivEw+5BN4lXU9tk Xb4zFgS/PzjYU3Owpiaw5LP+J1taX+SzaBKucTl5jakw/sUO259QH9i2IvvmbuYFgo2qOy9uH3Heb Kdt72JK/l29wT44d8F6vGnHj6aK7HCCcPh1le8G9v9suDGvjs2ZkTsZWxHcytHPZs26hOomIPF32Y i33eK2QvgJZebrpOcnTS3ZopY/nPi37E9r1AsraO/gs46lcJbIqysVgAAqZ/gQLjsKJ9i6av5YEt0 DLXoFYyQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tn1QC-00000001LOp-3yaN; Tue, 25 Feb 2025 20:20:52 +0000 Received: from mail-dm6nam11on20607.outbound.protection.outlook.com ([2a01:111:f403:2415::607] helo=NAM11-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tn0mb-00000001Bzg-1rZW; Tue, 25 Feb 2025 19:39:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oql2jVuxq6/+wA4b/6UzLh75q+S2ps/oJSmuddIY6/lHKZIraAtpDyXRRXYCWUFKuXb/VPnxrgZLN/XRy5XRvHB3iUYMRfUuH7vQ18A9mnoQ4lAE2EZ1wifpJIH3IlbpGMkoNn4KsDMXssbo7vhaB9Ua69BUAO4g2gjVq0Pc3uEuq+40cMWq7Cm+qzs2T/9r/ikTl7Hjw4mA185YW1ffucej0qfxDtJyJ2pr5rshq3W18M+zrpxCureX4jIveYXPjata0wfke8fOs40woD4XjrcwxvS1mJMg0OcOBeM6IedGm1ggbhSbk+w9SzLtYtumCRIGvdTfWAnxkcFY2Zo4/Q== 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=CHUIS8H7lCmGJIfDNmokPOsO+9kIuB4pJL9MpdOoQy4=; b=ONk0Tw8UxI0j54yc1DBa/wiMun8o7FXPosNp1ZQnn+B97o1k+Cw6U2tsVB573HAFL17MlRA+aII6ybbNIF8071bdCQmcXjj7kj2BAuW7g8wW7nPrNIy1LfhNvmHkDFwdhDfG7BYx6uHw70k1RuPLit2xzIrtQy2cAiwKRcvuI/NEM07LdUsb87Q3BsCjha1V4KFlL3CTjhnD+5vfgXKO70mup0diOoZwqNDghfvej0Od7T9xm3982trO7Hr/GAZ13/sunOz0xmD4Ez8vRGZO0xxxvGJtE0MjzZzpJuH2a9vLdq7ugATY4rRq3h30aoeE69EnjEVwEdT10WhHF7BBVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=CHUIS8H7lCmGJIfDNmokPOsO+9kIuB4pJL9MpdOoQy4=; b=WuEWPhCzkwYBMtNeW06r/TTWN8r4Ce5rE1NY7I7PeekHABghQCS1DND6z+ykieSxtroCzvb0+hKtS4J3rDwpGlz2v47vTB5zwFXy/X/+pYajiNAPX1roJCPFUFAZRn/GSfT5ZEMJIsp3LaxIeA81ONBxkbAsmxVgj2YtD84jeDJOMlL8ooJqn7LSsesm4I+FhPpopEGB6+MHXqPaU64EmHGy2Va9yLTsqDo5wfa5nBOXqMc7s2e+D+70TWEsVy4aJKW9ypubQfeQGcY9lBeNNg9wSk0jgvljHEm/6STKRJQ3BWAMqSdJOnSyboNMp8s+asYCpX1DsvcBT+jTlnkxWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by BL3PR12MB6617.namprd12.prod.outlook.com (2603:10b6:208:38c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.20; Tue, 25 Feb 2025 19:39:50 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.8466.016; Tue, 25 Feb 2025 19:39:50 +0000 From: Jason Gunthorpe To: Alim Akhtar , Alyssa Rosenzweig , Albert Ou , asahi@lists.linux.dev, Lu Baolu , David Woodhouse , Heiko Stuebner , iommu@lists.linux.dev, Jernej Skrabec , Jonathan Hunter , Joerg Roedel , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, Marek Szyprowski , Hector Martin , Palmer Dabbelt , Paul Walmsley , Robin Murphy , Samuel Holland , Suravee Suthikulpanit , Sven Peter , Thierry Reding , Tomasz Jeznach , Krishna Reddy , Chen-Yu Tsai , Will Deacon Cc: Bagas Sanjaya , Joerg Roedel , Pasha Tatashin , patches@lists.linux.dev, David Rientjes , Matthew Wilcox Subject: [PATCH v3 21/23] iommu/pages: Remove iommu_alloc_page/pages() Date: Tue, 25 Feb 2025 15:39:38 -0400 Message-ID: <21-v3-e797f4dc6918+93057-iommu_pages_jgg@nvidia.com> In-Reply-To: <0-v3-e797f4dc6918+93057-iommu_pages_jgg@nvidia.com> References: X-ClientProxiedBy: YQZPR01CA0140.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:87::18) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|BL3PR12MB6617:EE_ X-MS-Office365-Filtering-Correlation-Id: 5106434c-214a-4bd3-9467-08dd55d427c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016|921020; X-Microsoft-Antispam-Message-Info: baXJSlA9DbYtdPXIhC3U/TMvh8zm/nJXZu976dS5iZCLFo1O8ZwxTlJfUCpDdQQ2LUlUz8xk7Gw8oYrIn9bkDVhuWaYRFDL36QTM6+lSxmcgFGQ8mpUDtGHKcWI5oRK1X/NW7LmS5pT/zyOeVVUmPNsyxih0QyuiyTi+wcH/yGwkRH12Q02YQY/LF+SHu+b12PyEyP2ZHiAIzuYCEtMMWbmmQolgKNuT0TAJaYPUvK3pkN6vOlqrKZBPAm9MRuO2ZmFIwHjeV4nIgQ7Pvh4NXcrasSU9x0F91T+q86sdft496CDfbsJ/6g4EFwwlQF++Ab+bXakpRAyYxsnXoKCG2Z4fOIeBTC3zOkdF8k+v0Jxol9ZFzB2k0fYJ5cLMbJnSaaTNE1HId3PnQgKS6h1TWfltn3jRGq6ii5/OJvXYaJQVpIeqdB2K+04Gsv3pQisSWjtYkPBIZFnqGlG0y6qycpr0vb1JHkixEARB6mgHWgy4EmaW+3PqFHGkK5asry3NEkaYCc6QArFhnqcHrbYZ4HuOSQFo8aPZL8tQQdcTYIhTjW7ofeOhrJavLIi1A22VAiV0z/q0FHvOgVxrINfB6A2C1QxwMX3O6lSBpBj5OHG1DxSzxIj1B/uAPfsvcVG8sDBwEgV3BmEeZBF5+L32nKsuEfSUhQU6auRifqJ9c8eYnTpG7sFMaGkOPxGl87D5RjgPOj5wAsr8eWnIEekJEBALgVNi6ISjXp8ZSfHQQy33vA4OxihR5O0rKQKiDDVrrU2aWYA/9ng4CpI+kGvmVAME2aRd68Wa2eGclWBQyewaUrWABHnl9JthfXoX6EuPN07wFKECEr0bLRYxOaKA1TvGfO8DR29O9diF2Fdn9JnGRKsQffBNC2RdetfRM6pv1o85TZEiMjP1dD1h8+ZTbSDL3YdKNbv5Ew1GbnQu8SgFiMTTTSHHc7uF+0yglhdHz8/jLGtPzJF/PZ+nGXRzf58QjoG/c8XMP5oGRBxwU9QmwP0Eukf4CXls3pQtH78Xr1PxkQX9khbv8hwC+k4+q5NPI+qV055p38LAGjaX+tSfC7WzEgxntRVCcGmFXBhOTwXgAZEnr7xNQ0QdwnNgGvwah6sezdSL9ZaiUC2M/yz0Qc9UTso0IaWOhp+xxZ9C1Sp7a9Zop3V4EoO8Ifb0dzFQvGpO9ZegkWD6O5mv0ABAkxg9ZGAXALiuJHK2Btba9BgY3ddth4YkVrjI4Kqw876mgd3Bpafwk54V/98gKEdiuoJeIC/vvE48LVpqXn1Z7bbxIF+ZjlS1voDCXpL1N/OYMCD1vJcOhlGTJZ/wGVY52vm5KpCTYM/PTDl576KjJ7jDw4rI1YiU2wEJn1MsAWWRqEDTV1HXMTG7UbsqFvvQzLQMMiHNwSxFIwSP7dhzJ/oftR208XjxcOlrUv10m73ivpoYZg2mu4fWgbKVb7U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RIAAQ8duQkri70cNzFKrO5BRxBmm475aeZo3r1R+sMjAFCwEM8ecEjUvn7ycuqHlLCOCnckGKVNAImDSV9FmldxpugGT0juCKvERYl9KTk5iYcQJLOsAyAaYvKcLT/NIrWCcP44kgB/nz8mbOZsEv9NTtjui1VIKzsihUWyg2zt1ev2vY64JVehMuswzK8kir7mpZO54Zha8hTuLqY5l9ftv75HsB/Oqv9qKw0glZ+ahQbxB8r3HGOV2Ylow7/JJIMy8rY4ltJWtbt1y1lta3k2XXLMTIS10bd87xoqHCGMvBhsTTi1d627lj5ML+1sK7bKqvD4n+aPfqjek0wChA61oI8qyARe7hlJ6wJ8/9NvGPL80HvVVmtiGbruJLthYYAqAd6nNrqDuzx+PGMYA3O9bu/Ax4V4MtgjIRDoLQXrEpyCSKimcY1pdjvAwFYJmRHV02q6tSTVHJ7A1RFwU8vz35MBruRHvRT1ySCTJafMPfSm8DLo3OyhALcqN5y4uBntR3BlS5G94/Oll3tDTT4NSpBp88d/pPqJSd+0zz5iMjobJpPJcm89tL+Ut97ur6G90KDQVVADWQx0k/sYqoVqldFbFtxlSiHtKsz+Qj5TKZFtq93Sc7K9qmuYcpSa4PUndX90//6HV434CyxKyOJtuNmBilZ3M3Pujs2hSig3YUf2XWyjYv+lCkU4mGaBiy9N7oa7mU4Mwk1V85kYQGSGdzj/s/XIqC7XWkzdDUv9q0hhsLE4YNW8m9LsEJxND997X1czwSM5WIrcZ3DhpjiZ69OeAMkaJKQeUiIdc+vpYvlkcsiP324vtzOK6TKvyOOGHL+fLpr82hf7Dzo7/FbnCl8L3ApvPkqnn9U1Jg7Cm11rDxby7beAMi2NFO92BYhpbVIQWEqJmLxoMxPw3DlDYb9N2B4mcFNVBrxpxzZ4XlmCc32ZpDhygyMWHHEJAQDi2CDLmb39hiWgFgy6DJIbtT/74vOyzNwbgGkA4hWs241y53i9TKoIb/fBW0V/IzTn2aRoPHa3Bl57Ee70ZzmqWD4RS/zE+AfuZsyazfP4l5hZAByQemLTVu/2n1+nn6kjWfHEw9IvhS7E0NH0hMkK64Nn/Pg/5AcFtuYgHCP7yZkvy0b0+1u9B6Pq4k3bWAflV0J8Fk9McUxtMtCNje26zTRZd0fGa0qa02UjxtTjjSnySNPXEVAQi40LQmR4LKFhghKX/Jf5LgI8GgDFFDkWM8d8pV07ycMHj9+h/9yF2OJ7A9DzB7ACCInTfi3XrhGGkxM9/J7ZwIEhH3NZeWw25kzkR64myfgV6OHle0i/FG267QJ+F+hhc1ZwuuMg+y+vgGy598e34B3+zYzZQ1bPQLSkngHcx6YABQxSV2soeIpDLOBMjHpzBNNx2Q7bCUZZBvtdW2pLu++iGuJ5mhtt2TBTFD3xpV/BxvJZ/tdhyWbNYyNzY/K5/G5VoJUThHgN04OKawfXrE0g7AE6SGUmXsGG9txfrKtVkg/chtOyT1rnigYffNvnuHjWLPNVaiu7ktjWfmO/aesrF7leEVSEpXAaTyQoAURV/MOeXEgGtFShVDHny2BZkvNkgnk6i X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5106434c-214a-4bd3-9467-08dd55d427c8 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2025 19:39:44.8662 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qIfz1B2HKzBfSly3rJ8BRFLXvOvrw363lX7Whb1dzz0cxFh2FJvM83kRb39E/lHQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6617 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250225_113957_528739_47B1178A X-CRM114-Status: GOOD ( 14.98 ) 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 A few small changes to the remaining drivers using these will allow them to be removed: - Exynos wants to allocate fixed 16K/8K allocations - Rockchip already has a define SPAGE_SIZE which is used by the dma_map immediately following, using SPAGE_ORDER which is a lg2size - tegra has size constants already for its two allocations Signed-off-by: Jason Gunthorpe Acked-by: Marek Szyprowski --- drivers/iommu/exynos-iommu.c | 4 ++-- drivers/iommu/iommu-pages.h | 26 -------------------------- drivers/iommu/rockchip-iommu.c | 6 ++++-- drivers/iommu/tegra-smmu.c | 4 ++-- 4 files changed, 8 insertions(+), 32 deletions(-) diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index 1019e08b43b71c..74337081278551 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -902,11 +902,11 @@ static struct iommu_domain *exynos_iommu_domain_alloc_paging(struct device *dev) if (!domain) return NULL; - domain->pgtable = iommu_alloc_pages(GFP_KERNEL, 2); + domain->pgtable = iommu_alloc_pages_sz(GFP_KERNEL, SZ_16K); if (!domain->pgtable) goto err_pgtable; - domain->lv2entcnt = iommu_alloc_pages(GFP_KERNEL, 1); + domain->lv2entcnt = iommu_alloc_pages_sz(GFP_KERNEL, SZ_8K); if (!domain->lv2entcnt) goto err_counter; diff --git a/drivers/iommu/iommu-pages.h b/drivers/iommu/iommu-pages.h index 3c4575d637da6d..4513fbc76260cd 100644 --- a/drivers/iommu/iommu-pages.h +++ b/drivers/iommu/iommu-pages.h @@ -100,20 +100,6 @@ static inline void *iommu_alloc_pages_node(int nid, gfp_t gfp, return iommu_alloc_pages_node_sz(nid, gfp, 1 << (order + PAGE_SHIFT)); } -/** - * iommu_alloc_pages - allocate a zeroed page of a given order - * @gfp: buddy allocator flags - * @order: page order - * - * returns the virtual address of the allocated page - * Prefer to use iommu_alloc_pages_lg2() - */ -static inline void *iommu_alloc_pages(gfp_t gfp, int order) -{ - return iommu_alloc_pages_node_sz(NUMA_NO_NODE, gfp, - 1 << (order + PAGE_SHIFT)); -} - /** * iommu_alloc_pages_sz - Allocate a zeroed page of a given size from * specific NUMA node @@ -141,16 +127,4 @@ static inline void *iommu_alloc_page_node(int nid, gfp_t gfp) return iommu_alloc_pages_node_sz(nid, gfp, PAGE_SIZE); } -/** - * iommu_alloc_page - allocate a zeroed page - * @gfp: buddy allocator flags - * - * returns the virtual address of the allocated page - * Prefer to use iommu_alloc_pages_lg2() - */ -static inline void *iommu_alloc_page(gfp_t gfp) -{ - return iommu_alloc_pages_node_sz(NUMA_NO_NODE, gfp, PAGE_SIZE); -} - #endif /* __IOMMU_PAGES_H */ diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c index 798e85bd994d56..5af82072b03a17 100644 --- a/drivers/iommu/rockchip-iommu.c +++ b/drivers/iommu/rockchip-iommu.c @@ -730,7 +730,8 @@ static u32 *rk_dte_get_page_table(struct rk_iommu_domain *rk_domain, if (rk_dte_is_pt_valid(dte)) goto done; - page_table = iommu_alloc_page(GFP_ATOMIC | rk_ops->gfp_flags); + page_table = iommu_alloc_pages_sz(GFP_ATOMIC | rk_ops->gfp_flags, + SPAGE_SIZE); if (!page_table) return ERR_PTR(-ENOMEM); @@ -1064,7 +1065,8 @@ static struct iommu_domain *rk_iommu_domain_alloc_paging(struct device *dev) * Each level1 (dt) and level2 (pt) table has 1024 4-byte entries. * Allocate one 4 KiB page for each table. */ - rk_domain->dt = iommu_alloc_page(GFP_KERNEL | rk_ops->gfp_flags); + rk_domain->dt = iommu_alloc_pages_sz(GFP_KERNEL | rk_ops->gfp_flags, + SPAGE_SIZE); if (!rk_domain->dt) goto err_free_domain; diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index 844682a41afa66..a9c35efde56969 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -295,7 +295,7 @@ static struct iommu_domain *tegra_smmu_domain_alloc_paging(struct device *dev) as->attr = SMMU_PD_READABLE | SMMU_PD_WRITABLE | SMMU_PD_NONSECURE; - as->pd = iommu_alloc_page(GFP_KERNEL | __GFP_DMA); + as->pd = iommu_alloc_pages_sz(GFP_KERNEL | __GFP_DMA, SMMU_SIZE_PD); if (!as->pd) { kfree(as); return NULL; @@ -695,7 +695,7 @@ static struct tegra_pt *as_get_pde_page(struct tegra_smmu_as *as, if (gfpflags_allow_blocking(gfp)) spin_unlock_irqrestore(&as->lock, *flags); - pt = iommu_alloc_page(gfp | __GFP_DMA); + pt = iommu_alloc_pages_sz(gfp | __GFP_DMA, SMMU_SIZE_PT); if (gfpflags_allow_blocking(gfp)) spin_lock_irqsave(&as->lock, *flags);