Re: [PATCH] checkpatch: Test for kmalloc/memset(0) pairs

From: Pekka Enberg
Date: Sun Mar 20 2011 - 05:02:22 EST


Hi Julia,

On Sun, Mar 20, 2011 at 10:01 AM, Julia Lawall <julia@xxxxxxx> wrote:
> Suggestions for how to make it easier to use or the documentation more
> understandable are welcome.

The benefit of scripts/checkpatch.pl is that it doesn't require any
setting up to do. I'm personally less likely to use Coccinelle (and
Sparse for that matter) on boxes where the software is not installed.
I'm not sure how other people feel about it, but I'd personally love
to see tools/coccinelle and tools/sparse.

As for something more concrete, I guess this is what I'm mostly interested in:

penberg@jaguar:~/src/linux$ make C=1 CHECK="scripts/coccicheck" mm/slub.o

I guess it'd be good to document that for 'make help' because now you
need to dig through Documentation/coccinelle.txt to find it.

P.S. It seems there's a bug somewhere because the above command fails
miserably for me:

CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CHECK mm/slub.c
File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci",
line 32, column 5, charpos = 747
around = '<+...', whole content = - <+... when != goto l2;
Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty
context: <+...")
File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci",
line 32, column 5, charpos = 747
around = '<+...', whole content = - <+... when != goto l2;
Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty
context: <+...")
File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci",
line 32, column 5, charpos = 747
around = '<+...', whole content = - <+... when != goto l2;
Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty
context: <+...")
File "/home/penberg/src/linux/scripts/coccinelle/api/memdup_user.cocci",
line 32, column 5, charpos = 747
around = '<+...', whole content = - <+... when != goto l2;
Fatal error: exception Lexer_cocci.Lexical("invalid in a nonempty
context: <+...")
make[1]: *** [mm/slub.o] Error 1
make: *** [mm/slub.o] Error 2

penberg@jaguar:~/src/linux$ dpkg -l|grep coccinelle
ii coccinelle 0.2.2.deb-2
semantic patching tool for C

[ I'm on Ubuntu 10.10. ]

Pekka
--
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/