Messages in this thread | | | Date | Thu, 24 Mar 2011 17:10:30 +0100 | Subject | Re: [PATCH] checkpatch: Test for kmalloc/memset(0) pairs | From | Nicolas Palix <> |
| |
On Thu, Mar 24, 2011 at 5:08 PM, Julia Lawall <julia@diku.dk> wrote: > On Thu, 24 Mar 2011, Aneesh Kumar K. V wrote: > >> On Sun, 20 Mar 2011 10:17:07 +0100 (CET), Julia Lawall <julia@diku.dk> wrote: >> > On Sun, 20 Mar 2011, Pekka Enberg wrote: >> > >> > > Hi Julia, >> > > >> > > On Sun, Mar 20, 2011 at 10:01 AM, Julia Lawall <julia@diku.dk> 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. >> > >> > This was discussed before, and it was felt that perhaps 75000 lines of >> > ocaml code was not really appropriate for the Linux source tree, and also >> > that it would too much complicate our development process. >> > >> > One reason for using multiple machines would be to work on multiple >> > architectures. But Coccinelle is not sensitive to the architecture on >> > which it is run, so perhaps you do't need to have it installed everywhere. >> > >> > > 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. >> > >> > OK, thanks. We will look into that. >> > >> > > 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. ] >> > >> > Indeed that one seems to be quite out of date. You can get the most >> > recent version here: https://launchpad.net/~npalix/+archive/coccinelle >> >> I never got a working version of coccinelle with scripts in the kernel. >> Even the ppa version doesn't work for me. >> >> make C=2 CHECK=scripts/coccicheck fs/namei.o >> ... >> .... >> CHECK scripts/mod/empty.c >> File "/home/opensource/sources/kernels/linux-2.6/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/opensource/sources/kernels/linux-2.6/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/opensource/sources/kernels/linux-2.6/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/opensource/sources/kernels/linux-2.6/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: <+...") > > That's quite strange. Could you check that you are using the ppa version > and not the old version? spatch -version should give you 0.2.5-rc8
Indeed... I just checked and I got not error.
npalix@penpen:~/Build/linux$ make C=2 CHECK=scripts/coccicheck COCCI="scripts/coccinelle/api/memdup_user.cocci" fs/namei.o CHK include/linux/version.h CHK include/generated/utsrelease.h CALL scripts/checksyscalls.sh CHECK scripts/mod/empty.c CHECK fs/namei.c npalix@penpen:~/Build/linux$ make C=2 CHECK=scripts/coccicheck fs/namei.o CHK include/linux/version.h CHK include/generated/utsrelease.h CALL scripts/checksyscalls.sh CHECK scripts/mod/empty.c CHECK fs/namei.c npalix@penpen:~/Build/linux$ spatch -version spatch version 0.2.5-rc8 with Python support
> > julia >
-- Nicolas Palix http://sardes.inrialpes.fr/~npalix/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |