From patchwork Fri Feb 14 17:07:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 13975320 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 AF1F1C02198 for ; Fri, 14 Feb 2025 17:11:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=AXh4OSxtghFSadtrZy9MgpmAt+5Pz3iS0Y9FRtchLmA=; b=p1dVA0R/Tyc4uZ FVbWzkthDyA/d0eYUg6QMqI4sgmRx2B+TRRHu0GWlgJkpiNjYaGfDF9Ofw3D7VbKQcHQY6yEp72NP pDNa4lSdhimbrJRmuhar0KnGvSf5fCP+94D/NJuX9PTggTRXpv0paPhaFmzjk0A5Rndfmr3NqlUPH hcHKetL1dyVwZ0vqfz2Lg/gSHy1wwFUGHitW/WbZOTgMSGHU6Xg3mgFRh3CneYEozBAEmB27+LOlA 6rQAPVsSC3T5a2HKCVL72UUGyYR/M012EsSt5TwMzbX8Bb85dvf7+68lynqDdlhsJyKW0WYSNir11 4N+tAkLcqNQwbGgOjUNQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tizDW-0000000Fdjk-14wE; Fri, 14 Feb 2025 17:11:06 +0000 Received: from mail-mw2nam12on20600.outbound.protection.outlook.com ([2a01:111:f403:200a::600] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tizAd-0000000Fcpb-0W0K; Fri, 14 Feb 2025 17:08:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TthxjFNdAEq37xh/vOOKbz0sZHTixxwRVqzlvW9eJ3AW2dxpF2W6oG/Z/e0ChCUx0i+MAgJbF1vT4G+OGeU4ZuXgx2G0bpGaLl3iB30UlUxluCaW1iR/XLSsfTZsNnLjaekCitSFmVsKtyRIzJmecZG12q3429aTkfj/sU8sZMvpgBMD20gceNRFcrdYPOzKNRrotKp2QPRR784UAPFrXLsT+oQmqNTzegoLo8h/G/eMII9oWMdKaNiFAIuJwD8RhP95KgVYUUXwOJc9LOXk+Q4Mt27uPkz1Y3vxCKRPamhTZV+0vEF+EApuf+aolAYvQTsyvbllzHKGp153vfo1Ew== 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=8zuKTF9RfQhBDm53BmXULY7I+FEz59KIFvuzGP2148I=; b=SH1g9Sfd7/ua3HXgPf7wRmBnqhPLvroE3yRrv4CmDvrMgB+qauWITJ9RXxzmDb57NN10HokWcsHUUZBhKE8QEtn774P7mnHYX5eMnFYv7C9OiawPaOmY1LHlgIL3mM165sGBT+xEMjln2ZlIbboObkpxD4tISw3Ke7tezD5d9fa9ezW+UfYkONJJXGIsS72z97u6Kh9HUGAdQMBkurf1h5niUCKbKFuwQ6z93wk8aGxhVzx6dpnSl01HTvjgmus7h2fEHQuz9wg29iGdNF8AGTfSKNsriTA6gv7a73DVrtUof0NabO9ONsz7pA1GgXQiSpNWfq/yPwSbnuDO9tUu1A== 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=8zuKTF9RfQhBDm53BmXULY7I+FEz59KIFvuzGP2148I=; b=hgDwiq9t+Z640F95G5VGu9c3AL1HNXeg4rffsKH2xjKow/90QZcsF6Gz6ht95MCq2JYMExPGqQhaAXnAXOEyvKesUzQJh9xGmojFPiFTFfpw6umbcNwj7oKWXeoy0tEMKqBxjkZzRGr+MQfsfxCeQWEac46RNRt0kZJ0blzgxp4FFHwXgEZzCfbZ4vZxkwA7ftTYpCfSkEbtEIVjYlrnHpk9HCFP6mHjk/kXgHrPOGtvWf4qNvXMkRvP+TMOq23/qupBaeqZA3B7h9ki7xQvpk3kD4b/1Wo6neoCq6rcguRseDJCdk2izPYu0mw3kNdoflfJyBvD8EDPIG4f5SFW9A== 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 PH7PR12MB9175.namprd12.prod.outlook.com (2603:10b6:510:2e6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.15; Fri, 14 Feb 2025 17:08:00 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%6]) with mapi id 15.20.8445.013; Fri, 14 Feb 2025 17:08:00 +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 v2 20/23] iommu: Update various drivers to pass in lg2sz instead of order to iommu pages Date: Fri, 14 Feb 2025 13:07:53 -0400 Message-ID: <20-v2-545d29711869+a76b5-iommu_pages_jgg@nvidia.com> In-Reply-To: <0-v2-545d29711869+a76b5-iommu_pages_jgg@nvidia.com> References: X-ClientProxiedBy: BL0PR02CA0055.namprd02.prod.outlook.com (2603:10b6:207:3d::32) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH7PR12MB9175:EE_ X-MS-Office365-Filtering-Correlation-Id: 65e46406-dce0-4810-19a9-08dd4d1a2177 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|921020; X-Microsoft-Antispam-Message-Info: NsgoVvLiZgIwcKydFW0/zFhMIi2JtqYTTWFZ4pcXYPLeZHI2nOrs7DouVUa8o0vamrGUFO2tjNOKS1pSNxcl1WcoK2V6yo09IDBJ/vKAnu9JOoN5uS7F6ubvTrUhNfjllcKBI+sexwBhH9NIes/bxchs0iXykEZYSe3Gnjf0cwrCkyddW43wzmydIUPpzRO6fOoXllrMdkU2TS8WJrVjSal7nASqfr0ybuu45iJD1CVKGivDOAxsQ5bcdQSrLroOkVh7kVKpq4coNJ+8YDt3yoGszlaH7ESp0K0r6fnNDZpnAkLljQ0pWSnAc9Mav7TjmGqoTcipRde0ZWuNCvprT1C3/xpltKKUScKYGdLBlkit7kJ+VKJf/Of8qh2E+eoZ+BEHp7rENs0r9QLA8+hUKdDNlMOboc4HV9X22Pix0Ss9y9fQS8VEQxiov6q6+ehS6isHcS4Fgw/7ZNHQu02wF5pHdTKLv52adWCmZkOWg32FdwYuGezXFdjgH0DjDnYlH6SlMtSTDmPyEMy3C9Ccqsd4QVK5krOUCE+/eaaa2dfuJM5OYEaIaKtWZAxj0V0yjQwAD5zXw0b0hkExPSqQdxj8HeUbZinsvWKUazMo2s04BmNtZBHK38ZG4UE/MFQZ0aNaxtXrpFdsY2yuzJ+HIRlXMX3GGp4zjeFhxybj44wMPxMjkPXj0eq5aF6MOBk6CdnOVPlTEnbW8AlSKSkD8uh+fO+UVoblRxSiQq545wWZtNIWBPSBf5wRg/QM9ysJyKBxnraG6YKEbPbmBUM5by/RhTYTkVZEhWvES+OyMXgshiRHg6yhrKMdz11KoUa85V0k9f1zuBj3d66HZTjE16Px2am15RH2fx/meKQiN+lqgfDRF1WDATVaBaXJ0t50dYADrOserO2/3830TqgBL+VZeucfjBXzdtAOCsrAVypQ3w9V6z702EgjX+Z53ObSfHUWeHgKAZ27v1TPCK6iZ8I1zZSEWfm82J/KcRUV5Bcwsjw7IAAjevxWWiF390LfIgg2VVDXLZoBYOzO+P0ma1PDzFnTgVoQekfHws8SD0pmB5aDWexJWoyJ9+aeMeD65uys+ygXPnjsj6am55Pyq/nUOf5B2+ZHESBxDuCQ2S6gAMWkSE+UdmMB/Uy6cNCfR7rD2ogt5Z2NX9d4sAPBaJgOxt4sKdPape2RpaKC9QwfLJEBGDqigMMcWZDd/jAYW6Q7JXPxdcGKr9pIJLcAD7jqS9pbZfIihBZdM2f3HR/paIMiDsdBHAU5HwFW2/kIlSXFwhq8HfghBFqRCt/Q5JaTFMxkokTNCxbt9k10qipaW5qUMQrZoZHiZ7ykb7vWJHeOlK4qFOUc6AMqviUekzKBT49dEnCX1i/M7U50hILBrdcXRGc0iacESJpKpWlUiitguTvz1awkx1RtuoEjH1WkglLBEuXXdCTDoh1iGTM= 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)(376014)(366016)(1800799024)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Yjx91Jbw5jpLSgNOjYDZt+D1Dj6zv6usmMoIQDxNXXAwUpQPk1rhSqUzhdeK1sx+/Wbw21mhhgzjB0qkX5jfdiYazV4PDbk6WPjKgxILg2qcpCxtG/ItAQC5CmChWAPwqVj1uBdIWSI9UiCHVo6WM/EEBp2iy2mR4zlFi73cZatxT+Gwym7R+3gcu9b33A7f+io1KEYJfNcY3cFJtq07IWOeV5NGu9H0pD6VmwrLjJjiRqJFLeXiWTHHusJ7o6nYOYkAKV5a8QIxtpgX58Sk7nfnyRHnygYnHTZ69hvdSi5t4Gp3k80eZGBLu0eSL68yxE+jFK99nJDMtZnf32H857oationXyvoR5PFwAg9NN/aVYW+MEmFR20mVH+nULWvB7/G/Ak+T2fvQ96JcsnkYGXKfOS7SNLQ38MnjRtEc+aLUzx4QSmrxq1+pF3AcfDgduwBE4fEAGeqetZVqXUkpAbsHpkrzhB+hYWK9wjiww8HYXKE+C7pv88SznhoPKtzeEdUeeoAEd0oIjc7HT5BUiDILc3snLaH43U0JeiyfvYjZ2eGRhXqpD+5Dmb8oYmVQvMiVWws9P5sBrxJGPYkCyjJC1KVftxLQ6N/RNAaZ2/d3drkwPrXPvSluf0ie2CGUzImIMyE9cAOV5puSwUF181VhXT7Nxf4NuHYzr5159Kgttzq799F5gvKZ8C4om00cF+syY6cjIt48zQ8Lm3fI9cjgpnYhPR6Fn4xh/V28hjIf8mmdN1bOe4rT0SJNXUqHjv5QRSLkmGzT/AokUIJQ3MLyRlVkvY76uajbSMXFOkKDFGOHdoFtJB8i+JHZICzetPv96j0HXV0p6LOZluHmb9eJLkStbzuWqUcCtwuJwgWNpfCIPdzfAxlgoZ6VWgYV3nQ9WIJ8ZHENbvAn2qVMjUWBtvsDPLkg1gYo0U23v4fDR/1rTzWlxdTwqIZC1VRFVzsJwjjYfnLeQuaW1uaWrSbHdRi7fAa+w2y0qHjxKg9PNZAYnJtoXIOzlMjM5qn5bkgU482rCNR68b32qsssplu9GOjmbAI90MnugPimcc2kr6wT4iNo2aYg0nRmWsJcMJ12iRtJ1s5pJBlkRicr5xVl+37L1dPIZ8do6HCV6Hew5+UJMGLHSkbk7WdBWmAsuiU4Cv9X2RRCdvpP1oWkynHVs/SUYhxlmvuw8Pp0WKkXyeVS1JEd1fVXtMQkcwwiwdHRWenwp567WDt7fIxd9c3U+9VAJ7GtNdm5RjZzVGs6Npp6APZj11odPJUS8QpS4uNci+7Jq8xqxkIGYEN2DDJqxDfSjjkLZI+XS0p3fQBrclbc9ZEI/Biw1GJIKzcWNVozqsh/89ciZ9OY5YQm1BhkcK8BfcQA+TJdFEjRc+X6/t0u4IXgVheO3Es6TrROS9vIThwbMxZeeoU6U5fkCuQW1/+8sbtychfanRuv2Uz5t7pE9c2bDj6nGkqAqYcO0ch21d98xuZohv71XyrrYcF3TaAFEXZMQza5el+/nF4c3G5K3DqitbTc2Xb02kpDxxhej9BC3cKgj6HNBTntdjOa2gz237ybf9p57xm6m4= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65e46406-dce0-4810-19a9-08dd4d1a2177 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2025 17:07:58.4828 (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: vjgQx72mpjTnt55WENwB3zsKp1dvK8+EE667CMR9LNa3qEfzmTbc2pD/nVorJMZW X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9175 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250214_090807_214556_29E86D8D X-CRM114-Status: GOOD ( 17.34 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Convert most of the places calling get_order() as an argument to the iommu-pages allocator into order_base_2() or the _sz flavour instead. These places already have an exact size, there is no particular reason to use order here. Signed-off-by: Jason Gunthorpe --- drivers/iommu/amd/init.c | 29 +++++++++++++++-------------- drivers/iommu/intel/dmar.c | 6 +++--- drivers/iommu/io-pgtable-arm.c | 3 +-- drivers/iommu/io-pgtable-dart.c | 12 +++--------- drivers/iommu/sun50i-iommu.c | 4 ++-- 5 files changed, 24 insertions(+), 30 deletions(-) diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index e3f4283ebbc201..a5720df7b22397 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -635,8 +635,8 @@ static int __init find_last_devid_acpi(struct acpi_table_header *table, u16 pci_ /* Allocate per PCI segment device table */ static inline int __init alloc_dev_table(struct amd_iommu_pci_seg *pci_seg) { - pci_seg->dev_table = iommu_alloc_pages(GFP_KERNEL | GFP_DMA32, - get_order(pci_seg->dev_table_size)); + pci_seg->dev_table = iommu_alloc_pages_sz(GFP_KERNEL | GFP_DMA32, + pci_seg->dev_table_size); if (!pci_seg->dev_table) return -ENOMEM; @@ -716,8 +716,7 @@ static void __init free_alias_table(struct amd_iommu_pci_seg *pci_seg) */ static int __init alloc_command_buffer(struct amd_iommu *iommu) { - iommu->cmd_buf = iommu_alloc_pages(GFP_KERNEL, - get_order(CMD_BUFFER_SIZE)); + iommu->cmd_buf = iommu_alloc_pages_sz(GFP_KERNEL, CMD_BUFFER_SIZE); return iommu->cmd_buf ? 0 : -ENOMEM; } @@ -820,14 +819,16 @@ static void __init free_command_buffer(struct amd_iommu *iommu) void *__init iommu_alloc_4k_pages(struct amd_iommu *iommu, gfp_t gfp, size_t size) { - int order = get_order(size); - void *buf = iommu_alloc_pages(gfp, order); + void *buf; - if (buf && - check_feature(FEATURE_SNP) && - set_memory_4k((unsigned long)buf, (1 << order))) { + size = PAGE_ALIGN(size); + buf = iommu_alloc_pages_sz(gfp, size); + if (!buf) + return NULL; + if (check_feature(FEATURE_SNP) && + set_memory_4k((unsigned long)buf, size / PAGE_SIZE)) { iommu_free_pages(buf); - buf = NULL; + return NULL; } return buf; @@ -922,11 +923,11 @@ static int iommu_init_ga_log(struct amd_iommu *iommu) if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir)) return 0; - iommu->ga_log = iommu_alloc_pages(GFP_KERNEL, get_order(GA_LOG_SIZE)); + iommu->ga_log = iommu_alloc_pages_sz(GFP_KERNEL, GA_LOG_SIZE); if (!iommu->ga_log) goto err_out; - iommu->ga_log_tail = iommu_alloc_pages(GFP_KERNEL, get_order(8)); + iommu->ga_log_tail = iommu_alloc_pages_sz(GFP_KERNEL, 8); if (!iommu->ga_log_tail) goto err_out; @@ -1021,8 +1022,8 @@ static bool __copy_device_table(struct amd_iommu *iommu) if (!old_devtb) return false; - pci_seg->old_dev_tbl_cpy = iommu_alloc_pages(GFP_KERNEL | GFP_DMA32, - get_order(pci_seg->dev_table_size)); + pci_seg->old_dev_tbl_cpy = iommu_alloc_pages_sz( + GFP_KERNEL | GFP_DMA32, pci_seg->dev_table_size); if (pci_seg->old_dev_tbl_cpy == NULL) { pr_err("Failed to allocate memory for copying old device table!\n"); memunmap(old_devtb); diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c index c812c83d77da10..4c7ce92acf6976 100644 --- a/drivers/iommu/intel/dmar.c +++ b/drivers/iommu/intel/dmar.c @@ -1681,7 +1681,6 @@ int dmar_enable_qi(struct intel_iommu *iommu) { struct q_inval *qi; void *desc; - int order; if (!ecap_qis(iommu->ecap)) return -ENOENT; @@ -1702,8 +1701,9 @@ int dmar_enable_qi(struct intel_iommu *iommu) * Need two pages to accommodate 256 descriptors of 256 bits each * if the remapping hardware supports scalable mode translation. */ - order = ecap_smts(iommu->ecap) ? 1 : 0; - desc = iommu_alloc_pages_node(iommu->node, GFP_ATOMIC, order); + desc = iommu_alloc_pages_node_sz(iommu->node, GFP_ATOMIC, + ecap_smts(iommu->ecap) ? SZ_8K : + SZ_4K); if (!desc) { kfree(qi); iommu->qi = NULL; diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index 08d0f62abe8a09..d13149ec5be77e 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -263,14 +263,13 @@ static void *__arm_lpae_alloc_pages(size_t size, gfp_t gfp, void *cookie) { struct device *dev = cfg->iommu_dev; - int order = get_order(size); dma_addr_t dma; void *pages; if (cfg->alloc) pages = cfg->alloc(cookie, size, gfp); else - pages = iommu_alloc_pages_node(dev_to_node(dev), gfp, order); + pages = iommu_alloc_pages_node_sz(dev_to_node(dev), gfp, size); if (!pages) return NULL; diff --git a/drivers/iommu/io-pgtable-dart.c b/drivers/iommu/io-pgtable-dart.c index ebf330e67bfa30..a0988669bb951a 100644 --- a/drivers/iommu/io-pgtable-dart.c +++ b/drivers/iommu/io-pgtable-dart.c @@ -107,13 +107,6 @@ static phys_addr_t iopte_to_paddr(dart_iopte pte, return paddr; } -static void *__dart_alloc_pages(size_t size, gfp_t gfp) -{ - int order = get_order(size); - - return iommu_alloc_pages(gfp, order); -} - static int dart_init_pte(struct dart_io_pgtable *data, unsigned long iova, phys_addr_t paddr, dart_iopte prot, int num_entries, @@ -255,7 +248,7 @@ static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova, /* no L2 table present */ if (!pte) { - cptep = __dart_alloc_pages(tblsz, gfp); + cptep = iommu_alloc_pages_sz(gfp, tblsz); if (!cptep) return -ENOMEM; @@ -412,7 +405,8 @@ apple_dart_alloc_pgtable(struct io_pgtable_cfg *cfg, void *cookie) cfg->apple_dart_cfg.n_ttbrs = 1 << data->tbl_bits; for (i = 0; i < cfg->apple_dart_cfg.n_ttbrs; ++i) { - data->pgd[i] = __dart_alloc_pages(DART_GRANULE(data), GFP_KERNEL); + data->pgd[i] = + iommu_alloc_pages_sz(GFP_KERNEL, DART_GRANULE(data)); if (!data->pgd[i]) goto out_free_data; cfg->apple_dart_cfg.ttbr[i] = virt_to_phys(data->pgd[i]); diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c index 6385560dbc3fb0..76c9620af4bba8 100644 --- a/drivers/iommu/sun50i-iommu.c +++ b/drivers/iommu/sun50i-iommu.c @@ -690,8 +690,8 @@ sun50i_iommu_domain_alloc_paging(struct device *dev) if (!sun50i_domain) return NULL; - sun50i_domain->dt = iommu_alloc_pages(GFP_KERNEL | GFP_DMA32, - get_order(DT_SIZE)); + sun50i_domain->dt = + iommu_alloc_pages_sz(GFP_KERNEL | GFP_DMA32, DT_SIZE); if (!sun50i_domain->dt) goto err_free_domain;