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 X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B51BC47082 for ; Mon, 31 May 2021 12:31:30 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 23DBC610C9 for ; Mon, 31 May 2021 12:31:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23DBC610C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BD8E96B007D; Mon, 31 May 2021 08:31:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BAEF98E0003; Mon, 31 May 2021 08:31:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A777A8E0002; Mon, 31 May 2021 08:31:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0213.hostedemail.com [216.40.44.213]) by kanga.kvack.org (Postfix) with ESMTP id 72B8D6B007D for ; Mon, 31 May 2021 08:31:29 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 14D8BAF80 for ; Mon, 31 May 2021 12:31:29 +0000 (UTC) X-FDA: 78201461898.14.CE902D6 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf25.hostedemail.com (Postfix) with ESMTP id EB49D600055D for ; Mon, 31 May 2021 12:31:16 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id F3E666135F; Mon, 31 May 2021 12:31:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1622464288; bh=309tkdm9I1/k2Co/st23BvuJob0lzdLSyQqCb3FEq5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=shfDXUt5Lezf1d+wGhhu727XGfae1hwajag2YZ137cnZTl0B/na6Vf8bUHnNhLWcT WDL60Wfo8EfCCBAwsr7gWELh2vywN4mSg5ZuH+KeAq3Pwl9n/EDdaxpSqRqzGw6lzF jz6t+S3yWvR8fD8/I/efykYVq8goZPliRZ+lqDA5PjiEl6id5iWfqxcXzTHq2SSf5P R3XUx/1lBgKklG8b5Ne/MMyJIdOZS4ey4MqYOW5bOIodhNki11uKX8zEIFwq4Y0P09 r9mcdDDc6cqMoPniLqJq3r7YlX/GBrJfp7Qn5kf3ivzA2MwWHqNFhEZcADG5BrH2I9 gIFsiBwqkFhgA== From: Mike Rapoport To: linux-kernel@vger.kernel.org Cc: Andrew Morton , Catalin Marinas , Christian Borntraeger , David Hildenbrand , Heiko Carstens , Mike Rapoport , Mike Rapoport , Russell King , Thomas Bogendoerfer , Vasily Gorbik , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org Subject: [RFC/RFT PATCH 4/5] MIPS: switch to generic memblock_setup_resources Date: Mon, 31 May 2021 15:29:58 +0300 Message-Id: <20210531122959.23499-5-rppt@kernel.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210531122959.23499-1-rppt@kernel.org> References: <20210531122959.23499-1-rppt@kernel.org> MIME-Version: 1.0 Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=shfDXUt5; spf=pass (imf25.hostedemail.com: domain of rppt@kernel.org designates 198.145.29.99 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: EB49D600055D X-Stat-Signature: dnh8bfy5xcae9dyp1d6x7kxzonq5gzco X-HE-Tag: 1622464276-701830 Content-Transfer-Encoding: quoted-printable 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: From: Mike Rapoport MIPS version of resource setup is very similar to the generic one. The on= ly difference is the reservation of the crash kernel area that is spread amo= ng several functions. Switch MIPS to use the generic version. Signed-off-by: Mike Rapoport --- arch/mips/kernel/setup.c | 78 +++------------------------------------- 1 file changed, 5 insertions(+), 73 deletions(-) diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 23a140327a0b..be49217f0f22 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -79,10 +79,6 @@ static const char builtin_cmdline[] __initconst =3D ""= ; unsigned long mips_io_port_base =3D -1; EXPORT_SYMBOL(mips_io_port_base); =20 -static struct resource code_resource =3D { .name =3D "Kernel code", }; -static struct resource data_resource =3D { .name =3D "Kernel data", }; -static struct resource bss_resource =3D { .name =3D "Kernel bss", }; - unsigned long __kaslr_offset __ro_after_init; EXPORT_SYMBOL(__kaslr_offset); =20 @@ -469,31 +465,18 @@ static void __init mips_parse_crashkernel(void) } } =20 + memblock_reserve(crashk_res.start, resource_size(&crashk_res)); + crashk_res.start =3D crash_base; crashk_res.end =3D crash_base + crash_size - 1; -} - -static void __init request_crashkernel(struct resource *res) -{ - int ret; - - if (crashk_res.start =3D=3D crashk_res.end) - return; =20 - ret =3D request_resource(res, &crashk_res); - if (!ret) - pr_info("Reserving %ldMB of memory at %ldMB for crashkernel\n", - (unsigned long)(resource_size(&crashk_res) >> 20), - (unsigned long)(crashk_res.start >> 20)); + pr_info("Reserving %lldMB of memory at %lldMB for crashkernel\n", + crash_base >> 20, crash_size); } #else /* !defined(CONFIG_KEXEC) */ static void __init mips_parse_crashkernel(void) { } - -static void __init request_crashkernel(struct resource *res) -{ -} #endif /* !defined(CONFIG_KEXEC) */ =20 static void __init check_kernel_sections_mem(void) @@ -656,10 +639,6 @@ static void __init arch_mem_init(char **cmdline_p) mips_reserve_vmcore(); =20 mips_parse_crashkernel(); -#ifdef CONFIG_KEXEC - if (crashk_res.start !=3D crashk_res.end) - memblock_reserve(crashk_res.start, resource_size(&crashk_res)); -#endif device_tree_init(); =20 /* @@ -683,53 +662,6 @@ static void __init arch_mem_init(char **cmdline_p) early_memtest(PFN_PHYS(ARCH_PFN_OFFSET), PFN_PHYS(max_low_pfn)); } =20 -static void __init resource_init(void) -{ - phys_addr_t start, end; - u64 i; - - if (UNCAC_BASE !=3D IO_BASE) - return; - - code_resource.start =3D __pa_symbol(&_text); - code_resource.end =3D __pa_symbol(&_etext) - 1; - data_resource.start =3D __pa_symbol(&_etext); - data_resource.end =3D __pa_symbol(&_edata) - 1; - bss_resource.start =3D __pa_symbol(&__bss_start); - bss_resource.end =3D __pa_symbol(&__bss_stop) - 1; - - for_each_mem_range(i, &start, &end) { - struct resource *res; - - res =3D memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES); - if (!res) - panic("%s: Failed to allocate %zu bytes\n", __func__, - sizeof(struct resource)); - - res->start =3D start; - /* - * In memblock, end points to the first byte after the - * range while in resourses, end points to the last byte in - * the range. - */ - res->end =3D end - 1; - res->flags =3D IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY; - res->name =3D "System RAM"; - - request_resource(&iomem_resource, res); - - /* - * We don't know which RAM region contains kernel data, - * so we try it repeatedly and let the resource manager - * test it. - */ - request_resource(res, &code_resource); - request_resource(res, &data_resource); - request_resource(res, &bss_resource); - request_crashkernel(res); - } -} - #ifdef CONFIG_SMP static void __init prefill_possible_map(void) { @@ -771,7 +703,7 @@ void __init setup_arch(char **cmdline_p) arch_mem_init(cmdline_p); dmi_setup(); =20 - resource_init(); + memblock_setup_resources(); plat_smp_setup(); prefill_possible_map(); =20 --=20 2.28.0