[PATCH] drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()

Haoxiang Li posted 1 patch 1 month, 2 weeks ago
drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()
Posted by Haoxiang Li 1 month, 2 weeks ago
In vmw_compat_shader_add(), the return value check of vmw_shader_alloc()
is not proper. Modify the check for the return pointer 'res'.

Found by code review and compiled on ubuntu 20.04.

Fixes: 18e4a4669c50 ("drm/vmwgfx: Fix compat shader namespace")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
index 69dfe69ce0f8..7ed938710342 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
@@ -923,8 +923,10 @@ int vmw_compat_shader_add(struct vmw_private *dev_priv,
 	ttm_bo_unreserve(&buf->tbo);
 
 	res = vmw_shader_alloc(dev_priv, buf, size, 0, shader_type);
-	if (unlikely(ret != 0))
+	if (IS_ERR(res)) {
+		ret = PTR_ERR(res);
 		goto no_reserve;
+	}
 
 	ret = vmw_cmdbuf_res_add(man, vmw_cmdbuf_res_shader,
 				 vmw_shader_key(user_key, shader_type),
-- 
2.25.1
Re: [PATCH] drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()
Posted by Zack Rusin 1 month ago
On Wed, Dec 24, 2025 at 4:11 AM Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> wrote:
>
> In vmw_compat_shader_add(), the return value check of vmw_shader_alloc()
> is not proper. Modify the check for the return pointer 'res'.
>
> Found by code review and compiled on ubuntu 20.04.
>
> Fixes: 18e4a4669c50 ("drm/vmwgfx: Fix compat shader namespace")
> Cc: stable@vger.kernel.org
> Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
> index 69dfe69ce0f8..7ed938710342 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
> @@ -923,8 +923,10 @@ int vmw_compat_shader_add(struct vmw_private *dev_priv,
>         ttm_bo_unreserve(&buf->tbo);
>
>         res = vmw_shader_alloc(dev_priv, buf, size, 0, shader_type);
> -       if (unlikely(ret != 0))
> +       if (IS_ERR(res)) {
> +               ret = PTR_ERR(res);
>                 goto no_reserve;
> +       }
>
>         ret = vmw_cmdbuf_res_add(man, vmw_cmdbuf_res_shader,
>                                  vmw_shader_key(user_key, shader_type),
> --
> 2.25.1
>

Thanks, looks good. I pushed it to drm-misc-fixes.

z