mips-use-nth_page-in-place-of-direct-struct-page-manipulation.patch removed from -mm tree
The quilt patch titled
Subject: mips: use nth_page() in place of direct struct page manipulation
has been removed from the -mm tree. Its filename was
mips-use-nth_page-in-place-of-direct-struct-page-manipulation.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Zi Yan <[email protected]>
Subject: mips: use nth_page() in place of direct struct page manipulation
Date: Wed, 13 Sep 2023 16:12:48 -0400
__flush_dcache_pages() is called during hugetlb migration via migrate_pages() -> migrate_hugetlbs() -> unmap_and_move_huge_page() -> move_to_new_folio() -> flush_dcache_folio(). And with hugetlb and without sparsemem vmemmap, struct page is not guaranteed to be contiguous beyond a section. Use nth_page() instead.
Without the fix, a wrong address might be used for data cache page flush. No bug is reported. The fix comes from code inspection.
---
arch/mips/mm/cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/mips/mm/cache.c renamed from arch/mips/mm/cache.c~mips-use-nth_page-in-place-of-direct-struct-page-manipulation +1 -1
@@ -117,7 +117,7 @@ void __flush_dcache_pages(struct page *p* get faulted into the tlb (and thus flushed) anyways. */ for (i =0 ; i < nr; i++) { - addr = (unsigned long )kmap_local_page (page + i); + addr = (unsigned long )kmap_local_page (nth_page (page, i));flush_data_cache_page (addr);kunmap_local ((void *)addr); }
_
Patches currently in -mm which might be from [email protected] are