[PATCH v2] drm/vmwgfx: Fix NULL vs error pointer bug in vmw_prime_import_sg_table()
From: Dan Carpenter
Date: Tue Jun 30 2026 - 09:38:44 EST
The vmw_prime_import_sg_table() function is expected to return error
pointers on error and not NULL. Otherwise it leads to a NULL dereference
in the caller drm_gem_prime_import_dev().
Propagate the error code from vmw_bo_create().
Fixes: b32233acceff ("drm/vmwgfx: Fix prime import/export")
Signed-off-by: Dan Carpenter <error27@xxxxxxxxx>
---
v2: Propagate the error code from vmw_bo_create() instead of hardcoding
-ENOMEM.
drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c
index 39f8c46550c2..93a92ae625f8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c
@@ -184,7 +184,7 @@ struct drm_gem_object *vmw_prime_import_sg_table(struct drm_device *dev,
{
int ret;
struct vmw_private *dev_priv = vmw_priv(dev);
- struct drm_gem_object *gem = NULL;
+ struct drm_gem_object *gem;
struct vmw_bo *vbo;
struct vmw_bo_params params = {
.domain = (dev_priv->has_mob) ? VMW_BO_DOMAIN_SYS : VMW_BO_DOMAIN_VRAM,
@@ -201,8 +201,10 @@ struct drm_gem_object *vmw_prime_import_sg_table(struct drm_device *dev,
dma_resv_lock(params.resv, NULL);
ret = vmw_bo_create(dev_priv, ¶ms, &vbo);
- if (ret != 0)
+ if (ret != 0) {
+ gem = ERR_PTR(ret);
goto out_no_bo;
+ }
vbo->tbo.base.funcs = &vmw_gem_object_funcs;
--
2.53.0