On Mon, Jan 10, 2022 at 04:23:44AM +0000, Matthew Wilcox (Oracle) wrote: > Several functions in gup.c assume that a compound page has virtually > contiguous page structs. This isn't true for SPARSEMEM configs unless > SPARSEMEM_VMEMMAP is also set. Fix them by using nth_page() instead of > plain pointer arithmetic. So is this an actualy bug that need a Fixes tag, or do all architectures that support THP and sparsemem use SPARSEMEM_VMEMMAP? > + page = nth_page(head, (addr & (sz-1)) >> PAGE_SHIFT); Would be nice to fix the indeation for sz - 1 while you're at it. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>