From e14ab3037383f4e3d026e2aea1ad53644a3735ed Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Mon, 25 Mar 2024 21:06:49 +0100 Subject: drm/ast: Allocate instance of struct ast_i2c_chan with managed helpers Replace kzalloc() with drmm_kzalloc() and thereby put the release of the I2C instance into a separate action. Avoids explicit error roll- back in ast_i2c_chan_create(). No functional changes. Signed-off-by: Thomas Zimmermann Reviewed-by: Sui Jingfeng Reviewed-by: Jocelyn Falempe Link: https://patchwork.freedesktop.org/patch/msgid/20240325200855.21150-5-tzimmermann@suse.de --- drivers/gpu/drm/ast/ast_i2c.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'drivers/gpu/drm/ast') diff --git a/drivers/gpu/drm/ast/ast_i2c.c b/drivers/gpu/drm/ast/ast_i2c.c index c3046223a491..dc28a5cbb1c2 100644 --- a/drivers/gpu/drm/ast/ast_i2c.c +++ b/drivers/gpu/drm/ast/ast_i2c.c @@ -107,7 +107,6 @@ static void ast_i2c_release(struct drm_device *dev, void *res) struct ast_i2c_chan *i2c = res; i2c_del_adapter(&i2c->adapter); - kfree(i2c); } struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev) @@ -115,7 +114,7 @@ struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev) struct ast_i2c_chan *i2c; int ret; - i2c = kzalloc(sizeof(struct ast_i2c_chan), GFP_KERNEL); + i2c = drmm_kzalloc(dev->dev, sizeof(*i2c), GFP_KERNEL); if (!i2c) return ERR_PTR(-ENOMEM); @@ -137,7 +136,7 @@ struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev) ret = i2c_bit_add_bus(&i2c->adapter); if (ret) { drm_err(dev, "Failed to register bit i2c\n"); - goto out_kfree; + return ERR_PTR(ret); } ret = drmm_add_action_or_reset(dev, ast_i2c_release, i2c); @@ -145,8 +144,4 @@ struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev) return ERR_PTR(ret); return i2c; - -out_kfree: - kfree(i2c); - return ERR_PTR(ret); } -- cgit v1.2.3