drm/fb-helper: Copy dma-buf map before flushing shadow fb
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 20 Nov 2020 10:25:44 +0000 (11:25 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 24 Nov 2020 08:31:34 +0000 (09:31 +0100)
Copy the vmap()'ed instance of struct dma_buf_map before modifying it,
in case the implementation of vunmap() depends on the exact address.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20201120102545.4047-10-tzimmermann@suse.de
drivers/gpu/drm/drm_fb_helper.c

index 3143526..0aac545 100644 (file)
@@ -395,14 +395,15 @@ static int drm_fb_helper_damage_blit(struct drm_fb_helper *fb_helper,
                                     struct drm_clip_rect *clip)
 {
        struct drm_client_buffer *buffer = fb_helper->buffer;
-       struct dma_buf_map map;
+       struct dma_buf_map map, dst;
        int ret;
 
        ret = drm_client_buffer_vmap(buffer, &map);
        if (ret)
                return ret;
 
-       drm_fb_helper_damage_blit_real(fb_helper, clip, &map);
+       dst = map;
+       drm_fb_helper_damage_blit_real(fb_helper, clip, &dst);
 
        drm_client_buffer_vunmap(buffer);