]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/mm_init: initialize page->_mapcount directly in __init_single_page()
authorDavid Hildenbrand <david@redhat.com>
Wed, 29 May 2024 11:19:04 +0000 (13:19 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jul 2024 02:30:17 +0000 (19:30 -0700)
Let's simply reinitialize the page->_mapcount directly.  We can now get
rid of page_mapcount_reset().

Link: https://lkml.kernel.org/r/20240529111904.2069608-7-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org> [zram/zsmalloc workloads]
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/mm.h
mm/mm_init.c

index 61a7f680f0ba2aba39d7d23621989949d5a49a63..4f75fee497f14d534f2f33e2eb48ef20dd3e2b9d 100644 (file)
@@ -1210,11 +1210,6 @@ static inline int folio_entire_mapcount(const struct folio *folio)
        return atomic_read(&folio->_entire_mapcount) + 1;
 }
 
-static inline void page_mapcount_reset(struct page *page)
-{
-       atomic_set(&(page)->_mapcount, -1);
-}
-
 static inline int folio_large_mapcount(const struct folio *folio)
 {
        VM_WARN_ON_FOLIO(!folio_test_large(folio), folio);
index d3a222b92029270f91364ca3b0f5f7d5d78eca09..5d150d41292095904815e9a7aeaa5c27eef7702b 100644 (file)
@@ -569,7 +569,7 @@ void __meminit __init_single_page(struct page *page, unsigned long pfn,
        mm_zero_struct_page(page);
        set_page_links(page, zone, nid, pfn);
        init_page_count(page);
-       page_mapcount_reset(page);
+       atomic_set(&page->_mapcount, -1);
        page_cpupid_reset_last(page);
        page_kasan_tag_reset(page);