| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: mm: remove 'First tail page' members from struct page |
| Date: Wed, 11 Jan 2023 14:29:08 +0000 |
| |
| All former users now use the folio equivalents, so remove them from the |
| definition of struct page. |
| |
| Link: https://lkml.kernel.org/r/20230111142915.1001531-23-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| |
| --- a/include/linux/mm_types.h~mm-remove-first-tail-page-members-from-struct-page |
| +++ a/include/linux/mm_types.h |
| @@ -140,16 +140,6 @@ struct page { |
| }; |
| struct { /* Tail pages of compound page */ |
| unsigned long compound_head; /* Bit zero is set */ |
| - |
| - /* First tail page only */ |
| - unsigned char compound_dtor; |
| - unsigned char compound_order; |
| - atomic_t compound_mapcount; |
| - atomic_t subpages_mapcount; |
| - atomic_t compound_pincount; |
| -#ifdef CONFIG_64BIT |
| - unsigned int compound_nr; /* 1 << compound_order */ |
| -#endif |
| }; |
| struct { /* Second tail page of transparent huge page */ |
| unsigned long _compound_pad_1; /* compound_head */ |
| @@ -401,14 +391,6 @@ FOLIO_MATCH(memcg_data, memcg_data); |
| offsetof(struct page, pg) + sizeof(struct page)) |
| FOLIO_MATCH(flags, _flags_1); |
| FOLIO_MATCH(compound_head, _head_1); |
| -FOLIO_MATCH(compound_dtor, _folio_dtor); |
| -FOLIO_MATCH(compound_order, _folio_order); |
| -FOLIO_MATCH(compound_mapcount, _entire_mapcount); |
| -FOLIO_MATCH(subpages_mapcount, _nr_pages_mapped); |
| -FOLIO_MATCH(compound_pincount, _pincount); |
| -#ifdef CONFIG_64BIT |
| -FOLIO_MATCH(compound_nr, _folio_nr_pages); |
| -#endif |
| #undef FOLIO_MATCH |
| #define FOLIO_MATCH(pg, fl) \ |
| static_assert(offsetof(struct folio, fl) == \ |
| --- a/kernel/crash_core.c~mm-remove-first-tail-page-members-from-struct-page |
| +++ a/kernel/crash_core.c |
| @@ -455,8 +455,8 @@ static int __init crash_save_vmcoreinfo_ |
| VMCOREINFO_OFFSET(page, lru); |
| VMCOREINFO_OFFSET(page, _mapcount); |
| VMCOREINFO_OFFSET(page, private); |
| - VMCOREINFO_OFFSET(page, compound_dtor); |
| - VMCOREINFO_OFFSET(page, compound_order); |
| + VMCOREINFO_OFFSET(folio, _folio_dtor); |
| + VMCOREINFO_OFFSET(folio, _folio_order); |
| VMCOREINFO_OFFSET(page, compound_head); |
| VMCOREINFO_OFFSET(pglist_data, node_zones); |
| VMCOREINFO_OFFSET(pglist_data, nr_zones); |
| _ |