linux/arch/mips/mm
Zi Yan aa5fe31b6b mips: use nth_page() in place of direct struct page manipulation
__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.

Link: https://lkml.kernel.org/r/20230913201248.452081-6-zi.yan@sent.com
Fixes: 15fa3e8e32 ("mips: implement the new page table range API")
Signed-off-by: Zi Yan <ziy@nvidia.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: Muchun Song <songmuchun@bytedance.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-10-04 10:32:29 -07:00
..
c-octeon.c MIPS: c-octeon: Provide alternative SMP cache flush function 2023-04-05 09:45:09 +02:00
c-r3k.c MIPS: mm: Remove local_cache_flush_page 2023-04-05 10:08:53 +02:00
c-r4k.c mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
cache.c mips: use nth_page() in place of direct struct page manipulation 2023-10-04 10:32:29 -07:00
cerr-sb1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cex-gen.S
cex-oct.S
cex-sb1.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
context.c MIPS: mm: Use the bitmap API to allocate bitmaps 2022-07-11 10:28:12 +02:00
dma-noncoherent.c MIPS: mm: XBurst CPU requires sync after DMA 2021-06-01 11:44:46 +02:00
extable.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
fault.c mips/mm: Convert to using lock_mm_and_find_vma() 2023-06-24 14:12:58 -07:00
highmem.c mips/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:56 +01:00
hugetlbpage.c hugetlb: pass vma into huge_pte_alloc() and huge_pmd_share() 2021-05-05 11:27:20 -07:00
init.c mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
ioremap64.c MIPS: move ioremap_prot und iounmap out of line 2020-04-19 16:12:31 +02:00
ioremap.c MIPS: use ioremap_page_range 2020-04-19 16:13:18 +02:00
maccess.c MIPS: uaccess: Added __get/__put_kernel_nofault 2021-04-06 14:36:56 +02:00
Makefile MIPS: Remove TX39XX support 2022-03-01 10:07:22 +01:00
mmap.c mips: use generic mmap top-down layout and brk randomization 2019-09-24 15:54:12 -07:00
page-funcs.S mips: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-15 10:22:23 +02:00
page.c MIPS: remove asm/war.h 2022-02-22 09:35:49 +01:00
pgtable-32.c mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
pgtable-64.c mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
pgtable.c mips: convert various functions to use ptdescs 2023-08-21 13:37:56 -07:00
physaddr.c MIPS: Fixed __debug_virt_addr_valid() 2022-07-15 14:22:51 +02:00
sc-debugfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sc-ip22.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sc-mips.c mips: fix Section mismatch in reference 2020-12-14 16:39:42 +01:00
sc-r5k.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
sc-rm7k.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb-funcs.S mips: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-15 10:22:23 +02:00
tlb-r3k.c MIPS: Remove TX39XX support 2022-03-01 10:07:22 +01:00
tlb-r4k.c mips: add pte_unmap() to balance pte_offset_map() 2023-06-19 16:19:07 -07:00
tlbex-fault.S MIPS: Add DWARF unwinding to assembly 2017-09-06 11:01:52 +02:00
tlbex.c mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
uasm-micromips.c mips: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_X 2018-12-07 13:30:48 -08:00
uasm-mips.c mips, uasm: Enable muhu opcode for MIPS R6 2021-10-06 12:28:02 -07:00
uasm.c mips, uasm: Enable muhu opcode for MIPS R6 2021-10-06 12:28:02 -07:00