mm: convert page_to_section() to memdesc_section()

Pass in the memdesc_flags_t instead of a pointer to the page.  This will
allow us to remove a few conversions to struct page in upcoming patches.

Link: https://lkml.kernel.org/r/20250805172307.1302730-3-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
pull/1354/merge
Matthew Wilcox (Oracle) 2025-08-05 18:22:52 +01:00 committed by Andrew Morton
parent 53fbef56e0
commit 56d578c130
3 changed files with 4 additions and 4 deletions

View File

@ -53,7 +53,7 @@ static inline int pfn_valid(unsigned long pfn)
*/
#define __page_to_pfn(pg) \
({ const struct page *__pg = (pg); \
int __sec = page_to_section(__pg); \
int __sec = memdesc_section(__pg->flags); \
(unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec))); \
})

View File

@ -1808,9 +1808,9 @@ static inline void set_page_section(struct page *page, unsigned long section)
page->flags.f |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT;
}
static inline unsigned long page_to_section(const struct page *page)
static inline unsigned long memdesc_section(memdesc_flags_t mdf)
{
return (page->flags.f >> SECTIONS_PGSHIFT) & SECTIONS_MASK;
return (mdf.f >> SECTIONS_PGSHIFT) & SECTIONS_MASK;
}
#endif

View File

@ -45,7 +45,7 @@ static u16 section_to_node_table[NR_MEM_SECTIONS] __cacheline_aligned;
int page_to_nid(const struct page *page)
{
return section_to_node_table[page_to_section(page)];
return section_to_node_table[memdesc_section(page->flags)];
}
EXPORT_SYMBOL(page_to_nid);