[PATCH] drm/ingenic: fix error code in ingenic_drm_gem_create_object()

Subsystems: drm drivers, drm drivers and misc gpu patches, ingenic jz47xx socs, the rest

STALE1731d

2 messages, 2 authors, 2021-12-09 · open the first message on its own page

[PATCH] drm/ingenic: fix error code in ingenic_drm_gem_create_object()

From: Dan Carpenter <hidden>
Date: 2021-11-18 11:15:50

The ->gem_create_object() function pointers are supposed to return NULL
on error.  This function returns an error pointer but none of the
callers expect that so it will lead to an Oops.  See drm_gem_vram_create()
for example of it checks for NULL but an error pointer would lead to a
crash.

Fixes: 4a791cb6d34f ("drm/ingenic: Add option to alloc cached GEM buffers")
Signed-off-by: Dan Carpenter <redacted>
---
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index a5df1c8d34cd..eb7266a0b037 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -757,7 +757,7 @@ ingenic_drm_gem_create_object(struct drm_device *drm, size_t size)
 
 	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
 	if (!obj)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 
 	obj->map_noncoherent = priv->soc_info->map_noncoherent;
 
-- 
2.20.1

Re: [PATCH] drm/ingenic: fix error code in ingenic_drm_gem_create_object()

From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2021-12-09 16:57:00

FYI this issue was fixed by [1]. Please don't merge.

[1] 
https://lore.kernel.org/dri-devel/20211130095255.26710-1-tzimmermann@suse.de/

Am 18.11.21 um 12:15 schrieb Dan Carpenter:
quoted hunk
The ->gem_create_object() function pointers are supposed to return NULL
on error.  This function returns an error pointer but none of the
callers expect that so it will lead to an Oops.  See drm_gem_vram_create()
for example of it checks for NULL but an error pointer would lead to a
crash.

Fixes: 4a791cb6d34f ("drm/ingenic: Add option to alloc cached GEM buffers")
Signed-off-by: Dan Carpenter <redacted>
---
  drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index a5df1c8d34cd..eb7266a0b037 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -757,7 +757,7 @@ ingenic_drm_gem_create_object(struct drm_device *drm, size_t size)
  
  	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
  	if (!obj)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
  
  	obj->map_noncoherent = priv->soc_info->map_noncoherent;
  
-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help