Re: [PATCH][next] drm/omap: clean up error exit path on omap_encoder allocation failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 15/10/2024 17:10, Colin Ian King wrote:
Currently when an allocation failure occurs for omap_encoder the exit
path will destroy encoder via omap_encoder_destroy  if it is not null.
However, encoder is always null at this point, so the check and destroy
is redundant and can be removed. Clean up the code by removing the exit
path and redundant omap_encoder_destroy call, and just return NULL.

Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx>
---
  drivers/gpu/drm/omapdrm/omap_encoder.c | 8 +-------
  1 file changed, 1 insertion(+), 7 deletions(-)

This is correct, but I think it would make sense to fix the error handling in omap_encoder_init() fully, instead of just partially: drm_encoder_init() can return an error, in which case we should free the omap_encoder.

Could you update the patch to do that too?

 Tomi

diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c b/drivers/gpu/drm/omapdrm/omap_encoder.c
index 4dd05bc732da..a99022638a2c 100644
--- a/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -126,21 +126,15 @@ struct drm_encoder *omap_encoder_init(struct drm_device *dev,
omap_encoder = kzalloc(sizeof(*omap_encoder), GFP_KERNEL);
  	if (!omap_encoder)
-		goto fail;
+		return NULL;
omap_encoder->output = output; encoder = &omap_encoder->base; drm_encoder_init(dev, encoder, &omap_encoder_funcs,
  			 DRM_MODE_ENCODER_TMDS, NULL);
  	drm_encoder_helper_add(encoder, &omap_encoder_helper_funcs);
return encoder;
-
-fail:
-	if (encoder)
-		omap_encoder_destroy(encoder);
-
-	return NULL;
  }




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux