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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3EE9C77B7C for ; Wed, 2 Jul 2025 17:36:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEC486B00AD; Wed, 2 Jul 2025 13:36:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B264B6B00BA; Wed, 2 Jul 2025 13:36:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A14C66B00BB; Wed, 2 Jul 2025 13:36:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8A95D6B00AD for ; Wed, 2 Jul 2025 13:36:20 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 52F901A0382 for ; Wed, 2 Jul 2025 17:36:20 +0000 (UTC) X-FDA: 83620028520.02.CA14FA8 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf16.hostedemail.com (Postfix) with ESMTP id B1F3A180004 for ; Wed, 2 Jul 2025 17:36:18 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=D7o28+x2; spf=pass (imf16.hostedemail.com: domain of rppt@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751477778; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sPsy008v1AY89qmm2VLfT+Q06LRkn/MUfAQD71eYQCE=; b=qTk2qnZy+1fJ9ao42vj+66izp4XHwp9Xyq+uVwjNgDqPKvZ/h8onz8tSLcsdSsPvxYVuNU Lqe4uPpoTk38TiHg5+I874RMr4/356P5WEp+JPnJCgVTufNZ3JfJ4FGfnsES03XiaALN6d X1AVmPNJsxbqNChq5KGxHmaRWoPB9Yc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=D7o28+x2; spf=pass (imf16.hostedemail.com: domain of rppt@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751477778; a=rsa-sha256; cv=none; b=tufQHpKEZRu/IaDT7YPrOXX9vWZ8V+0cakpcm9sUHwCXXlYzZmE/xsLqP76Ah3Ii+7gkgC B5IOgCSWM0PqGavo2wD1D0RiWnoQjEpNphv/vDId/P0WNt+SA6kGmpubtUtuAxX0XeKM4H D7QctMS4kcoTOd3H5jSogeN4JdqylmE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id EBFC8A5314D; Wed, 2 Jul 2025 17:36:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60F5AC4CEF1; Wed, 2 Jul 2025 17:36:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751477777; bh=EXacDh63KkBz1wR1cI8SHJiNqTMma8mwS1tgtRPH3wA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D7o28+x2/mgxX5nwyTE3ftuQMeHogJzEYes3Ly2UlH8uednwmJKST3ewJ5iH2A1Vp ElfKd5xPUPlSCV83J4L+M7TikEEP1hf2Od29EO2TYF/Lgb4Z7X31knbOAweLKZsytn 8ByZtOgjwAjV1Kd4WyulYkTl9rdwgtMsOBNYnOkaJlnbBS4oCxG0etKLgn/yuscXDf W8onn6+Eggn8QWb83ajII+2fm/ZwSee7WmsUPFt2gg8+NiNljcHzwQaOt7NxI7cUSH EkQ8Sz8NxvC/LK9HmLz5ld857e2BlW3WQWLJj5sYPw7fWgFyAMRXaaqKOU+oZNtgrF ih5OigKav5t5g== From: Mike Rapoport To: Andrew Morton Cc: Alexandre Ghiti , David Hildenbrand , Mike Rapoport , Oscar Salvador , Pratyush Yadav , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/3] cma: split resrvation of fixed area into a helper function Date: Wed, 2 Jul 2025 20:36:04 +0300 Message-ID: <20250702173605.2198924-3-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250702173605.2198924-1-rppt@kernel.org> References: <20250702173605.2198924-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: B1F3A180004 X-Stat-Signature: 5ut7cy9r3dk65m5w8qe6zatiuz9no3qr X-HE-Tag: 1751477778-650981 X-HE-Meta: U2FsdGVkX1+irBOsidgzS/8ZNbN6Kc6vhf/nmFjSvobVZoZdsXyOE9De5mop942jC13IYs97GsBdpmnNK1f28yDT+fOqCbqqytSK4aud1bTZSsy04/dairrvfAa0i73H915W7TmHHgpHF00OoNDRuvG2jT8lI/xc1EBfUeJHQarZfnFeBzOlSfTx8VOHT9m/wXvEyKhjdxwoUl+u/ZuBtLMeqrJylVokuUE3dRJIpwFXGFYRICZs6HDaKu78yjMCHtq97caGuUJ8jerGAvRAVPg8lfJ+1zG/FyEbPtC1MgHzmrE0N44KKd0UHP1FAUmrCkqqKfy82QcuZNPe2kvRxmG2pfWRtAgUBCsbdoU6V6eaM9ArbKSX6aQmTlEgZMkZTt06pf7iX1hoSG25MXPEqp6jylM/L5U5hDmQOUjx5chDYmo7iKkyHa+Ob6CE7lPAHOW1oEpdlr1pnza7uJseYr/4jUHTAgXRtNh7skQSSuZp1gl5mYNZYQ8ScDqZtzGVQ6V7yRIMhyKwnSlbujQMUi5CyZ3elUg3eQtNQpI2gNAFWAV2YAyfJYBX/82nHIi1jcsLVGcySPjeRR9okDxjZ8evme9Xs5IWDo9lazE8hj5DLW3x92LBEmnVTou/6A/P1RfKk52u/We+Kw1FP/NVJylamQINJrG6jzM59qW7AMFxbkGrPQ5n/Hl04o31I2Ecfl6J7OlzMJytbKSb4UEI1rRwrgDUguZlCdGNg4I7pAUNNOoXiFdVCu5POgKlUkBHH1FbJrdyf6V+WwmuJ1Lc+qVR2EkCKqaMg3skiPIs/sLahihVszGnE1ULm8h8rSjpHK+SZzUla5SUOCVErtctnM0R/IYu+dK/u/kU0rux2Fagb3w/70fC7sP3JqHebM7AYb71tdPFl/5Sv5vdEJ781Vnkbjd3MHuu4x+sgQUpcP3qqo5TrY6IpqPETKF/JeLV670eIa4C7ljHwxcaw4i 24G2l6bq AjD6DCpkQP1QuYYTovxUjoUrzP6Pr+1+2pA8RMmfac105xvMyZXdIyzxKm6Vssa2leQl5qMp0x/HC6YHhWgalyPojsJTNnZXNu7e8a2k1gjV/UHnNHdzOYaLctD+tm7L8weOJUyCAARzf4YcS93Fpp5uxsPkbco6Mua/lWcA2wBWrbpHgeSYNNce8cXcpZVLFRdrSswomy3tcGrNOtie4OhG+bJDRO4zTKCgWwK1cMWN9VOc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: "Mike Rapoport (Microsoft)" Move the check that verifies that reservation of fixed area does not cross HIGHMEM boundary and the actual memblock_resrve() call into a helper function. This makes code more readable and decouples logic related to CONFIG_HIGHMEM from the core functionality of __cma_declare_contiguous_nid(). Signed-off-by: Mike Rapoport (Microsoft) --- mm/cma.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/mm/cma.c b/mm/cma.c index 9bf95f8f0f33..1df8ff312d99 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -352,6 +352,30 @@ static void __init list_insert_sorted( } } +static int __init cma_fixed_reserve(phys_addr_t base, phys_addr_t size) +{ + if (IS_ENABLED(CONFIG_HIGHMEM)) { + phys_addr_t highmem_start = __pa(high_memory - 1) + 1; + + /* + * If allocating at a fixed base the request region must not + * cross the low/high memory boundary. + */ + if (base < highmem_start && base + size > highmem_start) { + pr_err("Region at %pa defined on low/high memory boundary (%pa)\n", + &base, &highmem_start); + return -EINVAL; + } + } + + if (memblock_is_region_reserved(base, size) || + memblock_reserve(base, size) < 0) { + return -EBUSY; + } + + return 0; +} + static int __init __cma_declare_contiguous_nid(phys_addr_t *basep, phys_addr_t size, phys_addr_t limit, phys_addr_t alignment, unsigned int order_per_bit, @@ -407,15 +431,6 @@ static int __init __cma_declare_contiguous_nid(phys_addr_t *basep, if (!IS_ALIGNED(size >> PAGE_SHIFT, 1 << order_per_bit)) return -EINVAL; - /* - * If allocating at a fixed base the request region must not cross the - * low/high memory boundary. - */ - if (fixed && base < highmem_start && base + size > highmem_start) { - pr_err("Region at %pa defined on low/high memory boundary (%pa)\n", - &base, &highmem_start); - return -EINVAL; - } /* * If the limit is unspecified or above the memblock end, its effective @@ -433,10 +448,10 @@ static int __init __cma_declare_contiguous_nid(phys_addr_t *basep, /* Reserve memory */ if (fixed) { - if (memblock_is_region_reserved(base, size) || - memblock_reserve(base, size) < 0) { - return -EBUSY; - } + int err = cma_fixed_reserve(base, size); + + if (err) + return err; } else { phys_addr_t addr = 0; -- 2.47.2