From patchwork Tue Apr 8 16:53:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 880050 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2084.outbound.protection.outlook.com [40.107.93.84]) (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 3300F23370E; Tue, 8 Apr 2025 16:54:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.84 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744131270; cv=fail; b=lvInxDLSeqoJ8D6wrfLcEZ65NPeD5uVZPavi+oG2gn4jQ6O3fgTh0IvoAyhxi0aeF5ZKrLvNlnPFMpnMjFtm6V4kvcGBK44bLwoQ0dA+sO1pJJxlX3QCdtRHUnPc0tOzibs1pkc+twGrMhVuXfOms2d4vdyX+tFcjJSO+LQj9KM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744131270; c=relaxed/simple; bh=p/DxFK7+NFcx8ypmeCso7SNU0qNGt1jJ2gVg6XfLoXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KCs9zwNBD02FIpMzb5g57AZESRx4u/1lb/frl0lIsC/+KHwrWtV0AXK6OYoDJo6nsgsLv5/XFweMFBUn99xyMDAMrKFkOk7YsJVgy165OvaGDMqb1hf1U0PrMpluKrRVbDc6PDbGm9DymLTAuByVy2RZ0m9rL28IjQ+jnEvvjms= 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=l1EK8bIW; arc=fail smtp.client-ip=40.107.93.84 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="l1EK8bIW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K9UEWnoajhnKEzC1q39RY0gb0uvGyyNShaEfR708x34CzU+O03UQ04LkOfPkYr2/t1W7AOfPSYS2fXIuJotOi85krOTuSxPMaaHV7XYkFZhnnyuCNrK1DASzXxNo7D0W3ReASlw05Xi/HiV5J87QehjG/XD28FiYkOALjz/8Y02bxdY6wvAuoKAVThGwDuustwzYn+ZSTnURZBaL5AOWQ5FNZk2Pky7asDmciyxHdPYs2LGbqRqv9NHXYUsJe1l/QNP4MFhUGOfeN88Om6fhHkrNT/ltgFo4hj55sdPr/TKUvTqBaEgsB8ylg8m/ucbJrvTbQa9OpF3L6Kx2Rf1F3Q== 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=/TZ+x7gJ5UYyl3U4d0W7G7snnPyKONscK3UWinwyBxM=; b=WY11YVA0aM1EhnxWfUFwcvPxM6wyrHlyXjRnE3g0g6r/U7Q6UNqGiH9ozNOVwtNdx+1uL4ywdtuDdYPUPt/aFwOzNpPIiQqWV2+tTLQHgOy/lfj1R6xVElwJsZ+/ECOvsfQqYld4kmTFQ29STGzzaRGv4k5QZ66moALk7QMrLcwws+uS+1+9ZFLx8Ay/m9xWTTDzr7mIR/oTnMVgTUZDVP3JCfX8eIkFsIJ1cZf/QUJq2GDg2iTtW734PTk7BA3EgrPV5CTd+PF9aFn3O0dz4wB6kNSJhLDEDc/cyHw5l2kMeU/QwFSEi0zicib6WZh1rsQwOam5StcVErlZivRgog== 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=/TZ+x7gJ5UYyl3U4d0W7G7snnPyKONscK3UWinwyBxM=; b=l1EK8bIWScn4ophQl3LE62j9XMgmihR76YdZ3bZLB9/JMqrtwavmJnClKK0QZT/hjA+dliQpQxTQj6aNbKrTHw2bkA7VqR3y4I2kMm+GlK0Y6Bet6+y5Kvpy3zo4/SFz6L3w7uVYNx2zsYA0FDtZYNNkuJqdwc+Q48QylUcmB6nktno7ee1ccCzBeIyQhYZU04b4i6VsiBpdkipJVWbk6Zntvl5qfnwN90R5HxANwrhJmw6GlN0QB4Uy9fAKtvRTQXPbhR5PatHnaIq6c6jLELb/bK8uXl1FjwbffdalekQh5t7ME6PkuuU11LsikFcreZaMHgKfHA7v/C8rCgIl3w== 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 BL1PR12MB5971.namprd12.prod.outlook.com (2603:10b6:208:39a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 16:54:18 +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.8606.028; Tue, 8 Apr 2025 16:54:18 +0000 From: Jason Gunthorpe To: Alexandre Ghiti , Alim Akhtar , Alyssa Rosenzweig , Albert Ou , asahi@lists.linux.dev, David Woodhouse , Heiko Stuebner , iommu@lists.linux.dev, Janne Grunau , 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 , Neal Gompa , Palmer Dabbelt , Paul Walmsley , Robin Murphy , Samuel Holland , Suravee Suthikulpanit , Sven Peter , Thierry Reding , Tomasz Jeznach , Krishna Reddy , Chen-Yu Tsai , Will Deacon Cc: Alejandro Jimenez , Bagas Sanjaya , Lu Baolu , Joerg Roedel , Nicolin Chen , Pasha Tatashin , patches@lists.linux.dev, David Rientjes , Mostafa Saleh , Matthew Wilcox Subject: [PATCH v4 03/23] iommu/pages: Remove __iommu_alloc_pages()/__iommu_free_pages() Date: Tue, 8 Apr 2025 13:53:51 -0300 Message-ID: <3-v4-c8663abbb606+3f7-iommu_pages_jgg@nvidia.com> In-Reply-To: <0-v4-c8663abbb606+3f7-iommu_pages_jgg@nvidia.com> References: X-ClientProxiedBy: BN9PR03CA0047.namprd03.prod.outlook.com (2603:10b6:408:fb::22) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|BL1PR12MB5971:EE_ X-MS-Office365-Filtering-Correlation-Id: fd3cb10e-6cac-4ebf-53ec-08dd76bdfe4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|376014|366016|921020; X-Microsoft-Antispam-Message-Info: KnzCBJfwznu7aMmateBoGXR7ZWfeScETv3/0HPTXUCjl2EXruVrwUVH6xCnui+Gt+/ZmvVAfjMDhPdKI0maCDvYRejwmK70mSS6XcJxZjGw79gNVxZ3xz1qef2krtMy3WMFiSSwKDaqQcoOx56OZaJ29j19AwTpRIoXgAsWTsCKqKushq25D/LwggSy2TCznHZrKTJyvrc6DjoiV7d/bo3g2FEhpRCNnKL4+ACleKZEZl6RiYaj5403CB1YeEoTqNWljTbksxU3TOOb1WegItz2vTmQ8d7kAIY82EJ2HxT62O73Lh7ak4i3QqDyyoeJ5kyAvIIEvmkKbAIJucVmaGx71juE1/sVWgPVJJlqmTNhHN0U3FhAfqx6r7Zq1n8xE47qvT4B5txtgREzRnYIA0H55Liu6HHzMItjncAoAvIomne78IGvA0eiDScaRfAjxDf/hrO/2fgumLW8ghOvlh2Q998cQjBAENKXzLb+cBczxvBTC3B5XXYbPssjzgbgkyttpgFc2LNnrcbaVEjNUxHMHuYrz77NNTE+sFA91ZV35aClzX9jDWgFbGSpuUVfhfOUgwSsX4+lJqVeVb474Vs2EedOxS2NE2/p6xwzp/CSLBsgeEB5Fr1TXjx9IBxlsoF4ClLeRNu9UkMOP/0Ynp6Qv+hwZJCE61e03b6xYMxWbKsqqamhs1WwG1+MHLyEstjrA8QJuz8HNGU5TqCDnPH1U8tmDorw0pAsV67s84XycIGSZOA2LAEIukUOX7P2gyjv5Wf0PEe5JfnN6ESNL8gt2PKUHZM5dArR3zIJaMjlVDxWonHHK3h/lhTomipDXCTMVhZI0Luj3dA9z5W6UKrLpX5Z+NCD1rLTyCmwiKiW+6ASB+/qpJIIvywWTqkw+/NYPvZdtIVnIJeUF0OP1ATFO6wLNFaKcbNqxVv8OH2pC2H0NIhqsmh3hRrplKs3MbBGn3m6OpojKyBogFK0BMOyn5XM+XfDlvzxxb/NJehWgoFcv7pIYoBfdUyzS+KfXQwOwqcYRtwXlkI7Jk6mi8CIovFVJ13QxhErmq6hsDFtVODZERougsZS8bf+VjvOvlEHpQ+7zkv9moRht6SLtP/mPgNOzk1uoVpI5qkeNHNCFag2iXhjHCkKngkywh286nwRPnyNhKAv9Oo62ICKkMwfSveB/i7mXKAsZQAvdkjuGyhBHVbQ1MY/J/FCv+hqewQKgBL0ROuiwiKDjp5nLTSbxwdvh5ndqyDqZferZGKxy8GP/BoWN2VtGnfQ4gMfenv6QtcB4GaTu+9A2kJKjx3bNxQjtCBr8ZXLZI9sVy/ky8rpXsPt1zCrm5LqITZO2PcwGiAUcwjRaVHzI6hKaS1bU3OYJIVOHbHSfJg/wd3zilPqbf/ewPBQCBRXGzJ+UU2CGuIYItjtFEXKI8eqUKfA8knKY3E/NyDLxtgkx30z7w09wHMHPGB3+z6Wd5Bur 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)(1800799024)(7416014)(376014)(366016)(921020); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 315tOBdivZ401gp9Zj62WhOE597kFgKq2Od9aARJK1Viz3N12XDWfepFYIC8SGlpJ5pCRNUwqBRX2b1egKIvNy2acUi/+SzJrnhPmMJNa44Oba9cvywtX7XvMYFFXcoc+qP4pTQUFQasuM0Ezxn8eijpfL1QQ/x9R9qKAryC6cBacEKIRKZNngpxXPOLZIbdZ3dwITffu7sAuNWQQ90ufStk8eQXFH/pAFaO8StjjLdnC+0Dz7tXIm/VugA+gHEOWyFThKzIcAvKdACRD4mB9IsgExXvkXwMfyxvwGqotv7XnhpcWBJODZbouDMWR1VR9/4U1pAv4WIsQ9Podbh69OMKJ7WqTyUkOVHd7WYcKwtGvddMfZJ3P+YUOChkUiYv5EWs533F+tTMmiAqQ2PFqAYdg2dMv7WNzLFufKJVXb1b8+Uellw0ZMydopPoP9tdsSMXZtdNfg2LTW8Dot8S8Si+TvMKMJSVFPGraRv+yWXUrxqesn6VPxH+tob7BPny+cTIp7Npd7DLciruvngz6pqHnnUyoHpUKMX2J9+7CDd01ULEVLmjh5VCZrL5jpy8FASBUHBBL4k5T4iHg/sa3ACuk70V15SYPLmYeFxMmoJ/3ms4uBprR/GGiJ+ti6JL0aYTVzigyoEoNwaF9krI9aCwyhCrpSuQ5xyGvL+Ew5rtLuiR4AYtNLcDEXXDsWgmOVZlqJecIAq4noTY5RJtcupNlrzVdm9XafUZM8E9YDlVCg6LzH7JWoBthLfs9r/Qyg/MQ+QWUKHNJ+vIMqoYKOBSaODk3beWEuMcBFvMC/gYd9/HNPbF2mKsFgxDtLu0g0sSDG0gmHreUvWb3MXHh5boU+9k16DDhOLaY1J5uzsTorqAZXhPWqVMLqsa0W0H1MUGDyFr3bytEjWNjF6GQZ6MzChU4mj/C5r6YLRwz3TYIx4T1fgVFxWSFRt3B6a/qNQCed8f84rPMoK1eWXJQvhkBYP9ly7o1l1G3Z3fEX2LpIBUXp0G1PCLv6rNGV9Lj6zel8aMfrCWSNRtQbHFz2tAT8XaoyslVMTwvK4SNEjyy59LL0ZPxIKqnKtWirQBPfo8a7oVYBMEXg51ca+OOOFObygjSLotZvVC0GznWcuqJtWxzJl08BzAAfC8AsUusemSWKA2ahcU2Wh2N7NX134H0RaPWNxOmJ/sC4K/hwzbGxLfUe29TOmNXq/k5Oj/EdJ7BZjBzfhWOzNtmeS/uY15o40FfTPiLY+dPkno0xmXh5EYsTL+PMLGZnocUO8dsIKNOV1NulchyXJGHBWAt0b+fM+Zz+O4lBxuStyQYz3I0nx5+fXoKEuL/Out/p1jhNfNxVn3mdc1vONLqW6HRKNktAtSExByDgUzJ5o09d/WKHZaypIKAREoshUh8639hJn9eM31kxkiddE66+5n8/h5qdukaAa9d1XX06L3vGiTK0EwMccL0RDytuJWr/jYFhA25atiYmIKHLJrZRyNM5zUE3WvwWvbkbNzW3r3fSzhAZqVRFVxfxNAJqT36A2WcpIKY4YPoJQBLTMcoLvduVk9B0Aly/1s7WjNBxQMIlcq9ZVd+xzbZon+nEauZViJ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd3cb10e-6cac-4ebf-53ec-08dd76bdfe4e X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:54:14.9287 (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: SZBAqx51RsYfmr2IzJMp/i0VUGz3h9vm1WEdET2OjkDg7gApZfM1YxEEw5oJBXtW X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5971 These were only used by tegra-smmu and leaked the struct page out of the API. Delete them since tega-smmu has been converted to the other APIs. In the process flatten the call tree so we have fewer one line functions calling other one line functions.. iommu_alloc_pages_node() is the real allocator and everything else can just call it directly. Reviewed-by: Lu Baolu Reviewed-by: Mostafa Saleh Signed-off-by: Jason Gunthorpe --- drivers/iommu/iommu-pages.h | 49 ++++++------------------------------- 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/drivers/iommu/iommu-pages.h b/drivers/iommu/iommu-pages.h index 82ebf00330811c..0ca2437989a0e1 100644 --- a/drivers/iommu/iommu-pages.h +++ b/drivers/iommu/iommu-pages.h @@ -46,40 +46,6 @@ static inline void __iommu_free_account(struct page *page, int order) mod_lruvec_page_state(page, NR_SECONDARY_PAGETABLE, -pgcnt); } -/** - * __iommu_alloc_pages - allocate a zeroed page of a given order. - * @gfp: buddy allocator flags - * @order: page order - * - * returns the head struct page of the allocated page. - */ -static inline struct page *__iommu_alloc_pages(gfp_t gfp, int order) -{ - struct page *page; - - page = alloc_pages(gfp | __GFP_ZERO, order); - if (unlikely(!page)) - return NULL; - - __iommu_alloc_account(page, order); - - return page; -} - -/** - * __iommu_free_pages - free page of a given order - * @page: head struct page of the page - * @order: page order - */ -static inline void __iommu_free_pages(struct page *page, int order) -{ - if (!page) - return; - - __iommu_free_account(page, order); - __free_pages(page, order); -} - /** * iommu_alloc_pages_node - allocate a zeroed page of a given order from * specific NUMA node. @@ -110,12 +76,7 @@ static inline void *iommu_alloc_pages_node(int nid, gfp_t gfp, int order) */ static inline void *iommu_alloc_pages(gfp_t gfp, int order) { - struct page *page = __iommu_alloc_pages(gfp, order); - - if (unlikely(!page)) - return NULL; - - return page_address(page); + return iommu_alloc_pages_node(numa_node_id(), gfp, order); } /** @@ -138,7 +99,7 @@ static inline void *iommu_alloc_page_node(int nid, gfp_t gfp) */ static inline void *iommu_alloc_page(gfp_t gfp) { - return iommu_alloc_pages(gfp, 0); + return iommu_alloc_pages_node(numa_node_id(), gfp, 0); } /** @@ -148,10 +109,14 @@ static inline void *iommu_alloc_page(gfp_t gfp) */ static inline void iommu_free_pages(void *virt, int order) { + struct page *page; + if (!virt) return; - __iommu_free_pages(virt_to_page(virt), order); + page = virt_to_page(virt); + __iommu_free_account(page, order); + __free_pages(page, order); } /**