lkml.org 
[lkml]   [2008]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/3] uio: vm_operations_struct ->nopage to ->fault method conversion
    Date
    Signed-off-by: Denis Cheng <crquan@gmail.com>
    ---
    drivers/uio/uio.c | 19 ++++++++-----------
    1 files changed, 8 insertions(+), 11 deletions(-)

    diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
    index cc246fa..47e0c32 100644
    --- a/drivers/uio/uio.c
    +++ b/drivers/uio/uio.c
    @@ -417,30 +417,27 @@ static void uio_vma_close(struct vm_area_struct *vma)
    idev->vma_count--;
    }

    -static struct page *uio_vma_nopage(struct vm_area_struct *vma,
    - unsigned long address, int *type)
    +static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
    {
    struct uio_device *idev = vma->vm_private_data;
    - struct page* page = NOPAGE_SIGBUS;

    int mi = uio_find_mem_index(vma);
    if (mi < 0)
    - return page;
    + return VM_FAULT_SIGBUS;

    if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL)
    - page = virt_to_page(idev->info->mem[mi].addr);
    + vmf->page = virt_to_page(idev->info->mem[mi].addr);
    else
    - page = vmalloc_to_page((void*)idev->info->mem[mi].addr);
    - get_page(page);
    - if (type)
    - *type = VM_FAULT_MINOR;
    - return page;
    + vmf->page = vmalloc_to_page((void *)idev->info->mem[mi].addr);
    + get_page(vmf->page);
    +
    + return 0;
    }

    static struct vm_operations_struct uio_vm_ops = {
    .open = uio_vma_open,
    .close = uio_vma_close,
    - .nopage = uio_vma_nopage,
    + .fault = uio_vma_fault,
    };

    static int uio_mmap_physical(struct vm_area_struct *vma)
    --
    1.5.3.8


    \
     
     \ /
      Last update: 2008-02-02 10:55    [W:0.022 / U:90.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site