aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew.r.wilcox@intel.com>2016-03-15 17:57:28 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-15 19:55:16 -0400
commit88193f7ce6657ec4197b1f26b73b37197373b8e6 (patch)
tree246c8405fb0aea518b25646cfbb0a8e85064da04 /mm
parentfdf1cdb91b6ab7a8a91df68c384f36b8a0909cab (diff)
mm: use linear_page_index() in do_fault()
do_fault() assumes that PAGE_SIZE is the same as PAGE_CACHE_SIZE. Use linear_page_index() to calculate pgoff in the correct units. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@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>
Diffstat (limited to 'mm')
-rw-r--r--mm/memory.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 8adb5b756264..032f05cd6a2f 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3124,8 +3124,7 @@ static int do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
3124 unsigned long address, pte_t *page_table, pmd_t *pmd, 3124 unsigned long address, pte_t *page_table, pmd_t *pmd,
3125 unsigned int flags, pte_t orig_pte) 3125 unsigned int flags, pte_t orig_pte)
3126{ 3126{
3127 pgoff_t pgoff = (((address & PAGE_MASK) 3127 pgoff_t pgoff = linear_page_index(vma, address);
3128 - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
3129 3128
3130 pte_unmap(page_table); 3129 pte_unmap(page_table);
3131 /* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */ 3130 /* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */