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 <hch@lst.de> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
05c23af4a1
commit
309f9a4f5e
2
mm/hmm.c
2
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,
|
||||
|
|
Loading…
Reference in New Issue