From patchwork Tue Mar 25 11:49:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 14028417 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 2137FC36005 for ; Tue, 25 Mar 2025 11:49:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77E17280003; Tue, 25 Mar 2025 07:49:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72F27280001; Tue, 25 Mar 2025 07:49:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D016280003; Tue, 25 Mar 2025 07:49:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 3EF1F280001 for ; Tue, 25 Mar 2025 07:49:45 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 8AA1D141D02 for ; Tue, 25 Mar 2025 11:49:45 +0000 (UTC) X-FDA: 83259903930.08.BAFB078 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf24.hostedemail.com (Postfix) with ESMTP id BF72C180007 for ; Tue, 25 Mar 2025 11:49:43 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=oOf08xfD; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742903383; a=rsa-sha256; cv=none; b=MEKzpMiIWrjuBLPuKfXCTMndHUs18aWQN3FMw3j7BzCWBpKQ/iicXE8VGMXWAIBf2vaLkC u8ErJ9BockiSCKEPv5pE1qhuH5XakjtMdwmohvTnNs+BsEdOrho8WA6n2s9CKcdUa1N7xB TA9AoolLpuM0rjbtmMsWH+Z88+MwNKs= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=oOf08xfD; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742903383; 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=aCEqOg1iUINjGqAiz790BBR9EkX1C05SQIJaX+iCabU=; b=MYYyjN9+J5h17X4iawFEH35BRQaZ6WoHL8V3qVrA3xfK0rJRoJwNR/BLO57N5Q1L022xZW gjQG82feBootkwMXngGhXg10rHdvRRdsY+A0mLVfaYDwj2+KiYv0O/EQZu5GK9T06+ECPy h4YCWvKJB+k5yzxV4lUpV+8JQAzpNzw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 052AC43A0D; Tue, 25 Mar 2025 11:49:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC8A3C4CEED; Tue, 25 Mar 2025 11:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742903382; bh=qfpWtkjNYrQGK3RsZjqYJLcEX3OyIabqO13P6PMbc7E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oOf08xfDf7JzudFmXaZx8QWeA/W+a8SOYgOsPFECAhIF+Kz9dt9TuQGFBcqSCdotd IoKuOSro0BZO0ID5go5sb8p8Nqjq5q6RSs4zpHIZJGG749PgL/qovWE0z5vhmBN+3W xhnUdNxCS7lSedIoO74EMJr9uNwWYu2iWpY9Ig3jRJ+YsMpgr/sEyhQSzo1VfS6ifV 54eD0LCdZYzKjgwkc3SwEvUifbEI8XH30cPaEupxQWQcdbFC5ESOCtORKNBk7rxm/T ogXNTDcmu2zBx51ubw91Gf0jjFjiwRXAN/KkeCajqMAzJfm/kVY3bQWO0HXMljOGoS ylQE4zurVIhIA== From: Mike Rapoport To: Andrew Morton Cc: Andy Lutomirski , Borislav Petkov , Dave Hansen , Ingo Molnar , Mike Rapoport , Nathan Chancellor , "H. Peter Anvin" , Peter Zijlstra , Thomas Bogendoerfer , Thomas Gleixner , Jiaxun Yang , kernel test robot , linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Subject: [PATCH 1/2] mm/mm_init: init holes in the end of the memory map for FLATMEM Date: Tue, 25 Mar 2025 13:49:27 +0200 Message-ID: <20250325114928.1791109-2-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250325114928.1791109-1-rppt@kernel.org> References: <20250325114928.1791109-1-rppt@kernel.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: BF72C180007 X-Stat-Signature: 7491q4sk78jabd4j9qii4jabzpcwjkrf X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1742903383-325853 X-HE-Meta: U2FsdGVkX1+eHkk7yNRJi2m4YarOzk6V8EydODwpiAH+J9QQLLMNOCzTRc3lXOCOyrpk3JR6rpT83MUIBIbjqRJcXByzBqVDGCALSEvpE82O7iuIUxYqgiXQvajDtdGBu6RZR31QhF48v9JR3joTafZvyVbCOOqyU9RlmWvWUDjzIiS6EW1LxmueiTjvoaejH3pa9bwzhU24qCQEaKqVl4DxAeIPs2esQ2QTjEsWEajILPaZwDZFMmippikbsw6AELBwurMQzi7W42ksNZOJZxtIt4jMJPUfUqscoootHWPywUo/PLR9B+77fRGu4Ly+dxgZlxZf9IXABH1SqZz2zqXwGsGgO6V2Q4YAWXZe9hEAUNqXTBsa5zvB7ikyVEZXBqy3KKKlUiJwIc533gBT+0Ch65R/nNGaMfqh/Ww77pb3mt84HKpcKilzcvttuhv4BxscGce8CEWNqZcCXs0BTMg3RD3Z5xIjCp0OnFzPpWEUoDHJwFAIBCUeTBhCkgkEPkv54NrJcEnziUMVkSMEvBlN0U43QF87HQpUqevWWBlHCL9AINIv6qtyoW5srU+p5r9/ohVm5aQBRwhGG6xavXKtDSqZ0VqbYyFfuKvmdpUnKddnOnM0uZAJhmXGzJSOHrOSs8qyeWK5it66vVoyo61vs4BnvEbNvfdTNwALohHQATOpdqKE+M8cSWu8IKCAmdLypeZlRDeWsMN9RcdiYcntoqNTsoGP/eIUkaobCie7U8O0+yJrvBJ/p+2+JgkoRYtfoYW7kSi64mbUde2dRyAl2kYP6cqesWNtZF8XUETJR0lL5nEdVcjbSKJ/1Lk2lzGFNjjiA4hzaYPBH3m8BOCjZ6UpPpwX2RgWowBS0Zj6ddTruF73Npz/mpXi55AwvYSMpDI3nXBq2X/cafIiPBiPm1pv8ROXfRydwTMW0gMyo7PM9SrKeI0A33eOBT5DmLTUYBIxzTim4QwPJ6j eGE7Qcfc 8vr+OaiR7nLfDyCsQ0aqXme2SMMpnJ9YyjwlgDkv3T4AdksvavBSLRcxvPzJ3kBWt1qGK+JFp561+NWQ2Vtd+I/MN7BHLnF+dpdkCnkCajrxfmtDjPoXnMkuxY8nTRhzBUU8569pj/H9i5ns6PoDvismWPvwAyqm75sicvXwxjfrbhouiqUTg6sDh5CH87yHRgaWqxjf3f9k2erLyCUIumkO5c4qRZULN/LHnhtIIHcsqeDbpA/CFrpfN/bivWzVuDByaRiaVrH1LwuyK21BrqGpEmoaPjPkhwcBGZH54ltp0HhURlmOz0BFTkP61TbgiUjB8LCenj4cOoLE= 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)" Kernel test robot reports the following crash on 32-bit system with FLATMEM and DEBUG_VM_PGFLAGS enabled: [ 0.478822][ T0] kernel BUG at include/linux/page-flags.h:536! [ 0.479312][ T0] Oops: invalid opcode: 0000 [#1] PREEMPT SMP [ 0.479768][ T0] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.14.0-rc6-00357-g8268af309d07 #1 [ 0.480470][ T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 0.481260][ T0] EIP: reserve_bootmem_region (include/linux/page-flags.h:536) [ 0.481683][ T0] Code: 5d c3 01 f1 89 c8 ba e1 38 f4 c3 e8 1e 37 8e fc 0f 0b b8 90 e2 62 c4 e8 e2 05 5e fc 01 f1 89 c8 ba be 85 f7 c3 e8 04 37 8e fc <0f> 0b b8 80 e2 62 c4 e8 c8 05 5e fc 55 89 e5 53 57 56 83 ec 10 89 [ 0.483177][ T0] EAX: 00000000 EBX: c425df50 ECX: 00000000 EDX: 00000000 [ 0.483712][ T0] ESI: 017ffc00 EDI: ffffffff EBP: c425df34 ESP: c425df2c [ 0.484248][ T0] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00210046 [ 0.484846][ T0] CR0: 80050033 CR2: 00000000 CR3: 04b48000 CR4: 00000090 [ 0.485376][ T0] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 0.485907][ T0] DR6: fffe0ff0 DR7: 00000400 [ 0.486253][ T0] Call Trace: [ 0.486494][ T0] ? __die_body (arch/x86/kernel/dumpstack.c:478) [ 0.486822][ T0] ? die (arch/x86/kernel/dumpstack.c:?) [ 0.487099][ T0] ? do_trap (arch/x86/kernel/traps.c:? arch/x86/kernel/traps.c:197) [ 0.487409][ T0] ? do_error_trap (arch/x86/kernel/traps.c:217) [ 0.487752][ T0] ? reserve_bootmem_region (include/linux/page-flags.h:536) [ 0.488153][ T0] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 0.488490][ T0] ? handle_invalid_op (arch/x86/kernel/traps.c:254) [ 0.488869][ T0] ? reserve_bootmem_region (include/linux/page-flags.h:536) [ 0.489271][ T0] ? exc_invalid_op (arch/x86/kernel/traps.c:316) [ 0.489619][ T0] ? handle_exception (arch/x86/entry/entry_32.S:1055) [ 0.489996][ T0] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 0.490332][ T0] ? reserve_bootmem_region (include/linux/page-flags.h:536) [ 0.490733][ T0] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 0.491068][ T0] ? reserve_bootmem_region (include/linux/page-flags.h:536) [ 0.491470][ T0] memmap_init_reserved_pages (mm/memblock.c:2203) [ 0.491887][ T0] free_low_memory_core_early (mm/memblock.c:?) [ 0.492302][ T0] memblock_free_all (mm/memblock.c:2272 include/linux/atomic/atomic-arch-fallback.h:546 include/linux/atomic/atomic-long.h:123 include/linux/atomic/atomic-instrumented.h:3261 include/linux/mm.h:67 mm/memblock.c:2273) [ 0.492659][ T0] mem_init (arch/x86/mm/init_32.c:735) [ 0.492952][ T0] mm_core_init (mm/mm_init.c:2730) [ 0.493271][ T0] start_kernel (init/main.c:958) [ 0.493604][ T0] i386_start_kernel (arch/x86/kernel/head32.c:79) [ 0.493969][ T0] startup_32_smp (arch/x86/kernel/head_32.S:292) The crash happens because after commit 8268af309d07 ("arch, mm: set max_mapnr when allocating memory map for FLATMEM") max_mapnr is rounded up to MAX_ORDER_NR_PAGES and the pages in the end of the memory map are passing pfn_valid() check in reserve_bootmem_region(). Make sure that that pages in the end of the memory map are initialized, just like the pages in the end of the last section for SPARSEMEM. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-lkp/202503241424.d16223ec-lkp@intel.com Fixes: 8268af309d07 ("arch, mm: set max_mapnr when allocating memory map for FLATMEM") Signed-off-by: Mike Rapoport (Microsoft) --- mm/mm_init.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index a38a1909b407..84f14fa12d0d 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -984,19 +984,19 @@ static void __init memmap_init(void) } } -#ifdef CONFIG_SPARSEMEM /* * Initialize the memory map for hole in the range [memory_end, - * section_end]. + * section_end] for SPARSEMEM and in the range [memory_end, memmap_end] + * for FLATMEM. * Append the pages in this hole to the highest zone in the last * node. - * The call to init_unavailable_range() is outside the ifdef to - * silence the compiler warining about zone_id set but not used; - * for FLATMEM it is a nop anyway */ +#ifdef CONFIG_SPARSEMEM end_pfn = round_up(end_pfn, PAGES_PER_SECTION); - if (hole_pfn < end_pfn) +#else + end_pfn = round_up(end_pfn, MAX_ORDER_NR_PAGES); #endif + if (hole_pfn < end_pfn) init_unavailable_range(hole_pfn, end_pfn, zone_id, nid); } From patchwork Tue Mar 25 11:49:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 14028418 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 3D11AC35FFC for ; Tue, 25 Mar 2025 11:49:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B3238280004; Tue, 25 Mar 2025 07:49:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ABC82280001; Tue, 25 Mar 2025 07:49:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 95F75280004; Tue, 25 Mar 2025 07:49:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 75BF5280001 for ; Tue, 25 Mar 2025 07:49:49 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id DB5591CB715 for ; Tue, 25 Mar 2025 11:49:49 +0000 (UTC) X-FDA: 83259904098.09.B4107B3 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf14.hostedemail.com (Postfix) with ESMTP id 379A4100016 for ; Tue, 25 Mar 2025 11:49:48 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=LlmENNuW; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf14.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742903388; 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=wWGcHm4s4kabqV5R0PqUtbvMZiGm74D5FQ9XOHP9+AU=; b=6Kb5cm9+QViyS8eFtU3RS+X8AyaiPLbkSKv1zgHCZrwK/momwTWgl1uoahZSV71EMLZSND Vx35R8Sk8TZK2S1QwluKPGan9J3ToFUFeGjIJNaOMDizSVC5qwZDXgu1nFsApq/ha16dmc 1PK36Dp1Gb0RnoC1cds0+qcBjlvPdqs= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=LlmENNuW; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf14.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742903388; a=rsa-sha256; cv=none; b=aTARq5/5k3x9s+r0HA8dMRjMWqssR2Wm9fEDzP/+Z3/3kyWDL93tSng13ufvtCssp1Es4o nHlTGP2WGkvnPjEMdUzJHuSPLtjGLon8DT/fUBOYYwMXnri1zFKMh7gCCnjv7APjN8bVN4 Y1sAEN5oTV/w3pVLTAEnliPkL9fc7do= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 729155C48BF; Tue, 25 Mar 2025 11:47:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B20B9C4CEE9; Tue, 25 Mar 2025 11:49:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742903387; bh=KjXVzwyQVPVG7ZDGogZ7pwFZUzgPV51utp1p2Si+3js=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LlmENNuWOSzOvGs96AushtPG9bBtDl6hM3+nqxlYmmYaE/ThuySmRGQjosM0AUOXR UdMsC0fDvyny1gFz0OogOT/19sg+tiajV7LTCrUIvnePjNqJPGgtDqwfq9VyFsFNYb UBWTyUVwiPNT7wsP63t3xozIA8yWGnfH+hzWYZVAACcabDM603Eo1kIoFMhYzvNFcg gHOAZv3QgU+0gv6cI60MYChaEeRDpKvwij//iW7o4L2MaWDz73Detuybq2YijYvUar 7NnKRw3BbGK45V7Kf/NURvWILQbRSsFkFGx3Y9Yo5bXzQhfAfNlbICxS57EgPPbQeV En3tNRx9fZGog== From: Mike Rapoport To: Andrew Morton Cc: Andy Lutomirski , Borislav Petkov , Dave Hansen , Ingo Molnar , Mike Rapoport , Nathan Chancellor , "H. Peter Anvin" , Peter Zijlstra , Thomas Bogendoerfer , Thomas Gleixner , Jiaxun Yang , kernel test robot , linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Subject: [PATCH 2/2] memblock: don't release high memory to page allocator when HIGHMEM is off Date: Tue, 25 Mar 2025 13:49:28 +0200 Message-ID: <20250325114928.1791109-3-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250325114928.1791109-1-rppt@kernel.org> References: <20250325114928.1791109-1-rppt@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 379A4100016 X-Stat-Signature: sd65ij711br38bidogg15k13tj1reio3 X-Rspam-User: X-HE-Tag: 1742903388-918810 X-HE-Meta: U2FsdGVkX196rOO7OiECWCK5KIQJro2VoWeDBpIbXSDQsPk4oeHeuNalJudMY15Kpbs9f9fsU1oQPuc/sUn2FR/Wcd0Eumt/IQzSdAXa5AUfolm99ML0OKFy1RdFZAbBFn45CF41S+DknIb1TyTx/DKG+ykybpOS5/GekjzjJXHrnNY3w9xrTGsR7tBTFqQDQOEsLXIUeQ7Lp2YOEzgPO51eqIfXVMq9bLb+A/DGzGc7UWoHr3fgn7Hj7mMUBMMzg+5EoJDVOBPfOa382VvCD3L7VxyXEHoXsGwxzM1rIU0fGaH2YuCCKb+CBcF4DiU6IWFzqZfg5jbggE6lYhbdZLzZmWVdnda7bCXlZm6T/5kgLtd2UqdLd/wJvrdurrPW+u36fEMdBHzkulo9WRu379vc9Fesu3gqPFwE4du3ZF1kfNcASaHK2ePyS1p1L/5rmFi1ER+d02O07Kac+ncuQxq0oefG6ApTT8Hqorfdc1Sjm9SneJdBRawjS5zXqr/WquxUPeuGaqNyNMY0pU3WZI7A7538BGTCwDSM+HaGVm9jtH5kd6zSove1rm+q7d8Y4gEsffdtrIHLrjv4mPaXDEoZj5GXa4j2/iO9nrqM9oLlHpW2PB6sPmvI08loGXK9lBLA5K79bcTLCiv8YpZQpBl0F+UIQtYcsp06g8LoTyLuldoK5ioQLlbB7DdMHA2Bl83se5/AowKRlXth271d4ImhySgJ9kvUb6OJLQnYeoI6AMBy+BOiuh3chZR5DpdnsVEKJxBeAKBgnWR29F8heKMJ0RR/gd52Bm/5h4GA4zs6ZJIemiRv1O/0dxH49qZYAczqOpEwE+En1Xn4zMCJFTaBkH7lSpAkToCzyBbOKCbUkm/KcM5L1NqtnNfpMcWOhkoKgZH/7vl8hlRIeXBVMpwK4heXs99kRKW71i8hfhCEoe28W84MpJWCmgXyDixI55LKorjf0Amgh51p35W RQdDFDJd EwVuwMOshHmWKKybWTLDMLE8GJgMBNYDmSHgrCo/t5iMPKLnhqUVpLFbyH+mIPpYU79Zd5dusnL80HsMznpL84UxvsBNfsuv+JTZOpi32GjXVbIneJ3SzFQL77NJKbB5mYEgCZ4HpH7/FGYrEYw9JmNvnqeNFQQ6UHmx+dKiR51bKM3Hs3XMh29wlAQy6E/9Fqve9Cw16nhEdCWNFyJtjCoJ0W1oBlFL5M8/73jGr4/642iA= 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)" Nathan Chancellor reports the following crash on a MIPS system with CONFIG_HIGHMEM=n: Linux version 6.14.0-rc6-00359-g6faea3422e3b (nathan@ax162) (mips-linux-gcc (GCC) 14.2.0, GNU ld (GNU Binutils) 2.42) #1 SMP Fri Mar 21 08:12:02 MST 2025 earlycon: uart8250 at I/O port 0x3f8 (options '38400n8') printk: legacy bootconsole [uart8250] enabled Config serial console: console=ttyS0,38400n8r CPU0 revision is: 00019300 (MIPS 24Kc) FPU revision is: 00739300 MIPS: machine is mti,malta Software DMA cache coherency enabled Initial ramdisk at: 0x8fad0000 (5360128 bytes) OF: reserved mem: Reserved memory: No reserved-memory node in the DT Primary instruction cache 2kB, VIPT, 2-way, linesize 16 bytes. Primary data cache 2kB, 2-way, VIPT, no aliases, linesize 16 bytes Zone ranges: DMA [mem 0x0000000000000000-0x0000000000ffffff] Normal [mem 0x0000000001000000-0x000000001fffffff] Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000000000000-0x000000000fffffff] node 0: [mem 0x0000000090000000-0x000000009fffffff] Initmem setup node 0 [mem 0x0000000000000000-0x000000009fffffff] On node 0, zone Normal: 16384 pages in unavailable ranges random: crng init done percpu: Embedded 3 pages/cpu s18832 r8192 d22128 u49152 Kernel command line: rd_start=0xffffffff8fad0000 rd_size=5360128 console=ttyS0,38400n8r printk: log buffer data + meta data: 32768 + 102400 = 135168 bytes Dentry cache hash table entries: 65536 (order: 4, 262144 bytes, linear) Inode-cache hash table entries: 32768 (order: 3, 131072 bytes, linear) Writing ErrCtl register=00000000 Readback ErrCtl register=00000000 Built 1 zonelists, mobility grouping on. Total pages: 16384 mem auto-init: stack:all(zero), heap alloc:off, heap free:off Unhandled kernel unaligned access[#1]: CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.14.0-rc6-00359-g6faea3422e3b #1 Hardware name: mti,malta $ 0 : 00000000 00000001 81cb0880 00129027 $ 4 : 00000001 0000000a 00000002 00129026 $ 8 : ffffdfff 80101e00 00000002 00000000 $12 : 81c9c224 81c63e68 00000002 00000000 $16 : 805b1e00 00025800 81cb0880 00000002 $20 : 00000000 81c63e64 0000000a 81f10000 $24 : 81c63e64 81c63e60 $28 : 81c60000 81c63de0 00000001 81cc9d20 Hi : 00000000 Lo : 00000000 epc : 814a227c __free_pages_ok+0x144/0x3c0 ra : 81cc9d20 memblock_free_all+0x1d4/0x27c Status: 10000002 KERNEL EXL Cause : 00800410 (ExcCode 04) BadVA : 00129026 PrId : 00019300 (MIPS 24Kc) Modules linked in: Process swapper (pid: 0, threadinfo=(ptrval), task=(ptrval), tls=00000000) Stack : 81f10000 805a9e00 81c80000 00000000 00000002 814aa240 000003ff 00000400 00000000 81f10000 81c9c224 00003b1f 81c80000 81c63e60 81ca0000 81c63e64 81f10000 0000000a 0000001f 81cc9d20 81f10000 81cc96d8 00000000 81c80000 81c9c224 81c63e60 81c63e64 00000000 81f10000 00024000 00028000 00025c00 90000000 a0000000 00000002 00000017 00000000 00000000 81f10000 81f10000 ... Call Trace: [<814a227c>] __free_pages_ok+0x144/0x3c0 [<81cc9d20>] memblock_free_all+0x1d4/0x27c [<81cc6764>] mm_core_init+0x100/0x138 [<81cb4ba4>] start_kernel+0x4a0/0x6e4 Code: 1080ffd5 02003825 2467ffff <8ce30000> 7c630500 1060ffd4 00000000 8ce30000 7c630180 The crash happens because commit 6faea3422e3b ("arch, mm: streamline HIGHMEM freeing") too eagerly frees high memory to the page allocator even when HIGHMEM is disabled. Make sure that when CONFIG_HIGHMEM=n the high memory is not released to the page allocator. Link: https://lore.kernel.org/all/20250323190647.GA1009914@ax162 Reported-by: Nathan Chancellor Fixes: 6faea3422e3b ("arch, mm: streamline HIGHMEM freeing") Signed-off-by: Mike Rapoport (Microsoft) Tested-by: Nathan Chancellor --- mm/memblock.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 64ae678cd1d1..d7ff8dfe5f88 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2166,6 +2166,9 @@ static unsigned long __init __free_memory_core(phys_addr_t start, unsigned long start_pfn = PFN_UP(start); unsigned long end_pfn = PFN_DOWN(end); + if (!IS_ENABLED(CONFIG_HIGHMEM) && end_pfn > max_low_pfn) + end_pfn = max_low_pfn; + if (start_pfn >= end_pfn) return 0;