* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
@ 2013-08-10 15:25 Julia Lawall
2013-08-10 15:32 ` Joe Perches
2013-08-10 22:33 ` Dan Carpenter
0 siblings, 2 replies; 8+ messages in thread
From: Julia Lawall @ 2013-08-10 15:25 UTC (permalink / raw)
To: linux-arm-kernel
From: Julia Lawall <Julia.Lawall@lip6.fr>
Because ARRAY_AND_SIZE changes the apparent arity of a function, if it is
used for one call to a given function, it would be better, if possible, to
use it for all of them.
The semantic patch that fixes this problem is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@call@
identifier f;
expression e;
expression list[n] es;
@@
f(es,ARRAY_AND_SIZE(e),...)
@@
expression e;
identifier call.f;
expression list[call.n] ess;
@@
f(ess,
- e,ARRAY_SIZE(e)
+ ARRAY_AND_SIZE(e)
,...)
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
arch/arm/mach-pxa/stargate2.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c
index 62aea3e..ee7a42e 100644
--- a/arch/arm/mach-pxa/stargate2.c
+++ b/arch/arm/mach-pxa/stargate2.c
@@ -608,12 +608,10 @@ static void __init imote2_init(void)
imote2_stargate2_init();
- platform_add_devices(imote2_devices, ARRAY_SIZE(imote2_devices));
+ platform_add_devices(ARRAY_AND_SIZE(imote2_devices));
- i2c_register_board_info(0, imote2_i2c_board_info,
- ARRAY_SIZE(imote2_i2c_board_info));
- i2c_register_board_info(1, imote2_pwr_i2c_board_info,
- ARRAY_SIZE(imote2_pwr_i2c_board_info));
+ i2c_register_board_info(0, ARRAY_AND_SIZE(imote2_i2c_board_info));
+ i2c_register_board_info(1, ARRAY_AND_SIZE(imote2_pwr_i2c_board_info));
pxa_set_mci_info(&imote2_mci_platform_data);
pxa_set_udc_info(&imote2_udc_info);
@@ -990,8 +988,7 @@ static void __init stargate2_init(void)
platform_add_devices(ARRAY_AND_SIZE(stargate2_devices));
i2c_register_board_info(0, ARRAY_AND_SIZE(stargate2_i2c_board_info));
- i2c_register_board_info(1, stargate2_pwr_i2c_board_info,
- ARRAY_SIZE(stargate2_pwr_i2c_board_info));
+ i2c_register_board_info(1, ARRAY_AND_SIZE(stargate2_pwr_i2c_board_info));
pxa_set_mci_info(&stargate2_mci_platform_data);
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 15:25 [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently Julia Lawall
@ 2013-08-10 15:32 ` Joe Perches
2013-08-10 15:38 ` Julia Lawall
2013-08-10 17:49 ` walter harms
2013-08-10 22:33 ` Dan Carpenter
1 sibling, 2 replies; 8+ messages in thread
From: Joe Perches @ 2013-08-10 15:32 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, 2013-08-10 at 17:25 +0200, Julia Lawall wrote:
> From: Julia Lawall <Julia.Lawall@lip6.fr>
>
> Because ARRAY_AND_SIZE changes the apparent arity of a function, if it is
> used for one call to a given function, it would be better, if possible, to
> use it for all of them.
I think it'd be better to remove ARRAY_AND_SIZE instead.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 15:32 ` Joe Perches
@ 2013-08-10 15:38 ` Julia Lawall
2013-08-10 15:59 ` Joe Perches
2013-08-10 17:49 ` walter harms
1 sibling, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2013-08-10 15:38 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, 10 Aug 2013, Joe Perches wrote:
> On Sat, 2013-08-10 at 17:25 +0200, Julia Lawall wrote:
> > From: Julia Lawall <Julia.Lawall@lip6.fr>
> >
> > Because ARRAY_AND_SIZE changes the apparent arity of a function, if it is
> > used for one call to a given function, it would be better, if possible, to
> > use it for all of them.
>
> I think it'd be better to remove ARRAY_AND_SIZE instead.
I can do that, if it is wanted, but there are over 200 uses, and I think
it is a little bit positive in that it ensures that the array is passed
along with its own size.
julia
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 15:38 ` Julia Lawall
@ 2013-08-10 15:59 ` Joe Perches
0 siblings, 0 replies; 8+ messages in thread
From: Joe Perches @ 2013-08-10 15:59 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, 2013-08-10 at 17:38 +0200, Julia Lawall wrote:
> On Sat, 10 Aug 2013, Joe Perches wrote:
> > On Sat, 2013-08-10 at 17:25 +0200, Julia Lawall wrote:
> > > From: Julia Lawall <Julia.Lawall@lip6.fr>
> > > Because ARRAY_AND_SIZE changes the apparent arity of a function, if it is
> > > used for one call to a given function, it would be better, if possible, to
> > > use it for all of them.
> > I think it'd be better to remove ARRAY_AND_SIZE instead.
>
> I can do that, if it is wanted, but there are over 200 uses, and I think
> it is a little bit positive in that it ensures that the array is passed
> along with its own size.
Maybe, but if it's generally accepted that it's useful,
and I'm a little dubious because it does hide argument
count in functions where it's used, the 6 #defines should
be centralized in kernel.h
$ git grep "define.*ARRAY_AND_SIZE"
arch/arm/mach-kirkwood/common.h:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
arch/arm/mach-mmp/common.h:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
arch/arm/mach-pxa/generic.h:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
arch/arm/mach-ux500/db8500-regs.h:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
drivers/pinctrl/pinctrl-lantiq.h:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
sound/soc/pxa/mioa701_wm9713.c:#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
A small counter-argument against using ARRAY_AND_SIZE:
clkdev_add_table has 60+ uses, only 6 of those with
ARRAY_AND_SIZE.
I think it makes it difficult to do some cocinelle/spatch
transform on clkdev_add_table.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 15:32 ` Joe Perches
2013-08-10 15:38 ` Julia Lawall
@ 2013-08-10 17:49 ` walter harms
1 sibling, 0 replies; 8+ messages in thread
From: walter harms @ 2013-08-10 17:49 UTC (permalink / raw)
To: linux-arm-kernel
Am 10.08.2013 17:32, schrieb Joe Perches:
> On Sat, 2013-08-10 at 17:25 +0200, Julia Lawall wrote:
>> From: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> Because ARRAY_AND_SIZE changes the apparent arity of a function, if it is
>> used for one call to a given function, it would be better, if possible, to
>> use it for all of them.
>
> I think it'd be better to remove ARRAY_AND_SIZE instead.
>
+1
:)
re,
wh
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 15:25 [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently Julia Lawall
2013-08-10 15:32 ` Joe Perches
@ 2013-08-10 22:33 ` Dan Carpenter
2013-08-11 5:48 ` Julia Lawall
1 sibling, 1 reply; 8+ messages in thread
From: Dan Carpenter @ 2013-08-10 22:33 UTC (permalink / raw)
To: linux-arm-kernel
ARRAY_AND_SIZE() macro is horrible, and I would like it if it were
removed. What I meant before was just that probably people will
probably complain if we try to remove it.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-10 22:33 ` Dan Carpenter
@ 2013-08-11 5:48 ` Julia Lawall
2013-08-11 7:34 ` walter harms
0 siblings, 1 reply; 8+ messages in thread
From: Julia Lawall @ 2013-08-11 5:48 UTC (permalink / raw)
To: linux-arm-kernel
On Sun, 11 Aug 2013, Dan Carpenter wrote:
> ARRAY_AND_SIZE() macro is horrible, and I would like it if it were
> removed. What I meant before was just that probably people will
> probably complain if we try to remove it.
Well, I could either wait for someone to defend it, or send a patch
getting rid of it and see what happens... I can't see what could go wrong
with
f(...,
- ARRAY_AND_SIZE(e)
+ e, ARRAY_SIZE(e)
, ...)
so it should be an easy patch to create.
julia
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently
2013-08-11 5:48 ` Julia Lawall
@ 2013-08-11 7:34 ` walter harms
0 siblings, 0 replies; 8+ messages in thread
From: walter harms @ 2013-08-11 7:34 UTC (permalink / raw)
To: linux-arm-kernel
Am 11.08.2013 07:48, schrieb Julia Lawall:
> On Sun, 11 Aug 2013, Dan Carpenter wrote:
>
>> ARRAY_AND_SIZE() macro is horrible, and I would like it if it were
>> removed. What I meant before was just that probably people will
>> probably complain if we try to remove it.
>
> Well, I could either wait for someone to defend it, or send a patch
> getting rid of it and see what happens... I can't see what could go wrong
> with
>
> f(...,
> - ARRAY_AND_SIZE(e)
> + e, ARRAY_SIZE(e)
> , ...)
>
> so it should be an easy patch to create.
>
if it is not to much work, send a patch to get rid of it.
It seems all agree that the disadvantages outweighs it
advantages.
just my 2 cents,
wh
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-08-11 7:34 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-10 15:25 [PATCH] arch/arm/mach-pxa/stargate2.c: use ARRAY_AND_SIZE consistently Julia Lawall
2013-08-10 15:32 ` Joe Perches
2013-08-10 15:38 ` Julia Lawall
2013-08-10 15:59 ` Joe Perches
2013-08-10 17:49 ` walter harms
2013-08-10 22:33 ` Dan Carpenter
2013-08-11 5:48 ` Julia Lawall
2013-08-11 7:34 ` walter harms
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).