lkml.org 
[lkml]   [2010]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3/5] uio: Remove unused uio_info mmap method.

    There are no drivers in the kernel that implement the uio_info mmap
    method so there is no point in keeping it.

    Further keeping the mmap method would necessitate wrapping all of the
    methods in vm_operations_struct to successfully implement support for
    hotunplugable hardware, and it I have yet to find a correct way to wrap
    the the vm_operations_struct close method.

    Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
    ---
    drivers/uio/uio.c | 6 ------
    include/linux/uio_driver.h | 1 -
    2 files changed, 0 insertions(+), 7 deletions(-)

    diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
    index 95f25ae..fc52fbc 100644
    --- a/drivers/uio/uio.c
    +++ b/drivers/uio/uio.c
    @@ -659,7 +659,6 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma)
    struct uio_device *idev = listener->dev;
    int mi;
    unsigned long requested_pages, actual_pages;
    - int ret = 0;

    if (vma->vm_end < vma->vm_start)
    return -EINVAL;
    @@ -676,11 +675,6 @@ static int uio_mmap(struct file *filep, struct vm_area_struct *vma)
    if (requested_pages > actual_pages)
    return -EINVAL;

    - if (idev->info->mmap) {
    - ret = idev->info->mmap(idev->info, vma);
    - return ret;
    - }
    -
    switch (idev->info->mem[mi].memtype) {
    case UIO_MEM_PHYS:
    return uio_mmap_physical(vma);
    diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
    index d6188e5..33789d4 100644
    --- a/include/linux/uio_driver.h
    +++ b/include/linux/uio_driver.h
    @@ -88,7 +88,6 @@ struct uio_info {
    unsigned long irq_flags;
    void *priv;
    irqreturn_t (*handler)(int irq, struct uio_info *dev_info);
    - int (*mmap)(struct uio_info *info, struct vm_area_struct *vma);
    int (*open)(struct uio_info *info, struct inode *inode);
    int (*release)(struct uio_info *info, struct inode *inode);
    int (*irqcontrol)(struct uio_info *info, s32 irq_on);
    --
    1.7.2.2


    \
     
     \ /
      Last update: 2010-09-20 09:25    [W:3.735 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site