Re: [PATCH 3.10 50/74] uio: provide vm access to UIO_MEM_PHYS maps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>
> 
> 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@xxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 
> ---
>  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 stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]