lkml.org 
[lkml]   [2013]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3.10 50/74] uio: provide vm access to UIO_MEM_PHYS maps
    On Fri, Nov 08, 2013 at 10:51:55PM -0800, Greg Kroah-Hartman wrote:
    > 3.10-stable review patch. If anyone has any objections, please let me know.
    >
    > ------------------
    >
    > From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    >
    > commit 7294151d0592e0ff48c61fca9fd7c93d613134da upstream.
    >
    > This makes it possible to let gdb access mappings of the process that is
    > being debugged.
    >
    > uio_mmap_logical was moved and uio_vm_ops renamed to group related code
    > and differentiate to new stuff.
    I wonder why you picked that one for stable?!

    Best regards
    Uwe
    >
    > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    >
    > ---
    > drivers/uio/uio.c | 26 +++++++++++++++++---------
    > 1 file changed, 17 insertions(+), 9 deletions(-)
    >
    > --- a/drivers/uio/uio.c
    > +++ b/drivers/uio/uio.c
    > @@ -630,12 +630,26 @@ static int uio_vma_fault(struct vm_area_
    > return 0;
    > }
    >
    > -static const struct vm_operations_struct uio_vm_ops = {
    > +static const struct vm_operations_struct uio_logical_vm_ops = {
    > .open = uio_vma_open,
    > .close = uio_vma_close,
    > .fault = uio_vma_fault,
    > };
    >
    > +static int uio_mmap_logical(struct vm_area_struct *vma)
    > +{
    > + vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
    > + vma->vm_ops = &uio_logical_vm_ops;
    > + uio_vma_open(vma);
    > + return 0;
    > +}
    > +
    > +static const struct vm_operations_struct uio_physical_vm_ops = {
    > +#ifdef CONFIG_HAVE_IOREMAP_PROT
    > + .access = generic_access_phys,
    > +#endif
    > +};
    > +
    > static int uio_mmap_physical(struct vm_area_struct *vma)
    > {
    > struct uio_device *idev = vma->vm_private_data;
    > @@ -643,6 +657,8 @@ static int uio_mmap_physical(struct vm_a
    > if (mi < 0)
    > return -EINVAL;
    >
    > + vma->vm_ops = &uio_physical_vm_ops;
    > +
    > vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
    >
    > return remap_pfn_range(vma,
    > @@ -652,14 +668,6 @@ static int uio_mmap_physical(struct vm_a
    > vma->vm_page_prot);
    > }
    >
    > -static int uio_mmap_logical(struct vm_area_struct *vma)
    > -{
    > - vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
    > - vma->vm_ops = &uio_vm_ops;
    > - uio_vma_open(vma);
    > - return 0;
    > -}
    > -
    > static int uio_mmap(struct file *filep, struct vm_area_struct *vma)
    > {
    > struct uio_listener *listener = filep->private_data;
    >
    >
    >

    --
    Pengutronix e.K. | Uwe Kleine-König |
    Industrial Linux Solutions | http://www.pengutronix.de/ |
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2013-11-09 15:41    [W:4.279 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site