Merge tag 'fixes-2023-01-14' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock
Merge commit. Changes below are compared with the first parent: 880ca43e.
Changes
2 files changed · +11 −1
| File | Status | Add | Del | Content |
|---|---|---|---|---|
| mm/memblock.c | modified | +7 | −1 | View file |
| tools/testing/memblock/internal.h | modified | +4 | −0 | View file |
mm/memblock.c
View filediff --git a/mm/memblock.c b/mm/memblock.c
index d036c78..685e30e 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1640,7 +1640,13 @@ void __init memblock_free_late(phys_addr_t base, phys_addr_t size)
end = PFN_DOWN(base + size);
for (; cursor < end; cursor++) {
- memblock_free_pages(pfn_to_page(cursor), cursor, 0);
+ /*
+ * Reserved pages are always initialized by the end of
+ * memblock_free_all() (by memmap_init() and, if deferred
+ * initialization is enabled, memmap_init_reserved_pages()), so
+ * these pages can be released directly to the buddy allocator.
+ */
+ __free_pages_core(pfn_to_page(cursor), 0);
totalram_pages_inc();
}
}
tools/testing/memblock/internal.h
View filediff --git a/tools/testing/memblock/internal.h b/tools/testing/memblock/internal.h
index fdb7f5d..85973e5 100644
--- a/tools/testing/memblock/internal.h
+++ b/tools/testing/memblock/internal.h
@@ -15,6 +15,10 @@ bool mirrored_kernelcore = false;
struct page {};
+void __free_pages_core(struct page *page, unsigned int order)
+{
+}
+
void memblock_free_pages(struct page *page, unsigned long pfn,
unsigned int order)
{