The quilt patch titled Subject: mm: Fix __dump_folio has been removed from the -mm tree. Its filename was mm-add-__dump_folio-fix-2.patch This patch was dropped because it was folded into mm-add-__dump_folio.patch ------------------------------------------------------ From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> Subject: mm: Fix __dump_folio Date: Fri, 1 Mar 2024 16:11:20 -0500 Ryan Roberts reports that (if you have CONFIG_CMA enabled), calling __dump_folio() will panic as we call is_migrate_cma_page() with a stack copy of struct page, which gets passed to page_to_pfn(). Link: https://lkml.kernel.org/r/ZeJJegP8zM7S9GTy@xxxxxxxxxxxxxxxxxxxx Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Reported-by: Ryan Roberts <ryan.roberts@xxxxxxx> Cc: Aishwarya TCV <aishwarya.tcv@xxxxxxx> Cc: Ard Biesheuvel <ardb@xxxxxxxxxx> Cc: Mark Brown <broonie@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mmzone.h | 3 +++ mm/debug.c | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) --- a/include/linux/mmzone.h~mm-add-__dump_folio-fix-2 +++ a/include/linux/mmzone.h @@ -76,9 +76,12 @@ extern const char * const migratetype_na #ifdef CONFIG_CMA # define is_migrate_cma(migratetype) unlikely((migratetype) == MIGRATE_CMA) # define is_migrate_cma_page(_page) (get_pageblock_migratetype(_page) == MIGRATE_CMA) +# define is_migrate_cma_folio(folio, pfn) (MIGRATE_CMA == \ + get_pfnblock_flags_mask(&folio->page, pfn, MIGRATETYPE_MASK)) #else # define is_migrate_cma(migratetype) false # define is_migrate_cma_page(_page) false +# define is_migrate_cma_folio(folio, pfn) false #endif static inline bool is_migrate_movable(int mt) --- a/mm/debug.c~mm-add-__dump_folio-fix-2 +++ a/mm/debug.c @@ -55,7 +55,6 @@ static void __dump_folio(struct folio *f unsigned long pfn, unsigned long idx) { struct address_space *mapping = folio_mapping(folio); - bool page_cma; int mapcount = 0; char *type = ""; @@ -98,9 +97,8 @@ static void __dump_folio(struct folio *f * state for debugging, it should be fine to accept a bit of * inaccuracy here due to racing. */ - page_cma = is_migrate_cma_page(page); pr_warn("%sflags: %pGp%s\n", type, &folio->flags, - page_cma ? " CMA" : ""); + is_migrate_cma_folio(folio, pfn) ? " CMA" : ""); pr_warn("page_type: %pGt\n", &folio->page.page_type); print_hex_dump(KERN_WARNING, "raw: ", DUMP_PREFIX_NONE, 32, _ Patches currently in -mm which might be from willy@xxxxxxxxxxxxx are mm-separate-out-folio_flags-from-pageflags.patch mm-remove-pagewaiters-pagesetwaiters-and-pageclearwaiters.patch mm-remove-pageyoung-and-pageidle-definitions.patch mm-add-__dump_folio.patch mm-add-__dump_folio-fix-3.patch mm-make-dump_page-take-a-const-argument.patch mm-constify-testing-page-folio-flags.patch mm-constify-more-page-folio-tests.patch mm-remove-cast-from-page_to_nid.patch mm-mempolicy-use-a-folio-in-do_mbind.patch