memblock: improve late freeing of reserved memory
| From: | Mike Rapoport <rppt-AT-kernel.org> | |
| To: | Andrew Morton <akpm-AT-linux-foundation.org> | |
| Subject: | [PATCH v2 0/9] memblock: improve late freeing of reserved memory | |
| Date: | Mon, 23 Mar 2026 09:48:27 +0200 | |
| Message-ID: | <20260323074836.3653702-1-rppt@kernel.org> | |
| Cc: | Alexander Potapenko <glider-AT-google.com>, Alexander Viro <viro-AT-zeniv.linux.org.uk>, Andreas Larsson <andreas-AT-gaisler.com>, Ard Biesheuvel <ardb-AT-kernel.org>, Borislav Petkov <bp-AT-alien8.de>, Brendan Jackman <jackmanb-AT-google.com>, "Christophe Leroy (CS GROUP)" <chleroy-AT-kernel.org>, Catalin Marinas <catalin.marinas-AT-arm.com>, Christian Brauner <brauner-AT-kernel.org>, "David S. Miller" <davem-AT-davemloft.net>, Dave Hansen <dave.hansen-AT-linux.intel.com>, David Hildenbrand <david-AT-kernel.org>, Dmitry Vyukov <dvyukov-AT-google.com>, Ilias Apalodimas <ilias.apalodimas-AT-linaro.org>, Ingo Molnar <mingo-AT-redhat.com>, Jan Kara <jack-AT-suse.cz>, Johannes Weiner <hannes-AT-cmpxchg.org>, "Liam R. Howlett" <Liam.Howlett-AT-oracle.com>, Lorenzo Stoakes <lorenzo.stoakes-AT-oracle.com>, Madhavan Srinivasan <maddy-AT-linux.ibm.com>, Marco Elver <elver-AT-google.com>, Marek Szyprowski <m.szyprowski-AT-samsung.com>, Masami Hiramatsu <mhiramat-AT-kernel.org>, Michael Ellerman <mpe-AT-ellerman.id.au>, Michal Hocko <mhocko-AT-suse.com>, Mike Rapoport <rppt-AT-kernel.org>, Nicholas Piggin <npiggin-AT-gmail.com>, "H. Peter Anvin" <hpa-AT-zytor.com>, Rob Herring <robh-AT-kernel.org>, Robin Murphy <robin.murphy-AT-arm.com>, Saravana Kannan <saravanak-AT-kernel.org>, Suren Baghdasaryan <surenb-AT-google.com>, Thomas Gleixner <tglx-AT-kernel.org>, Vlastimil Babka <vbabka-AT-kernel.org>, Will Deacon <will-AT-kernel.org>, Zi Yan <ziy-AT-nvidia.com>, devicetree-AT-vger.kernel.org, iommu-AT-lists.linux.dev, kasan-dev-AT-googlegroups.com, linux-arm-kernel-AT-lists.infradead.org, linux-efi-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-mm-AT-kvack.org, linux-trace-kernel-AT-vger.kernel.org, linuxppc-dev-AT-lists.ozlabs.org, sparclinux-AT-vger.kernel.org, x86-AT-kernel.org | |
| Archive-link: | Article |
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org> Hi, Following a recent discussion about leaks in x86 EFI [1], I audited usage of memblock_free_late() and free_reserved_area() and made some imporovements how we handle late freeing of the memory allocated with memblock. [1] https://lore.kernel.org/all/ec2aaef14783869b3be6e3c253b2d... v2 changes: * fix UAF issue in memblock_discard() reported by 0day and sashiko * address relevant sashiko comments * squash memblock test stubs changes into the commit with core updates v1: https://lore.kernel.org/all/20260318105827.1358927-1-rppt... Mike Rapoport (Microsoft) (9): memblock: reserve_mem: fix end caclulation in reserve_mem_release_by_name() powerpc: fadump: pair alloc_pages_exact() with free_pages_exact() powerpc: opal-core: pair alloc_pages_exact() with free_pages_exact() mm: move free_reserved_area() to mm/memblock.c memblock: make free_reserved_area() more robust memblock: extract page freeing from free_reserved_area() into a helper memblock: make free_reserved_area() update memblock if ARCH_KEEP_MEMBLOCK=y memblock, treewide: make memblock_free() handle late freeing memblock: warn when freeing reserved memory before memory map is initialized arch/arm64/mm/init.c | 3 - arch/powerpc/kernel/fadump.c | 16 +-- arch/powerpc/platforms/powernv/opal-core.c | 11 +- arch/sparc/kernel/mdesc.c | 4 +- arch/x86/kernel/setup.c | 2 +- arch/x86/platform/efi/memmap.c | 5 +- arch/x86/platform/efi/quirks.c | 2 +- drivers/firmware/efi/apple-properties.c | 2 +- drivers/of/kexec.c | 2 +- include/linux/memblock.h | 2 - init/initramfs.c | 7 -- kernel/dma/swiotlb.c | 6 +- lib/bootconfig.c | 2 +- mm/internal.h | 10 ++ mm/kfence/core.c | 4 +- mm/memblock.c | 124 +++++++++++++++------ mm/page_alloc.c | 46 -------- tools/include/linux/mm.h | 1 + tools/testing/memblock/internal.h | 34 +++++- 19 files changed, 144 insertions(+), 139 deletions(-) base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681 -- 2.53.0
