On 2/2/26 16:56, Kiryl Shutsemau wrote:
> page_slab() contained an open-coded implementation of compound_head().
>
> Replace the duplicated code with a direct call to compound_head().
>
> Signed-off-by: Kiryl Shutsemau <kas@kernel.org>
>
> ---
>
> I am not sure if this open-coded version is intentional and required for
> memdesc transition. Drop the patch if it is.
commit 2bcd3800f2da1be13b972858f63c66d035b1ec6d
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date: Thu Nov 13 00:09:15 2025 +0000
slab: Reimplement page_slab()
In order to separate slabs from folios, we need to convert from any page
in a slab to the slab directly without going through a page to folio
conversion first.
Up to this point, page_slab() has followed the example of other memdesc
converters (page_folio(), page_ptdesc() etc) and just cast the pointer
to the requested type, regardless of whether the pointer is actually a
pointer to the correct type or not.
That changes with this commit; we check that the page actually belongs
to a slab and return NULL if it does not. Other memdesc converters will
adopt this convention in future.
I think using compound_head() is fine. For memdescs the function has to be changed to
lookup the memdesc either way, and not go through the head page.
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
--
Cheers,
David