lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190513143921.GP17751@phenom.ffwll.local>
Date:   Mon, 13 May 2019 16:39:21 +0200
From:   Daniel Vetter <daniel@...ll.ch>
To:     Steven Price <steven.price@....com>
Cc:     Rob Herring <robh@...nel.org>,
        Tomeu Vizoso <tomeu.vizoso@...labora.com>,
        Daniel Vetter <daniel@...ll.ch>,
        David Airlie <airlied@...ux.ie>,
        dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
        Alyssa Rosenzweig <alyssa@...enzweig.io>
Subject: Re: [PATCH] drm/panfrost: Use drm_gem_dump_map_offset()

On Mon, May 13, 2019 at 03:32:44PM +0100, Steven Price wrote:
> panfrost_ioctl_mmap_bo() contains a reimplementation of
> drm_gem_dump_map_offset() but with a bug - it allows mapping imported
> objects (without going through the exporter). Fix this by switching to
> use the generic drm_gem_dump_map_offset() function instead which has the
> bonus of simplifying the code.

gem_dumb stuff is for kms drivers, panfrost is a render driver. We're
generally trying to separate these two worlds somewhat cleanly.

I think it'd be good to have a non-dumb version of this in the core, and
use that. Or upgrade the dumb version to be that helper for everyone (and
drop the _dumb).
-Daniel

> CC: Alyssa Rosenzweig <alyssa@...enzweig.io>
> Signed-off-by: Steven Price <steven.price@....com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_drv.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 94b0819ad50b..d048250ad8ab 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -254,26 +254,14 @@ static int panfrost_ioctl_mmap_bo(struct drm_device *dev, void *data,
>  		      struct drm_file *file_priv)
>  {
>  	struct drm_panfrost_mmap_bo *args = data;
> -	struct drm_gem_object *gem_obj;
> -	int ret;
>  
>  	if (args->flags != 0) {
>  		DRM_INFO("unknown mmap_bo flags: %d\n", args->flags);
>  		return -EINVAL;
>  	}
>  
> -	gem_obj = drm_gem_object_lookup(file_priv, args->handle);
> -	if (!gem_obj) {
> -		DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle);
> -		return -ENOENT;
> -	}
> -
> -	ret = drm_gem_create_mmap_offset(gem_obj);
> -	if (ret == 0)
> -		args->offset = drm_vma_node_offset_addr(&gem_obj->vma_node);
> -	drm_gem_object_put_unlocked(gem_obj);
> -
> -	return ret;
> +	return drm_gem_dumb_map_offset(file_priv, dev, args->handle,
> +				       &args->offset);
>  }
>  
>  static int panfrost_ioctl_get_bo_offset(struct drm_device *dev, void *data,
> -- 
> 2.20.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