From: Dan Carpenter <dan.carpen...@oracle.com>

[ Upstream commit 1d2c0c565bc0da25f5e899a862fb58e612b222df ]

The "entry" pointer is an offset from the list head and it doesn't
point to a valid vmw_legacy_display_unit struct.  Presumably the
intent was to point to the last entry.

Also the "i++" wasn't used so I have removed that as well.

Fixes: d7e1958dbe4a ("drm/vmwgfx: Support older hardware.")
Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>
Reviewed-by: Roland Scheidegger <srol...@vmware.com>
Signed-off-by: Roland Scheidegger <srol...@vmware.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index 7235781171912..0743a73117000 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -79,7 +79,7 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
        struct vmw_legacy_display_unit *entry;
        struct drm_framebuffer *fb = NULL;
        struct drm_crtc *crtc = NULL;
-       int i = 0;
+       int i;
 
        /* If there is no display topology the host just assumes
         * that the guest will set the same layout as the host.
@@ -90,12 +90,11 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
                        crtc = &entry->base.crtc;
                        w = max(w, crtc->x + crtc->mode.hdisplay);
                        h = max(h, crtc->y + crtc->mode.vdisplay);
-                       i++;
                }
 
                if (crtc == NULL)
                        return 0;
-               fb = entry->base.crtc.primary->state->fb;
+               fb = crtc->primary->state->fb;
 
                return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
                                          fb->format->cpp[0] * 8,
-- 
2.25.1



Reply via email to