12 Aug, 2007

1 commit

  • This version brings a number of new checks, and a number of bug
    fixes. Of note:

    - checks for spacing on round and square bracket combinations
    - loosening of the single statement brace checks, to allow
    them when they contain comments or where other blocks in a
    compound statement have them.
    - parks the multple declaration support
    - allows architecture defines in architecture specific headers

    Andy Whitcroft (21):
    Version: 0.09
    loosen single statement brace checks
    fix up multiple declaration to avoid function arguments
    add some function space parenthesis check exceptions
    handle EXPORT_'s with parentheses in their names
    clean up some warnings in multi-line macro bracketing support
    park the multiple declaration checks
    make block brace checks count comments as a statement
    __volatile__ and __extension__ are not functions
    allow architecture specific defined within architecture includes
    check spacing on square brackets
    check spacing on parentheses
    ensure we apply checks to the part before start comment
    check #ifdef conditional spacing
    handle __init_refok and __must_check
    add noinline to inline checks
    prevent email addresses from tripping spacing checks
    handle typed initialiser spacing
    handle line contination as end of line
    add bool to the type matcher
    refine EXPORT_SYMBOL checks to handle pointers

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

20 Jul, 2007

1 commit

  • This version brings a number of new checks, and a number of bug
    fixes. Of note:

    - warnings for multiple assignments per line
    - warnings for multiple declarations per line
    - checks for single statement blocks with braces

    This patch includes an update for feature-removal-schedule.txt to
    better target checks.

    Andy Whitcroft (12):
    Version: 0.08
    only apply printk checks where there is a string literal
    allow suppression of errors for when no patch is found
    warn about multiple assignments
    warn on declaration of multiple variables
    check for kfree() with needless null check
    check for single statement braced blocks
    check for aggregate initialisation on the next line
    handle the => operator
    check for spaces between function name and open parenthesis
    move to explicit Check: entries in feature-removal-schedule.txt
    handle pointer attributes

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

17 Jul, 2007

