All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] staging: greybus: power_supply: Use struct_size() helper
@ 2019-04-03 20:58 Gustavo A. R. Silva
  2019-04-04  6:57 ` Johan Hovold
  2019-04-04  7:09 ` Rui Miguel Silva
  0 siblings, 2 replies; 6+ messages in thread
From: Gustavo A. R. Silva @ 2019-04-03 20:58 UTC (permalink / raw)
  To: Rui Miguel Silva, Johan Hovold, Alex Elder, Greg Kroah-Hartman
  Cc: greybus-dev, devel, linux-kernel, Gustavo A. R. Silva

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes, in particular in the
context in which this code is being used.

So, replace code of the following form:

sizeof(*resp) + props_count * sizeof(struct gb_power_supply_props_desc)

with:

struct_size(resp, props, props_count)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 drivers/staging/greybus/power_supply.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/greybus/power_supply.c b/drivers/staging/greybus/power_supply.c
index 0529e5628c24..40cc2d462ba0 100644
--- a/drivers/staging/greybus/power_supply.c
+++ b/drivers/staging/greybus/power_supply.c
@@ -520,8 +520,8 @@ static int gb_power_supply_prop_descriptors_get(struct gb_power_supply *gbpsy)
 
 	op = gb_operation_create(connection,
 				 GB_POWER_SUPPLY_TYPE_GET_PROP_DESCRIPTORS,
-				 sizeof(req), sizeof(*resp) + props_count *
-				 sizeof(struct gb_power_supply_props_desc),
+				 sizeof(req),
+				 struct_size(resp, props, props_count),
 				 GFP_KERNEL);
 	if (!op)
 		return -ENOMEM;
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: greybus: power_supply: Use struct_size() helper
  2019-04-03 20:58 [PATCH] staging: greybus: power_supply: Use struct_size() helper Gustavo A. R. Silva
@ 2019-04-04  6:57 ` Johan Hovold
  2019-04-10 18:30   ` Gustavo A. R. Silva
  2019-04-04  7:09 ` Rui Miguel Silva
  1 sibling, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2019-04-04  6:57 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Rui Miguel Silva, Johan Hovold, Alex Elder, Greg Kroah-Hartman,
	devel, greybus-dev, linux-kernel

On Wed, Apr 03, 2019 at 03:58:01PM -0500, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes, in particular in the
> context in which this code is being used.
> 
> So, replace code of the following form:
> 
> sizeof(*resp) + props_count * sizeof(struct gb_power_supply_props_desc)
> 
> with:
> 
> struct_size(resp, props, props_count)
> 
> This code was detected with the help of Coccinelle.
> 
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
>  drivers/staging/greybus/power_supply.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/greybus/power_supply.c b/drivers/staging/greybus/power_supply.c
> index 0529e5628c24..40cc2d462ba0 100644
> --- a/drivers/staging/greybus/power_supply.c
> +++ b/drivers/staging/greybus/power_supply.c
> @@ -520,8 +520,8 @@ static int gb_power_supply_prop_descriptors_get(struct gb_power_supply *gbpsy)
>  
>  	op = gb_operation_create(connection,
>  				 GB_POWER_SUPPLY_TYPE_GET_PROP_DESCRIPTORS,
> -				 sizeof(req), sizeof(*resp) + props_count *

This patch looks good, but I noticed a bug here in the current code,
which should be fixed before applying this clean up.

sizeof(req) should have been sizeof(*req) above.

> -				 sizeof(struct gb_power_supply_props_desc),
> +				 sizeof(req),
> +				 struct_size(resp, props, props_count),
>  				 GFP_KERNEL);
>  	if (!op)
>  		return -ENOMEM;

I've just submitted a fix (and CCed you as well). 

Would you mind respinning on top of that one?

Thanks,
Johan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: greybus: power_supply: Use struct_size() helper
  2019-04-03 20:58 [PATCH] staging: greybus: power_supply: Use struct_size() helper Gustavo A. R. Silva
  2019-04-04  6:57 ` Johan Hovold
@ 2019-04-04  7:09 ` Rui Miguel Silva
  2019-04-04  7:24   ` Johan Hovold
  1 sibling, 1 reply; 6+ messages in thread
From: Rui Miguel Silva @ 2019-04-04  7:09 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Johan Hovold, Alex Elder, Greg Kroah-Hartman, greybus-dev, devel,
	linux-kernel

Hi Gustavo,
Thanks a lot for the patch.

On Wed 03 Apr 2019 at 21:58, Gustavo A. R. Silva wrote:
> Make use of the struct_size() helper instead of an open-coded 
> version
> in order to avoid any potential type mistakes, in particular in 
> the
> context in which this code is being used.
>
> So, replace code of the following form:
>
> sizeof(*resp) + props_count * sizeof(struct 
> gb_power_supply_props_desc)
>
> with:
>
> struct_size(resp, props, props_count)
>
> This code was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>

What are the odds of 2 people changing same code in greybus in
the same day :).

But it happened, so as Johan asked please rebase on top of his
patch. that would be great.

---
Cheers,
	Rui

> ---
>  drivers/staging/greybus/power_supply.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/greybus/power_supply.c 
> b/drivers/staging/greybus/power_supply.c
> index 0529e5628c24..40cc2d462ba0 100644
> --- a/drivers/staging/greybus/power_supply.c
> +++ b/drivers/staging/greybus/power_supply.c
> @@ -520,8 +520,8 @@ static int 
> gb_power_supply_prop_descriptors_get(struct gb_power_supply 
> *gbpsy)
>  
>  	op = gb_operation_create(connection,
>  				 GB_POWER_SUPPLY_TYPE_GET_PROP_DESCRIPTORS,
> -				 sizeof(req), sizeof(*resp) + 
> props_count *
> -				 sizeof(struct 
> gb_power_supply_props_desc),
> +				 sizeof(req),
> +				 struct_size(resp, props, 
> props_count),
>  				 GFP_KERNEL);
>  	if (!op)
>  		return -ENOMEM;


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: greybus: power_supply: Use struct_size() helper
  2019-04-04  7:09 ` Rui Miguel Silva
@ 2019-04-04  7:24   ` Johan Hovold
  2019-04-10 18:36     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2019-04-04  7:24 UTC (permalink / raw)
  To: Rui Miguel Silva
  Cc: Gustavo A. R. Silva, Johan Hovold, Alex Elder,
	Greg Kroah-Hartman, greybus-dev, devel, linux-kernel

On Thu, Apr 04, 2019 at 08:09:51AM +0100, Rui Miguel Silva wrote:
> Hi Gustavo,
> Thanks a lot for the patch.
> 
> On Wed 03 Apr 2019 at 21:58, Gustavo A. R. Silva wrote:
> > Make use of the struct_size() helper instead of an open-coded 
> > version
> > in order to avoid any potential type mistakes, in particular in 
> > the
> > context in which this code is being used.
> >
> > So, replace code of the following form:
> >
> > sizeof(*resp) + props_count * sizeof(struct 
> > gb_power_supply_props_desc)
> >
> > with:
> >
> > struct_size(resp, props, props_count)
> >
> > This code was detected with the help of Coccinelle.
> >
> > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> 
> What are the odds of 2 people changing same code in greybus in
> the same day :).

Well, I only noticed the bug in the current code, when reviewing
Gustavo's diff. ;)

Johan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: greybus: power_supply: Use struct_size() helper
  2019-04-04  6:57 ` Johan Hovold
@ 2019-04-10 18:30   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 6+ messages in thread
From: Gustavo A. R. Silva @ 2019-04-10 18:30 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Rui Miguel Silva, Alex Elder, Greg Kroah-Hartman, devel,
	greybus-dev, linux-kernel

Hi Johan,

On 4/4/19 1:57 AM, Johan Hovold wrote:
> 
> This patch looks good, but I noticed a bug here in the current code,
> which should be fixed before applying this clean up.
> 
> sizeof(req) should have been sizeof(*req) above.
> 

Good catch.

>> -				 sizeof(struct gb_power_supply_props_desc),
>> +				 sizeof(req),
>> +				 struct_size(resp, props, props_count),
>>  				 GFP_KERNEL);
>>  	if (!op)
>>  		return -ENOMEM;
> 
> I've just submitted a fix (and CCed you as well). 
> 
> Would you mind respinning on top of that one?
> 

Yep. I'll send v2 shortly.

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] staging: greybus: power_supply: Use struct_size() helper
  2019-04-04  7:24   ` Johan Hovold
@ 2019-04-10 18:36     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 6+ messages in thread
From: Gustavo A. R. Silva @ 2019-04-10 18:36 UTC (permalink / raw)
  To: Johan Hovold, Rui Miguel Silva
  Cc: Alex Elder, Greg Kroah-Hartman, greybus-dev, devel, linux-kernel

Johan,

On 4/4/19 2:24 AM, Johan Hovold wrote:
> On Thu, Apr 04, 2019 at 08:09:51AM +0100, Rui Miguel Silva wrote:
>> Hi Gustavo,
>> Thanks a lot for the patch.
>>
>> On Wed 03 Apr 2019 at 21:58, Gustavo A. R. Silva wrote:
>>> Make use of the struct_size() helper instead of an open-coded 
>>> version
>>> in order to avoid any potential type mistakes, in particular in 
>>> the
>>> context in which this code is being used.
>>>
>>> So, replace code of the following form:
>>>
>>> sizeof(*resp) + props_count * sizeof(struct 
>>> gb_power_supply_props_desc)
>>>
>>> with:
>>>
>>> struct_size(resp, props, props_count)
>>>
>>> This code was detected with the help of Coccinelle.
>>>
>>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>>
>> What are the odds of 2 people changing same code in greybus in
>> the same day :).
> 
> Well, I only noticed the bug in the current code, when reviewing
> Gustavo's diff. ;)
> 

Apparently, your patch hasn't been applied to any tree yet.  So, I'll
wait for it to be applied before sending v2.

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-04-10 18:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-03 20:58 [PATCH] staging: greybus: power_supply: Use struct_size() helper Gustavo A. R. Silva
2019-04-04  6:57 ` Johan Hovold
2019-04-10 18:30   ` Gustavo A. R. Silva
2019-04-04  7:09 ` Rui Miguel Silva
2019-04-04  7:24   ` Johan Hovold
2019-04-10 18:36     ` Gustavo A. R. Silva

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.