diff mbox series

[RESEND] drm/vc4: Fix an error code vc4_create_object()

Message ID 20210225144210.GA2222@kadam (mailing list archive)
State New, archived
Headers show
Series [RESEND] drm/vc4: Fix an error code vc4_create_object() | expand

Commit Message

Dan Carpenter Feb. 25, 2021, 2:42 p.m. UTC
The vc4_create_object() needs to return NULL on error, not error
pointers.  If it returns an error pointer then that will lead to an
Oops in the callers.  Fortunately, in current kernels small allocations
always succed so this will never happen.

Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
I sent this patch last June but it was never applied.

 drivers/gpu/drm/vc4/vc4_bo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Neil Roberts Feb. 25, 2021, 2:57 p.m. UTC | #1
Dan Carpenter <dan.carpenter@oracle.com> writes:

> The vc4_create_object() needs to return NULL on error, not error
> pointers.  If it returns an error pointer then that will lead to an
> Oops in the callers.  Fortunately, in current kernels small allocations
> always succed so this will never happen.
>
> Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> I sent this patch last June but it was never applied.
>
>  drivers/gpu/drm/vc4/vc4_bo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
> index 72d30d90b856c..0af246a5609ca 100644
> --- a/drivers/gpu/drm/vc4/vc4_bo.c
> +++ b/drivers/gpu/drm/vc4/vc4_bo.c
> @@ -389,7 +389,7 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size)
>  
>  	bo = kzalloc(sizeof(*bo), GFP_KERNEL);
>  	if (!bo)
> -		return ERR_PTR(-ENOMEM);
> +		return NULL;

This change looks right to me. For reference, the code that calls it
looks like this:

	if (drm->driver->gem_create_object)
		gem_obj = drm->driver->gem_create_object(drm, size);
        /* … */
	if (!gem_obj)
		return ERR_PTR(-ENOMEM);

Reviewed-by: Neil Roberts <nroberts@igalia.com>

Regards,
- Neil
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
index 72d30d90b856c..0af246a5609ca 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
@@ -389,7 +389,7 @@  struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size)
 
 	bo = kzalloc(sizeof(*bo), GFP_KERNEL);
 	if (!bo)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 
 	bo->madv = VC4_MADV_WILLNEED;
 	refcount_set(&bo->usecnt, 0);