[PATCH 3/7] drm/udl: Vmap framebuffer after all tests succeeded in damage handling
Sam Ravnborg
sam at ravnborg.org
Wed Dec 4 14:25:44 UTC 2019
Hi Thomas.
I did a casual browse of the patches.
Looks like some nice cleanup.
On Wed, Dec 04, 2019 at 02:24:26PM +0100, Thomas Zimmermann wrote:
> We now do the fast tests before the potentially expensive vmap operation.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> ---
> drivers/gpu/drm/udl/udl_fb.c | 19 +++++++------------
> drivers/gpu/drm/udl/udl_transfer.c | 1 -
> 2 files changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
> index ed6d9476b25b..dd7ba7f63214 100644
> --- a/drivers/gpu/drm/udl/udl_fb.c
> +++ b/drivers/gpu/drm/udl/udl_fb.c
> @@ -85,12 +85,6 @@ int udl_handle_damage(struct drm_framebuffer *fb, int x, int y,
> }
> spin_unlock(&udl->active_fb_16_lock);
>
> - vaddr = drm_gem_shmem_vmap(fb->obj[0]);
> - if (IS_ERR(vaddr)) {
> - DRM_ERROR("failed to vmap fb\n");
> - return 0;
> - }
> -
> aligned_x = DL_ALIGN_DOWN(x, sizeof(unsigned long));
> width = DL_ALIGN_UP(width + (x-aligned_x), sizeof(unsigned long));
> x = aligned_x;
> @@ -98,8 +92,13 @@ int udl_handle_damage(struct drm_framebuffer *fb, int x, int y,
> if ((width <= 0) ||
> (x + width > fb->width) ||
> (y + height > fb->height)) {
> - ret = -EINVAL;
> - goto err_drm_gem_shmem_vunmap;
> + return -EINVAL;
> + }
> +
> + vaddr = drm_gem_shmem_vmap(fb->obj[0]);
> + if (IS_ERR(vaddr)) {
> + DRM_ERROR("failed to vmap fb\n");
> + return 0;
> }
>
> urb = udl_get_urb(dev);
> @@ -131,10 +130,6 @@ int udl_handle_damage(struct drm_framebuffer *fb, int x, int y,
> drm_gem_shmem_vunmap(fb->obj[0], vaddr);
>
> return 0;
> -
> -err_drm_gem_shmem_vunmap:
> - drm_gem_shmem_vunmap(fb->obj[0], vaddr);
> - return ret;
This label is reintroduced two patches later.
Is this on purpose it is gone and reintroduced?
Sam
More information about the dri-devel
mailing list