lkml.org 
[lkml]   [2011]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] checkpatch: Test for kmalloc/memset(0) pairs
On Thu, Mar 17, 2011 at 09:15:48PM -0600, Jonathan Corbet wrote:
> On Thu, 17 Mar 2011 22:52:24 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
>
> > The use of kzalloc() is preferred over kmalloc/memset(0) pairs.
> >
> > When a match is made with "memset(p, 0, s);" a search back through the
> > patch hunk is made looking for "p = kmalloc(s,". If that is found, then
> > a warning is given, suggesting to use kzalloc() instead.
>
> The Coccinelle stuff already has a lot of this kind of test. See, for
> example, scripts/coccinelle/api/alloc/kzalloc-simple.cocci. Suppose
> there is some way all this nice analysis infrastructure could be
> integrated instead of duplicated? Or am I just a crazy dreamer?

Maybe. Coccinelle is one of those tools that seems to be perpetually
on my "to look into" list that I never get around to.


Something that has crossed my mind over the last few days was the idea
of splitting checkpatch into two tools.
One for checking CodingStyle issues, and one for checking for actual
code problems like the memset example.

The motivation for such is that I think it's pretty clear that many maintainers
never run checkpatch on patches they queue up before pushing to Linus...

$ scripts/checkpatch.pl ~/Mail/upstream/2.6.39/head-March-18-2011 | wc -l
2361

The bulk of this is all "missing space here" "don't put a space there" type
fluff that most maintainers just don't care about. Any valuable warnings
are lost in the noise. If we had a separate tool to check for real flaws,
(or even a way to suppress the stylistic warnings from the existing one)
maybe more maintainers would run their changes through it.

I dunno, maybe I'm just a crazy dreamer too, but I think many people
have written checkpatch off as useless in its current incarnation.

Dave



\
 
 \ /
  Last update: 2011-03-19 20:43    [W:0.076 / U:1.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site