mm: add unmap_mapping_pages()
Several users of unmap_mapping_range() would prefer to express their range in pages rather than bytes. Unfortuately, on a 32-bit kernel, you have to remember to cast your page number to a 64-bit type before shifting it, and four places in the current tree didn't remember to do that. That's a sign of a bad interface. Conveniently, unmap_mapping_range() actually converts from bytes into pages, so hoist the guts of unmap_mapping_range() into a new function unmap_mapping_pages() and convert the callers which want to use pages. Link: http://lkml.kernel.org/r/20171206142627.GD32044@bombadil.infradead.org Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> Reported-by: "zhangyi (F)" <yi.zhang@huawei.com> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
a365ac09d3
commit
977fbdcd59
@@ -1399,8 +1399,7 @@ static void collapse_shmem(struct mm_struct *mm,
|
||||
}
|
||||
|
||||
if (page_mapped(page))
|
||||
unmap_mapping_range(mapping, index << PAGE_SHIFT,
|
||||
PAGE_SIZE, 0);
|
||||
unmap_mapping_pages(mapping, index, 1, false);
|
||||
|
||||
spin_lock_irq(&mapping->tree_lock);
|
||||
|
||||
|
Reference in New Issue
Block a user