lkml.org 
[lkml]   [2016]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] mm: Use linear_page_index() in do_fault()
    Date
    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>
    ---
    mm/memory.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/mm/memory.c b/mm/memory.c
    index 554816b..5224c06 100644
    --- a/mm/memory.c
    +++ b/mm/memory.c
    @@ -3161,8 +3161,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 */
    --
    2.7.0.rc3
    \
     
     \ /
      Last update: 2016-01-31 13:41    [W:5.764 / U:2.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site