[{"id":3681865,"web_url":"http://patchwork.ozlabs.org/comment/3681865/","msgid":"<aesnxK_Use6wrCfE@kernel.org>","date":"2026-04-24T08:20:20","subject":"Re: [PATCH v6 6/7] mm/mm_init: Fix uninitialized struct pages for\n ZONE_DEVICE","submitter":{"id":77733,"url":"http://patchwork.ozlabs.org/api/people/77733/","name":"Mike Rapoport","email":"rppt@kernel.org"},"content":"On Fri, Apr 24, 2026 at 10:55:46AM +0800, Muchun Song wrote:\n> If DAX memory is hotplugged into an unoccupied subsection of an early\n> section, section_activate() reuses the unoptimized boot memmap.\n> However, compound_nr_pages() still assumes that vmemmap optimization is\n> in effect and initializes only the reduced number of struct pages. As a\n> result, the remaining tail struct pages are left uninitialized, which\n> can later lead to unexpected behavior or crashes.\n> \n> Fix this by treating early sections as unoptimized when calculating how\n> many struct pages to initialize.\n> \n> Fixes: 6fd3620b3428 (\"mm/page_alloc: reuse tail struct pages for compound devmaps\")\n> Cc: stable@vger.kernel.org\n> Signed-off-by: Muchun Song <songmuchun@bytedance.com>\n> Acked-by: David Hildenbrand (Arm) <david@kernel.org>\n\nAcked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>\n\n> ---\n>  mm/mm_init.c | 13 ++++++++++---\n>  1 file changed, 10 insertions(+), 3 deletions(-)\n> \n> diff --git a/mm/mm_init.c b/mm/mm_init.c\n> index cfc76953e249..bd466a3c10c8 100644\n> --- a/mm/mm_init.c\n> +++ b/mm/mm_init.c\n> @@ -1055,10 +1055,17 @@ static void __ref __init_zone_device_page(struct page *page, unsigned long pfn,\n>   * of how the sparse_vmemmap internals handle compound pages in the lack\n>   * of an altmap. See vmemmap_populate_compound_pages().\n>   */\n> -static inline unsigned long compound_nr_pages(struct vmem_altmap *altmap,\n> +static inline unsigned long compound_nr_pages(unsigned long pfn,\n> +\t\t\t\t\t      struct vmem_altmap *altmap,\n>  \t\t\t\t\t      struct dev_pagemap *pgmap)\n>  {\n> -\tif (!vmemmap_can_optimize(altmap, pgmap))\n> +\t/*\n> +\t * If DAX memory is hot-plugged into an unoccupied subsection\n> +\t * of an early section, the unoptimized boot memmap is reused.\n> +\t * See section_activate().\n> +\t */\n> +\tif (early_section(__pfn_to_section(pfn)) ||\n> +\t    !vmemmap_can_optimize(altmap, pgmap))\n>  \t\treturn pgmap_vmemmap_nr(pgmap);\n>  \n>  \treturn VMEMMAP_RESERVE_NR * (PAGE_SIZE / sizeof(struct page));\n> @@ -1128,7 +1135,7 @@ void __ref memmap_init_zone_device(struct zone *zone,\n>  \t\t\tcontinue;\n>  \n>  \t\tmemmap_init_compound(page, pfn, zone_idx, nid, pgmap,\n> -\t\t\t\t     compound_nr_pages(altmap, pgmap));\n> +\t\t\t\t     compound_nr_pages(pfn, altmap, pgmap));\n>  \t}\n>  \n>  \tpageblock_migratetype_init_range(start_pfn, nr_pages, MIGRATE_MOVABLE);\n> -- \n> 2.20.1\n>","headers":{"Return-Path":"\n <linuxppc-dev+bounces-20050-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=mOMKksAU;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-20050-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=172.105.4.254","lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=mOMKksAU;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org\n (client-ip=172.105.4.254; helo=tor.source.kernel.org;\n envelope-from=rppt@kernel.org; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g25W82Z4lz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 18:20:36 +1000 (AEST)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g25W76WH3z2yFm;\n\tFri, 24 Apr 2026 18:20:35 +1000 (AEST)","from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g25W55s9mz2xly\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 24 Apr 2026 18:20:33 +1000 (AEST)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby tor.source.kernel.org (Postfix) with ESMTP id E24046001A;\n\tFri, 24 Apr 2026 08:20:30 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 68013C19425;\n\tFri, 24 Apr 2026 08:20:24 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777018835;\n\tcv=none;\n b=D/gjlwcF59NhgkAvVg235HRm0rGZBqwB/YCb2JaN1IvQ8nPyANu6eGnG2pqkr4NeWdWeX8IJt1whjODqlKbKnZcInmAEt/dEGtJEMWID3xLba1HoFR5Vkl5uZUU2JqjaSpcF6tXwyohAMFRqTyhCnjXpstvOOxC/EOHu70Zw7GxVx4T2oqhNCAxjkLp44DxJj5Cedp4rdEplRaI8T59Y/7/RL1/QEeM7udGa4f3Qk/l3eOJ3U8fNmvt3aj+lF4SSIcTrcrMt6B0QaY1Gpw4I/U4omgMkr3B2hz4efWL0ES6MtDxzZw6vi6DgVgi3dbbZhfgXoeD0xtK9/0Z6aTmX5A==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777018835; c=relaxed/relaxed;\n\tbh=IEwVWEzE2Dj0wHkg3NnVA6TubIBJog0kwGg5D1sN2jg=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=gcXwa9g+ek1/7P27Gz+s+LPs0h7AkeronLR0ck137ysvT2NzNFhKfeBAOegrjUXM/V12EUyvjEVfUM4Q0UuIbzMZqxnLSal8Y/rSW4Z+Rgfv8pn1yCFadE2/5yGT6I4XjkKZhjsP81gTQa0+lE2a/ECHu8b0gkpGlWPOzw/gFvPDPux1668R/3vw1FPww6rYPCA0ASUCwl69lwKd/yTkIVQt/US4PdX7HBZVRkf+obuv93JJ0jRkxdsVMoxJINel8/c+g/sZJhTxN7kqiX7FQzDFT8L4cXgm0SKAfcZDAZcXNYtSWQmIbH/dJm12cXWlDE3Kb6TyDnwJJhNr3S+COQ==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=mOMKksAU; dkim-atps=neutral;\n spf=pass (client-ip=172.105.4.254; helo=tor.source.kernel.org;\n envelope-from=rppt@kernel.org;\n receiver=lists.ozlabs.org) smtp.mailfrom=kernel.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777018830;\n\tbh=Rv6jBW9C6+YIR0iVvSndpiy1+KRdv3tYvLeHDMmVn0c=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=mOMKksAUWZvCKb8Ojm6kYghsEM28I/Mztw1a92GaD+6XofYQMD1pQHKguAWOCnWjB\n\t mTCyWZ3OkABdRLM9eSm+SbbPUvMy2otzMEK1ea5pHoNTIwmN90fPnX4+fAc41Z7+g8\n\t QjLLsZLJEJfajKQorsSixJXC+QFFbdXKzmcVZXz68mssOqhvNN/+zrqCUrmfPet45f\n\t Q7yhOOr6zoUcXl7tErxPsUGjWtZ5bDM/D/3/qNHD/2j09YrukMF1PMHi8WLDddOZgk\n\t jGqxoyyzGn8vdvAf3mgz3hXtt5u+ISYKkrx106+Dc9WhXMb5NeUdq+P491a72duOd0\n\t kyqvtA1rMJUCg==","Date":"Fri, 24 Apr 2026 11:20:20 +0300","From":"Mike Rapoport <rppt@kernel.org>","To":"Muchun Song <songmuchun@bytedance.com>","Cc":"Andrew Morton <akpm@linux-foundation.org>,\n\tDavid Hildenbrand <david@kernel.org>,\n\tMuchun Song <muchun.song@linux.dev>,\n\tOscar Salvador <osalvador@suse.de>,\n\tMichael Ellerman <mpe@ellerman.id.au>,\n\tMadhavan Srinivasan <maddy@linux.ibm.com>,\n\tLorenzo Stoakes <ljs@kernel.org>,\n\t\"Liam R . Howlett\" <Liam.Howlett@oracle.com>,\n\tVlastimil Babka <vbabka@kernel.org>,\n\tSuren Baghdasaryan <surenb@google.com>,\n\tMichal Hocko <mhocko@suse.com>, Nicholas Piggin <npiggin@gmail.com>,\n\tChristophe Leroy <chleroy@kernel.org>, aneesh.kumar@linux.ibm.com,\n\tjoao.m.martins@oracle.com, linux-mm@kvack.org,\n\tlinuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,\n\tstable@vger.kernel.org","Subject":"Re: [PATCH v6 6/7] mm/mm_init: Fix uninitialized struct pages for\n ZONE_DEVICE","Message-ID":"<aesnxK_Use6wrCfE@kernel.org>","References":"<20260424025547.3806072-1-songmuchun@bytedance.com>\n <20260424025547.3806072-7-songmuchun@bytedance.com>","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260424025547.3806072-7-songmuchun@bytedance.com>","X-Spam-Status":"No, score=-0.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS\n\tautolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}}]