lkml.org 
[lkml]   [2009]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 3/5] checkpatch: add a blacklist
From
Date
On Wed, 2009-09-30 at 16:27 +0100, Andy Whitcroft wrote:

> Yeah I think that blanket ignoring spacing throughout the file seems
> dangerous. If these are going to show up a lot then it seems more sensible
> to special case TRACE_EVENT or whatever is triggering the actual 'false'
> matches. I also suspect the 'this should never get long' argument will
> not be true. Once you can have an exception people will add them all over

It's not ignoring all spacing .. It's just ignoring a single error in a
single directory (or single file).. So it's very specific.. If you did
just match TRACE_EVENT like you suggest then what happens when another
different call in the same code has similar spacing , which could easily
happen.. You also are basically matching a style defect, which doesn't
make much sense to me.. Then one day the person that added the errors
has a revelation , and removes all the errors. Then all the work that
went into the matching is poof worthless.. This list could get to be
10-20 items lots (still not that long) , and writing individual matching
for each of those items and maintaining it would be more work that is
necessary ..

In terms of the list getting long or not, your basically in control of
it since you maintain checkpatch .. If you leave it without some sort of
blacklist, then you end up with whole sections of code where the
developers don't use checkpatch at all (or very little)..

> Care to share an example of a change which is triggereing so we can
> better target the exception.

Basically any file in include/trace/event/ will trigger the blacklist
(listed in the perl code along with the errors that are filtered out)..

In include/trace/events/ext4.h for example the following code,

TRACE_EVENT(ext4_free_inode,
TP_PROTO(struct inode *inode),

TP_ARGS(inode),

TP_STRUCT__entry(
__field( dev_t, dev )
__field( ino_t, ino )
__field( umode_t, mode )
__field( uid_t, uid )
__field( gid_t, gid )
__field( blkcnt_t, blocks )
),

TP_fast_assign(
__entry->dev = inode->i_sb->s_dev;
__entry->ino = inode->i_ino;
__entry->mode = inode->i_mode;
__entry->uid = inode->i_uid;
__entry->gid = inode->i_gid;
__entry->blocks = inode->i_blocks;
),

TP_printk("dev %s ino %lu mode %d uid %u gid %u blocks %llu",
jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
__entry->mode, __entry->uid, __entry->gid,
(unsigned long long) __entry->blocks)
);



Daniel



\
 
 \ /
  Last update: 2009-10-01 16:21    [W:0.182 / U:0.900 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site