• Quentin Monnet's avatar
    checkpatch: fix CONST_STRUCT when const_structs.checkpatch is missing · ced69da1
    Quentin Monnet authored
    Checkpatch reports warnings when some specific structs are not declared as
    const in the code.  The list of structs to consider was initially defined
    in the checkpatch.pl script itself, but it was later moved to an external
    file (scripts/const_structs.checkpatch), in commit bf1fa1da
    ("checkpatch: externalize the structs that should be const").  This
    introduced two minor issues:
    
    - When file scripts/const_structs.checkpatch is not present (for
      example, if checkpatch is run outside of the kernel directory with the
      "--no-tree" option), a warning is printed to stderr to tell the user
      that "No structs that should be const will be found". This is fair,
      but the warning is printed unconditionally, even if the option
      "--ignore CONST_STRUCT" is passed. In the latter case, we explicitly
      ask checkpatch to skip this check, so no warning should be printed.
    
    - When scripts/const_structs.checkpatch is missing, or even when trying
      to silence the warning by adding an empty file, $const_structs is set
      to "", and the regex used for finding structs that should be const,
      "$line =~ /struct\s+($const_structs)(?!\s*\{)/)", matches all
      structs found in the code, thus reporting a number of false positives.
    
    Let's fix the first item by skipping scripts/const_structs.checkpatch
    processing if "CONST_STRUCT" checks are ignored, and the second one by
    skipping the test if $const_structs is not defined. Since we modify the
    read_words() function a little bit, update the checks for
    $typedefsfile/$typeOtherTypedefs as well.
    Signed-off-by: default avatarQuentin Monnet <quentin@isovalent.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarJoe Perches <joe@perches.com>
    Link: http://lkml.kernel.org/r/20200623221822.3727-1-quentin@isovalent.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ced69da1
checkpatch.pl 206 KB