Re: [PATCH] removes array_size duplicates

From: Robert P. J. Day
Date: Mon Oct 01 2007 - 05:51:28 EST


On Mon, 1 Oct 2007, Andrew Morton wrote:

> On Fri, 28 Sep 2007 00:51:13 +0200 roel <12o3l@xxxxxxxxxx> wrote:
>
> > This patch removes some ARRAY_SIZE macro duplicates. There is also one in
> > arch/um/include/user.h, which isn't fixed here because comments in that file
> > explicitly state a preference for the 'less fancy' version. If that's the
> > case as well for any of the other replacements please comment.
>
> I got a bunch of rejects against various development trees, a
> build error in net/ipv4/ipvs/ip_vs_proto_udp.c and now
>
> net/netfilter/xt_sctp.c: In function 'match_packet':
> net/netfilter/xt_sctp.c:58: error: size of array 'type name' is negative
> net/netfilter/xt_sctp.c:106: error: size of array 'type name' is negative

among other things, one of the creepy issues here is the definition in
include/linux/netfilter/xt_sctp.h of the macro:

...
#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \
do { \
int i; \
for (i = 0; i < ELEMCOUNT(chunkmap); i++) \
destmap[i] = srcmap[i]; \
} while (0)
...

i'm not a big fan of macros that refer to objects that aren't
parameters to the macro, especially when all the rest of them *do*.

rday

p.s. ELEMCOUNT is simply an alternative to ARRAY_SIZE, which could
certainly be rewritten that way.

--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/