[PATCH] list.h: don't evaluate macro args multiple times
authorZach Brown <zach.brown@oracle.com>
Fri, 3 Feb 2006 11:03:56 +0000 (03:03 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 3 Feb 2006 16:32:02 +0000 (08:32 -0800)
commit490d6ab170c94a7a59870f528d765131b8963e79
tree909deca0ac2476a839b446de382a4866dccf0196
parentbcc68b8616bcac47dbfc414398e382b3b10faf4c
[PATCH] list.h: don't evaluate macro args multiple times

I noticed that list.h init functions were evaluating macro arguments
multiple times and thought it might be nice to protect the unsuspecting
caller.  Converting the macros to inline functions seems to reduce code
size, too.  A i386 defconfig build with gcc 3.3.3 from fc4:

   text    data     bss     dec     hex filename
3573148  565664  188828 4327640  4208d8 vmlinux.before
3572177  565664  188828 4326669  42050d vmlinux

add/remove: 0/0 grow/shrink: 11/144 up/down: 88/-1016 (-928)

There was no difference in checkstack output.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/list.h