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>
This commit is contained in:
Родитель
fdf1cdb91b
Коммит
88193f7ce6
|
@ -3124,8 +3124,7 @@ static int do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|||
unsigned long address, pte_t *page_table, pmd_t *pmd,
|
||||
unsigned int flags, pte_t orig_pte)
|
||||
{
|
||||
pgoff_t pgoff = (((address & PAGE_MASK)
|
||||
- vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
|
||||
pgoff_t pgoff = linear_page_index(vma, address);
|
||||
|
||||
pte_unmap(page_table);
|
||||
/* The VMA was not fully populated on mmap() or missing VM_DONTEXPAND */
|
||||
|
|
Загрузка…
Ссылка в новой задаче