summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Kuratov <kniv@yandex-team.ru>2024-10-02 14:24:29 +0200
committerZack Rusin <zack.rusin@broadcom.com>2024-10-10 20:35:24 +0200
commit26498b8d54373d31a621d7dec95c4bd842563b3b (patch)
treeeaf5174b954e9c9e5beac1d50dcd804e37a37d9b
parentdrm/vmwgfx: Cleanup kms setup without 3d (diff)
downloadlinux-26498b8d54373d31a621d7dec95c4bd842563b3b.tar.xz
linux-26498b8d54373d31a621d7dec95c4bd842563b3b.zip
drm/vmwgfx: Handle surface check failure correctly
Currently if condition (!bo and !vmw_kms_srf_ok()) was met we go to err_out with ret == 0. err_out dereferences vfb if ret == 0, but in our case vfb is still NULL. Fix this by assigning sensible error to ret. Found by Linux Verification Center (linuxtesting.org) with SVACE Signed-off-by: Nikolay Kuratov <kniv@yandex-team.ru> Cc: stable@vger.kernel.org Fixes: 810b3e1683d0 ("drm/vmwgfx: Support topology greater than texture size") Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241002122429.1981822-1-kniv@yandex-team.ru
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_kms.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index e8c08e4a5eff..63b8d7591253 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -1510,6 +1510,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
DRM_ERROR("Surface size cannot exceed %dx%d\n",
dev_priv->texture_max_width,
dev_priv->texture_max_height);
+ ret = -EINVAL;
goto err_out;
}