mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
mm: move set/clear_compound_head() next to compound_head()
Move set_compound_head() and clear_compound_head() to be adjacent to the compound_head() function in page-flags.h. These functions encode and decode the same compound_info field, so keeping them together makes it easier to verify their logic is consistent, especially when the encoding changes. Link: https://lkml.kernel.org/r/20260227194302.274384-5-kas@kernel.org Signed-off-by: Kiryl Shutsemau <kas@kernel.org> Reviewed-by: Muchun Song <muchun.song@linux.dev> Reviewed-by: Zi Yan <ziy@nvidia.com> Acked-by: David Hildenbrand (arm) <david@kernel.org> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Alexandre Ghiti <alex@ghiti.fr> Cc: Baoquan He <bhe@redhat.com> Cc: Christoph Lameter <cl@gentwo.org> Cc: David Rientjes <rientjes@google.com> Cc: Frank van der Linden <fvdl@google.com> Cc: Harry Yoo <harry.yoo@oracle.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Oscar Salvador <osalvador@suse.de> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Roman Gushchin <roman.gushchin@linux.dev> Cc: Usama Arif <usamaarif642@gmail.com> Cc: WANG Xuerui <kernel@xen0n.name> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
d50569612c
commit
67c79a5af0
|
|
@ -290,6 +290,17 @@ static __always_inline unsigned long _compound_head(const struct page *page)
|
|||
|
||||
#define compound_head(page) ((typeof(page))_compound_head(page))
|
||||
|
||||
static __always_inline void set_compound_head(struct page *tail,
|
||||
const struct page *head, unsigned int order)
|
||||
{
|
||||
WRITE_ONCE(tail->compound_info, (unsigned long)head + 1);
|
||||
}
|
||||
|
||||
static __always_inline void clear_compound_head(struct page *page)
|
||||
{
|
||||
WRITE_ONCE(page->compound_info, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* page_folio - Converts from page to folio.
|
||||
* @p: The page.
|
||||
|
|
@ -870,17 +881,6 @@ static inline bool folio_test_large(const struct folio *folio)
|
|||
return folio_test_head(folio);
|
||||
}
|
||||
|
||||
static __always_inline void set_compound_head(struct page *tail,
|
||||
const struct page *head, unsigned int order)
|
||||
{
|
||||
WRITE_ONCE(tail->compound_info, (unsigned long)head + 1);
|
||||
}
|
||||
|
||||
static __always_inline void clear_compound_head(struct page *page)
|
||||
{
|
||||
WRITE_ONCE(page->compound_info, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
static inline void ClearPageCompound(struct page *page)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user