From: Christoph Hellwig Date: Tue, 6 Aug 2019 16:05:47 +0000 (+0300) Subject: mm/hmm: don't abuse pte_index() in hmm_vma_handle_pmd X-Git-Tag: for-linus-2019-09-27~52^2~40 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=309f9a4f5e1a233d5df2101b9394ee689d9e463f;p=linux-block.git mm/hmm: don't abuse pte_index() in hmm_vma_handle_pmd pte_index is an internal arch helper in various architectures, without consistent semantics. Open code that calculation of a PMD index based on the virtual address instead. Link: https://lore.kernel.org/r/20190806160554.14046-10-hch@lst.de Signed-off-by: Christoph Hellwig Reviewed-by: Jason Gunthorpe Signed-off-by: Jason Gunthorpe --- diff --git a/mm/hmm.c b/mm/hmm.c index 4807f4b16736..8d56a4342624 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -486,7 +486,7 @@ static int hmm_vma_handle_pmd(struct mm_walk *walk, if (pmd_protnone(pmd) || fault || write_fault) return hmm_vma_walk_hole_(addr, end, fault, write_fault, walk); - pfn = pmd_pfn(pmd) + pte_index(addr); + pfn = pmd_pfn(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT); for (i = 0; addr < end; addr += PAGE_SIZE, i++, pfn++) { if (pmd_devmap(pmd)) { hmm_vma_walk->pgmap = get_dev_pagemap(pfn,