1 commit

  • This version brings a number of new checks, fixes for flase
    positives, plus a clarification of the output to better guide use. Of
    note:

    - checks for documentation for new __setup calls
    - clearer reporting where braces and parenthesis are involved
    - reports for closing brace and semi-colon spacing
    - reports on unwanted externs

    This patch includes an update to the documentation on checkpatch.pl
    itself to clarify when it should be used and to indicate that it
    is not intended as the final arbitor of style.

    Full changelog:

    Andy Whitcroft (19):
    Version: 0.07
    ensure we do not apply control brace checks to preprocesor directives
    add {u,s}{8,16,32,64} to the type matcher
    accept lack of spacing after the semicolons in for (;;)
    report new externs in .c files
    fix up typedef exclusion for function prototypes
    else trailing statements check need to account for \ at end of line
    add enums to the type matcher
    add missing check descriptions
    suppress double reporting of ** spacing
    report on do{ spacing issues
    include an example of the brace/parenthesis in output
    check for spacing after closing braces
    prevent double reports on pointer spacing issues
    handle blank continuation lines on macros
    classify all reports error, warning, or check
    revamp hanging { checks and apply in context
    no spaces after the last ; in a for is ok
    check __setup has a corresponding addition to documentation

    David Woodhouse (1):
    limit character set used in patches and descriptions to UTF-8

    Signed-off-by: Andy Whitcroft
    Cc: David Woodhouse
    Cc: "Randy.Dunlap"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

24 Jun, 2007

2 commits

  • Update to checkpatch.pl v0.06. Of note:

    - do { and else handled correctly as control structures for { matching
    - trailing whitespace correctly tripped when line otherwise empty
    - support for const, including const foo * const bar
    - multiline macros defining values correctly reported

    This version of checkpatch.pl can be found at the following URL:

    http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-0.06

    Full Changelog:

    Andy Whitcroft (14):
    Version: 0.06
    cleanup the Type regular expression declarations
    fix up block counting
    end of line counts as a space for ++ and --
    do { needs the same checks as if, for et al
    handle "const foo * const a" as a valid type
    add spacing checks following ;
    complete whitespace lines should trip trailing whitespace check
    else is also a block control structure
    badly formatted else can trip function declaration
    detect and report trailing statements after else
    types need to be terminated by a boundary
    multiline macros defining values should be surrounded by parentheses
    soften the wording of the Signed-off-by: warnings

    Signed-off-by: Andy Whitcroft
    Cc: "Randy.Dunlap"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • This version brings a some new tests, and a host of changes to fix
    false positives, of particular note:

    - detect 'var ++;' and 'var --;' as a bad combination
    - multistatement #defines are now checked based on statement count
    - multistatement #defines with initialisation correctly reported
    - checks the location of the inline keywords
    - EXPORT_SYMBOL for variables are now understood
    - typedefs are loosened to handle sparse etc

    This version of checkpatch.pl can be found at the following URL:

    http://www.shadowen.org/~apw/public/checkpatch/checkpatch.pl-0.05

    Full Changelog:

    Andy Whitcroft (18):
    Version: 0.05
    macro definition checks should be for a single statement
    avoid assignements only in if conditionals
    declarations of function pointers need no space
    multiline macros which are purely initialisation cannot be wrapped
    EXPORT_SYMBOL can also directly follow a variable definition
    check on the location of the inline keyword
    EXPORT_SYMBOL needs to allow for attributes
    ensure we do not find C99 // in strings
    handle malformed #include lines
    accept the {0,} form
    typedefs are sensible for defining function pointer parameters
    ensure { handling correctly handles nested switch() statements
    trailing whitespace checks are not anchored
    typedefs for sparse bitwise annotations make sense
    update the type matcher to include sparse annotations
    clean up indent and spacing

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

09 Jun, 2007

3 commits

  • This version brings a some new tests, and a host of changes to fix
    false positives, of particular note:

    - check for and report #if 0
    - extend checking of line lengths and spacing for .pl, .sh etc
    - extends the pointer type checks to multiple levels
    - updates printk handling to track newlines
    - adds a wrapped patch detector
    - drops the leading component of the filenames
    - extends switch indent handling to switch statmentes rooted in
    the context
    - adds foo * bar single pointer checks

    This version of checkpatch.pl can be found at the following URL:

    http://www.shadowen.org/~apw/public/checkpatch/checkpatch.pl-0.04

    Full Changelog:

    Andy Whitcroft (16):
    allow checking line lengths and spacing on other source files
    clean up that whitespace
    sanitise the input line standardising the content of quotes
    clean up pointer type * and space checks
    fix up the sanitiser so it maintains the line length
    apply the printk facility checks only to the first printk in a set
    switch/case indent checks may anchor in the context
    add a wrapped patch detector
    put the #ifdef in C file checks on ice
    asm volatile is acceptable
    check for and report #if 0
    drop the leading component of the filename as patches are -p1
    use the original line when reporting operator errors
    correct spelling of Joel's name
    Version: 0.04
    add support for struct foo * bar checks

    Geert Uytterhoeven (1):
    Fix checkpatch.pl name in usage template

    Randy Dunlap (1):
    checkpatch: produce fewer lines of output

    Signed-off-by: Andy Whitcroft
    Cc: Randy Dunlap
    Cc: Joel Schopp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • Produce one less line of output per flagged incident.

    Change this:

    use tabs not spaces
    PATCH: /home/rddunlap/arcmsr1200014.patch4:756:
    FILE: b/drivers/scsi/arcmsr/arcmsr_hba.c:1843:
    + return PCI_ERS_RESULT_NEED_RESET;$

    to this:

    use tabs not spaces
    #756: FILE: b/drivers/scsi/arcmsr/arcmsr_hba.c:1843:
    + return PCI_ERS_RESULT_NEED_RESET;$

    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • This version brings a host of changes to cure false positives and
    bugs detected on patches submitted to lkml and -mm. It also brings
    a number of new tests in response to reviews, of particular note:

    - catch use of volatile
    - allow deprecated functions to be listed in feature-removal-schedule.txt
    - warn about #ifdef's in c files
    - check that spinlock_t and struct mutex use is commented
    - report on architecture specific defines being used
    - report memory barriers without an associated comment

    Full changelog:

    catch use of volatile
    convert other quoted string checks to common routine
    alloc deprecated functions to be listed in feature-removal-schedule.txt
    split out the line length and indent for each line
    improve switch block handling
    handle GNU diff context lines with no leading space
    warn about #ifdef's in c files
    tidy up tests for signed-off-by using raw mode
    check that spinlock_t and struct mutex use is commented
    syntax checks for open brace placement may drop off the bottom of hunk
    report memory barriers without an associated comment
    when a sign off is present but ugly do not report it missing
    do not mistake bitfield definitions for indented labels
    report on architecture specific defines being used
    major update to the operator checks
    prevent switch/if/while etc matching foo_switch
    generify assignement in condition error message
    introduce an operator context marker
    Version: 0.03

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

07 Jun, 2007

1 commit


01 Jun, 2007

1 commit

  • We are seeing increasing levels of minor patch style violations in submissions
    to the mailing lists as well as making it into the tree. These detract from
    the quality of the submission and cause unnessary work for reviewers.

    As a first step package up the current state of the patch style checker and
    include it in the kernel tree. Add instructions suggesting running it on
    submissions. This adds version v0.01 of the checkpatch.pl script.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Joel Schopp
    Cc: Randy Dunlap
    Cc: Dave Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft