[PATCH v1 1/6] dma-buf: Move dma_buf_mmap_internal() to dynamic locking specification

Christian König christian.koenig at amd.com
Fri Nov 11 12:47:26 UTC 2022


Am 10.11.22 um 21:13 schrieb Dmitry Osipenko:
> All dma-buf functions has been moved to dynamic locking specification
> The dma_buf_mmap_internal() was missed out by accident. Take reservation
> lock around file mapping operation to adhere the common locking convention.
>
> Reported-by: Daniel Vetter <daniel at ffwll.ch>
> Signed-off-by: Dmitry Osipenko <dmitry.osipenko at collabora.com>

Reviewed-by: Christian König <christian.koenig at amd.com> for this patch here.

Acked-by: Christian König <christian.koenig at amd.com> for the rest of the 
series.

Regards,
Christian.

> ---
>   drivers/dma-buf/dma-buf.c | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> index 13bfd2d09c56..b809513b03fe 100644
> --- a/drivers/dma-buf/dma-buf.c
> +++ b/drivers/dma-buf/dma-buf.c
> @@ -129,6 +129,7 @@ static struct file_system_type dma_buf_fs_type = {
>   static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma)
>   {
>   	struct dma_buf *dmabuf;
> +	int ret;
>   
>   	if (!is_dma_buf_file(file))
>   		return -EINVAL;
> @@ -144,7 +145,11 @@ static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma)
>   	    dmabuf->size >> PAGE_SHIFT)
>   		return -EINVAL;
>   
> -	return dmabuf->ops->mmap(dmabuf, vma);
> +	dma_resv_lock(dmabuf->resv, NULL);
> +	ret = dmabuf->ops->mmap(dmabuf, vma);
> +	dma_resv_unlock(dmabuf->resv);
> +
> +	return ret;
>   }
>   
>   static loff_t dma_buf_llseek(struct file *file, loff_t offset, int whence)



More information about the dri-devel mailing list