lkml.org 
[lkml]   [2011]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 1/5] fs/hugetlbfs/inode.c: Fix pgoff alignment checking on 32-bit
    From
    Date
    Andrew, Anybody ? Can I have an -mm ack for this ?

    Cheers,
    Ben.

    On Tue, 2011-06-28 at 14:54 -0500, Becky Bruce wrote:
    > From: Becky Bruce <beckyb@kernel.crashing.org>
    >
    > This:
    >
    > vma->vm_pgoff & ~(huge_page_mask(h) >> PAGE_SHIFT)
    >
    > is incorrect on 32-bit. It causes us to & the pgoff with
    > something that looks like this (for a 4m hugepage): 0xfff003ff.
    > The mask should be flipped and *then* shifted, to give you
    > 0x0000_03fff.
    >
    > Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
    > ---
    > fs/hugetlbfs/inode.c | 2 +-
    > 1 files changed, 1 insertions(+), 1 deletions(-)
    >
    > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
    > index 7aafeb8..537a209 100644
    > --- a/fs/hugetlbfs/inode.c
    > +++ b/fs/hugetlbfs/inode.c
    > @@ -94,7 +94,7 @@ static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *vma)
    > vma->vm_flags |= VM_HUGETLB | VM_RESERVED;
    > vma->vm_ops = &hugetlb_vm_ops;
    >
    > - if (vma->vm_pgoff & ~(huge_page_mask(h) >> PAGE_SHIFT))
    > + if (vma->vm_pgoff & (~huge_page_mask(h) >> PAGE_SHIFT))
    > return -EINVAL;
    >
    > vma_len = (loff_t)(vma->vm_end - vma->vm_start);




    \
     
     \ /
      Last update: 2011-07-19 06:47    [W:0.019 / U:2.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site