The patch titled Subject: mm: simplify page_zone() and get_deferred_split_queue() with page_pgdat() has been added to the -mm mm-unstable branch. Its filename is mm-simplify-page_zone-and-get_deferred_split_queue-with-page_pgdat.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-simplify-page_zone-and-get_deferred_split_queue-with-page_pgdat.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Yajun Deng <yajun.deng@xxxxxxxxx> Subject: mm: simplify page_zone() and get_deferred_split_queue() with page_pgdat() Date: Tue, 1 Nov 2022 10:32:19 +0800 page_zone() is too long, we can shorten it by page_pgdat(). There is no need define pgdat variable if memcg isn't NULL, so use page_pgdat() to simplify get_deferred_split_queue(). Link: https://lkml.kernel.org/r/20221101023219.752365-1-yajun.deng@xxxxxxxxx Signed-off-by: Yajun Deng <yajun.deng@xxxxxxxxx> Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mm.h | 8 ++++---- mm/huge_memory.c | 7 ++----- 2 files changed, 6 insertions(+), 9 deletions(-) --- a/include/linux/mm.h~mm-simplify-page_zone-and-get_deferred_split_queue-with-page_pgdat +++ a/include/linux/mm.h @@ -1448,14 +1448,14 @@ static inline void page_kasan_tag_reset( #endif /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ -static inline struct zone *page_zone(const struct page *page) +static inline pg_data_t *page_pgdat(const struct page *page) { - return &NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)]; + return NODE_DATA(page_to_nid(page)); } -static inline pg_data_t *page_pgdat(const struct page *page) +static inline struct zone *page_zone(const struct page *page) { - return NODE_DATA(page_to_nid(page)); + return &page_pgdat(page)->node_zones[page_zonenum(page)]; } static inline struct zone *folio_zone(const struct folio *folio) --- a/mm/huge_memory.c~mm-simplify-page_zone-and-get_deferred_split_queue-with-page_pgdat +++ a/mm/huge_memory.c @@ -562,19 +562,16 @@ pmd_t maybe_pmd_mkwrite(pmd_t pmd, struc static inline struct deferred_split *get_deferred_split_queue(struct page *page) { struct mem_cgroup *memcg = page_memcg(compound_head(page)); - struct pglist_data *pgdat = NODE_DATA(page_to_nid(page)); if (memcg) return &memcg->deferred_split_queue; else - return &pgdat->deferred_split_queue; + return &page_pgdat(page)->deferred_split_queue; } #else static inline struct deferred_split *get_deferred_split_queue(struct page *page) { - struct pglist_data *pgdat = NODE_DATA(page_to_nid(page)); - - return &pgdat->deferred_split_queue; + return &page_pgdat(page)->deferred_split_queue; } #endif _ Patches currently in -mm which might be from yajun.deng@xxxxxxxxx are mm-simplify-page_zone-and-get_deferred_split_queue-with-page_pgdat.patch