LinuxTV Patchwork [v2] media: i2c: adv748x: Use devm to allocate the device struct

login
register
mail settings
Submitter Kieran Bingham
Date Jan. 11, 2019, 4:17 p.m.
Message ID <20190111161703.7972-1-kieran.bingham+renesas@ideasonboard.com>
Download mbox | patch
Permalink /patch/53874/
State Under Review
Delegated to: Hans Verkuil
Headers show

Comments

Kieran Bingham - Jan. 11, 2019, 4:17 p.m.
From: Steve Longerbeam <steve_longerbeam@mentor.com>

Switch to devm_kzalloc() when allocating the adv748x device struct.

The sizeof() is updated to determine the correct allocation size from
the dereferenced pointer type rather than hardcoding the struct type.

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
[Kieran: Change sizeof() to dereference the pointer type]
Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
---
 drivers/media/i2c/adv748x/adv748x-core.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
Niklas Söderlund - Jan. 14, 2019, 1:06 p.m.
Hi Kieran,

Thanks for your work.

On 2019-01-11 16:17:03 +0000, Kieran Bingham wrote:
> From: Steve Longerbeam <steve_longerbeam@mentor.com>
> 
> Switch to devm_kzalloc() when allocating the adv748x device struct.
> 
> The sizeof() is updated to determine the correct allocation size from
> the dereferenced pointer type rather than hardcoding the struct type.

I would put this under a changes since v1 section and not for inclusion 
on the commit message upstream. Apart from that

Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

> 
> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> [Kieran: Change sizeof() to dereference the pointer type]
> Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> ---
>  drivers/media/i2c/adv748x/adv748x-core.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c
> index 060d0c5b4989..1e5c7bbcf6b2 100644
> --- a/drivers/media/i2c/adv748x/adv748x-core.c
> +++ b/drivers/media/i2c/adv748x/adv748x-core.c
> @@ -674,7 +674,7 @@ static int adv748x_probe(struct i2c_client *client,
>  	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
>  		return -EIO;
>  
> -	state = kzalloc(sizeof(struct adv748x_state), GFP_KERNEL);
> +	state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
>  	if (!state)
>  		return -ENOMEM;
>  
> @@ -772,7 +772,6 @@ static int adv748x_probe(struct i2c_client *client,
>  	adv748x_dt_cleanup(state);
>  err_free_mutex:
>  	mutex_destroy(&state->mutex);
> -	kfree(state);
>  
>  	return ret;
>  }
> @@ -791,8 +790,6 @@ static int adv748x_remove(struct i2c_client *client)
>  	adv748x_dt_cleanup(state);
>  	mutex_destroy(&state->mutex);
>  
> -	kfree(state);
> -
>  	return 0;
>  }
>  
> -- 
> 2.17.1
>
Kieran Bingham - Jan. 14, 2019, 1:15 p.m.
Hi Niklas,

On 14/01/2019 13:06, Niklas Söderlund wrote:
> Hi Kieran,
> 
> Thanks for your work.
> 
> On 2019-01-11 16:17:03 +0000, Kieran Bingham wrote:
>> From: Steve Longerbeam <steve_longerbeam@mentor.com>
>>
>> Switch to devm_kzalloc() when allocating the adv748x device struct.
>>
>> The sizeof() is updated to determine the correct allocation size from
>> the dereferenced pointer type rather than hardcoding the struct type.
> 
> I would put this under a changes since v1 section and not for inclusion 
> on the commit message upstream. Apart from that

I considered that, but this is an actual change as well as the
s/kzalloc/devm_kzalloc/ on top of the existing code - so I felt it was
worthy of keeping in the changelog.

(The original code uses sizeof(struct...) instead of sizeof(*s))

> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

Thanks

Kieran


> 
>>
>> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
>> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
>> [Kieran: Change sizeof() to dereference the pointer type]
>> Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
>> ---
>>  drivers/media/i2c/adv748x/adv748x-core.c | 5 +----
>>  1 file changed, 1 insertion(+), 4 deletions(-)
>>
>> diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c
>> index 060d0c5b4989..1e5c7bbcf6b2 100644
>> --- a/drivers/media/i2c/adv748x/adv748x-core.c
>> +++ b/drivers/media/i2c/adv748x/adv748x-core.c
>> @@ -674,7 +674,7 @@ static int adv748x_probe(struct i2c_client *client,
>>  	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
>>  		return -EIO;
>>  
>> -	state = kzalloc(sizeof(struct adv748x_state), GFP_KERNEL);
>> +	state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
>>  	if (!state)
>>  		return -ENOMEM;
>>  
>> @@ -772,7 +772,6 @@ static int adv748x_probe(struct i2c_client *client,
>>  	adv748x_dt_cleanup(state);
>>  err_free_mutex:
>>  	mutex_destroy(&state->mutex);
>> -	kfree(state);
>>  
>>  	return ret;
>>  }
>> @@ -791,8 +790,6 @@ static int adv748x_remove(struct i2c_client *client)
>>  	adv748x_dt_cleanup(state);
>>  	mutex_destroy(&state->mutex);
>>  
>> -	kfree(state);
>> -
>>  	return 0;
>>  }
>>  
>> -- 
>> 2.17.1
>>
>

Patch

diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c
index 060d0c5b4989..1e5c7bbcf6b2 100644
--- a/drivers/media/i2c/adv748x/adv748x-core.c
+++ b/drivers/media/i2c/adv748x/adv748x-core.c
@@ -674,7 +674,7 @@  static int adv748x_probe(struct i2c_client *client,
 	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
 		return -EIO;
 
-	state = kzalloc(sizeof(struct adv748x_state), GFP_KERNEL);
+	state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
 	if (!state)
 		return -ENOMEM;
 
@@ -772,7 +772,6 @@  static int adv748x_probe(struct i2c_client *client,
 	adv748x_dt_cleanup(state);
 err_free_mutex:
 	mutex_destroy(&state->mutex);
-	kfree(state);
 
 	return ret;
 }
@@ -791,8 +790,6 @@  static int adv748x_remove(struct i2c_client *client)
 	adv748x_dt_cleanup(state);
 	mutex_destroy(&state->mutex);
 
-	kfree(state);
-
 	return 0;
 }
 

Privacy Policy