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: 14043438 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 7E463C369A2 for ; Tue, 8 Apr 2025 17:09:03 +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=/TZ+x7gJ5UYyl3U4d0W7G7snnPyKONscK3UWinwyBxM=; b=vH8jBtWUw/7nLrOUA+C/FRJIkG XVqd6aq28WI1oLUSpqQdpws67drEGaSbmYxF/aNRsrK6zgA12YWYsDmheQkC/Y+9neiPsjaogHMrK 6kvT2oYP2pDbDfdVO2zl/dZsZQCpAcmrvvRHh3y07rVRekvyNY080kZr1AAM0vjV6PoTBkVCFGQjq 1LmsEHZZK2eYU6SKmXCnt/8BsvVg1yji/liJZ7ygTqGEnpl9RoogdUXrTuuvEg29swPkVsEBK1srB gpJb+DIKAhZFY3jNALf3/Ld0AM3h8Mzkc3G/Un51H90Z77DAvT7eFptHK/ifqf+7eT0bdrAwm0a0A MqlVklRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2CRQ-00000004vKB-10zJ; Tue, 08 Apr 2025 17:08:52 +0000 Received: from mail-dm6nam10on20628.outbound.protection.outlook.com ([2a01:111:f403:2413::628] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2CDU-00000004sDL-0qlb; Tue, 08 Apr 2025 16:54:29 +0000 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) 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250408_095428_242139_DC5528CF X-CRM114-Status: GOOD ( 12.57 ) 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 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); } /**