05 Sep, 2018

2 commits

  • __ro_after_init is a specific __attribute__ that checkpatch does currently
    not understand.

    Add it to the known $Attribute types so that code that uses variables
    declared with __ro_after_init are not thought to be a modifier type.

    This appears as a defect in checkpatch output of code like:

    static bool trust_cpu __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
    [...]
    if (trust_cpu && arch_init) {

    where checkpatch reports:

    ERROR: space prohibited after that '&&' (ctx:WxW)
    if (trust_cpu && arch_init) {

    Link: http://lkml.kernel.org/r/0fa8a2cb83ade4c525e18261ecf6cfede3015983.camel@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Kees Cook
    Tested-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Using a static const struct definition as part of a series of
    declarations produces a false positive "Missing a blank line after
    declarations" for code like:

    WARNING: Missing a blank line after declarations
    #710: FILE: drivers/gpu/drm/tidss/tidss_scale_coefs.c:137:
    + int inc;
    + static const struct {

    So fix it.

    Link: http://lkml.kernel.org/r/5905126e70b0ed1781e49265fd5c49c5090d0223.camel@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Jyri Sarha
    Cc: "Valkeinen, Tomi"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

23 Aug, 2018

14 commits

  • Devicetree bindings should be their own patch as documented in
    Documentation/devicetree/bindings/submitting-patches.txt section I.1.
    This is because bindings are logically independent from a driver
    implementation, they have a different maintainer (even though they often
    are applied via the same tree), and it makes for a cleaner history in the
    DT only tree created with git-filter-branch.

    [robh@kernel.org: add doc pointer to warning, simplify logic]
    Link: http://lkml.kernel.org/r/20180810170513.26284-1-robh@kernel.org
    [robh@kernel.org: v3]
    Link: http://lkml.kernel.org/r/20180810225049.20452-1-robh@kernel.org
    Link: http://lkml.kernel.org/r/20180809205032.22205-1-robh@kernel.org
    Signed-off-by: Rob Herring
    Acked-by: Joe Perches
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rob Herring
     
  • On Sun, 2018-08-05 at 08:52 -0700, Linus Torvalds wrote:
    > "long unsigned int" isn't _technically_ wrong. But we normally
    > call that type "unsigned long".

    So add a checkpatch test for it.

    Link: http://lkml.kernel.org/r/7bbd97dc0a1e5896a0251fada7bb68bb33643f77.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Current checkpatch implementation permits notation like

    } else{

    in kernel code. It looks like oversight and inconsistency in checkpatch
    rules (e.g. instruction like 'do' is tested).

    Add regex for checking space after 'else' keyword and trigger error if
    space is not present.

    Link: http://lkml.kernel.org/r/1533545753-8870-1-git-send-email-michal.zylowski@intel.com
    Signed-off-by: Michal Zylowski
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Zylowski
     
  • checkpatch uses the in-kernel script spdxcheck.py to validate the specific
    license in a file or script.

    This check can currently fail for a couple reasons:

    o spdxcheck.py assumes the existence of git tree that may not
    exist for a bare source tree from something like a tarball
    o the spdxcheck.py must be run from the top level root directory

    So add a git existence test and set the subprocess subdirectory.

    Link: http://lkml.kernel.org/r/2b32864324ae9c92948b002ec4c0c22409ed98f1.camel@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Charlemagne Lasse
    Tested-by: Charlemagne Lasse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Potential patches should have a commit description. Emit a warning when
    there isn't one.

    [akpm@linux-foundation.org: s/else if/elsif/]
    Link: http://lkml.kernel.org/r/1b099f4d8373aa583a17011992676bf0f3f09eee.camel@perches.com
    Signed-off-by: Joe Perches
    Suggested-by: Prakruthi Deepak Heragu
    Reviewed-by: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The #if 0 or #if 1 is used to toggle features. Warn if #if 0 or #if 1
    is present and suggest that they can be removed.

    [akpm@linux-foundation.org: fix spacing around periods, per Joe\
    Link: http://lkml.kernel.org/r/1532625218-24321-1-git-send-email-pheragu@codeaurora.org
    Signed-off-by: Abhijeet Dharmapurikar
    Signed-off-by: Prakruthi Deepak Heragu
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Prakruthi Deepak Heragu
     
  • The current krealloc test does not function correctly when the temporary
    pointer return name contains the original pointer name.

    Fix that by maximally matching the return pointer name and the original
    pointer name and doing a separate comparison of the both names.

    Link: http://lkml.kernel.org/r/e617ecb8c019a9c4c56540a1bec16c8aed43a4e4.camel@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Lars-Peter Clausen
    Cc: Manish Narani
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Use the existing scripts/spdxcheck.py to validate any
    SPDX-License-Identifier found in line 1 or 2 of patches or files.

    Miscellanea:

    o Properly indent the existing SPDX-License-Identifier block.

    Link: http://lkml.kernel.org/r/05b832407b24e0a27e419906187cd863bc1617c7.camel@perches.com
    Signed-off-by: Joe Perches
    Acked-by: Rob Herring
    Cc: Thomas Gleixner
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Multiple line macro definitions where the arguments are separated by line
    continuations can cause checkpatch to emit invalid syntax regex tests.

    This can occur when a single argument is modified in a part of a patch.

    For example: (to not add a diff in the commit message)

    $ ./scripts/checkpatch.pl --git db023296f0115d2fe01fdabad54678f2b806da23
    Unterminated \g... pattern in regex;

    And, the test does not work correctly when these arguments are all new as
    the initial patch line addition "+" is used in the argument name.

    Fix this by stripping the line continuations and any "+" from the list of
    arguments.

    Link: http://lkml.kernel.org/r/86cdb43a4db70670c102020093f7fb4eb3003e01.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Print a warning if none of the Signed-off-by lines cover the patch author.

    Non-ASCII quoted printable encoding in From: headers and (lack of) double
    quotes are handled. Split From: headers are not fully handled: only the
    first part is compared.

    [geert+renesas@glider.be: only encode UTF-8 quoted printable mail headers]
    Link: http://lkml.kernel.org/r/20180718145254.4770-1-geert+renesas@glider.be
    Link: http://lkml.kernel.org/r/20180712100323.26684-1-geert+renesas@glider.be
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Joe Perches
    Acked-by: Linus Walleij
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • As of commit bd721ea73e1f ("treewide: replace obsolete _refok by
    __ref"), __init_refok no longer exists, so it can be removed. While at
    it, add the modern variants that were still missing.

    Link: http://lkml.kernel.org/r/20180706084205.26367-1-geert+renesas@glider.be
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • checkpatch repeatedly uses a runtime minimum version check that validates
    the minimum perl version required for a regex match by using a "$^V ge
    5.10.0" runtime string match.

    Only perform that minimum version test once and store the result to reduce
    string matching time.

    This reduces runtime execution time for patches or files with high line
    counts.

    An example runtime improvement:

    new: $ time ./scripts/checkpatch.pl -f drivers/net/ethernet/intel/i40e/i40e_main.c > /dev/null

    real 0m11.856s
    user 0m11.831s
    sys 0m0.025s

    old: $ time ./scripts/checkpatch.pl -f drivers/net/ethernet/intel/i40e/i40e_main.c > /dev/null

    real 0m13.330s
    user 0m13.282s
    sys 0m0.049s

    Link: http://lkml.kernel.org/r/db21aa9703833bad65ab70cc4e8a78da5b399138.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add the ability to --fix these string issues.

    e.g.:
    printk(KERN_INFO"bar" "baz"QUX);
    converts to
    printk(KERN_INFO "barbaz" QUX);

    Link: http://lkml.kernel.org/r/a9fb505ccfedffc5869d08832a7ff05a21d85621.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • A struct with a bool member can have different sizes on various
    architectures because neither bool size nor alignment is standardized.

    So emit a message on the use of bool in structs only in .h files and not
    .c files.

    There is the real possibility that this test could have a false positive
    when a bool is declared as an automatic, so limit the test to .h files
    where the only false positive is for declarations in static inline
    functions.

    Link: http://lkml.kernel.org/r/95477c93db187bab6da8a8ba7c57836868446179.camel@perches.com
    Signed-off-by: Joe Perches
    Suggested-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

15 Jul, 2018

1 commit

  • Multiline statements with invalid %p uses produce multiple
    warnings. Fix that.

    e.g.:

    $ cat t_block.c
    void foo(void)
    {
    MY_DEBUG(drv->foo,
    "%pk",
    foo->boo);
    }

    $ ./scripts/checkpatch.pl -f t_block.c
    WARNING: Missing or malformed SPDX-License-Identifier tag in line 1
    #1: FILE: t_block.c:1:
    +void foo(void)

    WARNING: Invalid vsprintf pointer extension '%pk'
    #3: FILE: t_block.c:3:
    + MY_DEBUG(drv->foo,
    + "%pk",
    + foo->boo);

    WARNING: Invalid vsprintf pointer extension '%pk'
    #3: FILE: t_block.c:3:
    + MY_DEBUG(drv->foo,
    + "%pk",
    + foo->boo);

    total: 0 errors, 3 warnings, 6 lines checked

    NOTE: For some of the reported defects, checkpatch may be able to
    mechanically convert to the typical style using --fix or --fix-inplace.

    t_block.c has style problems, please review.

    NOTE: If any of the errors are false positives, please report
    them to the maintainer, see CHECKPATCH in MAINTAINERS.

    Link: http://lkml.kernel.org/r/9e8341bbe4c9877d159cb512bb701043cbfbb10b.camel@perches.com
    Signed-off-by: Joe Perches
    Cc: "Tobin C. Harding"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

27 Jun, 2018

1 commit

  • It may not be the actual real stable mailing list address, but the
    stable scripts to actually pick up on the traditional way to mark stable
    patches.

    There are also reasons to explicitly avoid using the actual mailing list
    address, since security patches with embargo dates generally do want the
    stable marking, but don't want tools etc to mistakenly send the patch
    out to the mailing list early.

    So don't warn for things that are still actively used and explicitly
    supported.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

08 Jun, 2018

2 commits

  • There are mode change and rename only patches that are unrecognized by
    checkpatch.

    Recognize them.

    [joe@perches.com: fix missing close parenthesis]
    Link: http://lkml.kernel.org/r/af44c893f6973393f2a5b11f1a8e5cd4c8bbbba5.camel@perches.com
    Link: http://lkml.kernel.org/r/974a407e6fa18abd5a965da39cc68986a4c4f091.1526949367.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Heinrich Schuchardt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add the appropriate SPDX tag to these scripts.

    Miscellanea:

    o Add my copyright to checkpatch

    Link: http://lkml.kernel.org/r/d08e49e8f6562c58a63792aa64306d1851f81f4b.camel@perches.com
    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

07 Jun, 2018

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - improve fixdep to coalesce consecutive slashes in dep-files

    - fix some issues of the maintainer string generation in deb-pkg script

    - remove unused CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX and clean-up
    several tools and linker scripts

    - clean-up modpost

    - allow to enable the dead code/data elimination for PowerPC in EXPERT
    mode

    - improve two coccinelle scripts for better performance

    - pass endianness and machine size flags to sparse for all architecture

    - misc fixes

    * tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
    kbuild: add machine size to CHECKFLAGS
    kbuild: add endianness flag to CHEKCFLAGS
    kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice
    scripts: Fixed printf format mismatch
    scripts/tags.sh: use `find` for $ALLSOURCE_ARCHS generation
    coccinelle: deref_null: improve performance
    coccinelle: mini_lock: improve performance
    powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected
    kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled
    kbuild: LD_DEAD_CODE_DATA_ELIMINATION no -ffunction-sections/-fdata-sections for module build
    kbuild: Fix asm-generic/vmlinux.lds.h for LD_DEAD_CODE_DATA_ELIMINATION
    modpost: constify *modname function argument where possible
    modpost: remove redundant is_vmlinux() test
    modpost: use strstarts() helper more widely
    modpost: pass struct elf_info pointer to get_modinfo()
    checkpatch: remove VMLINUX_SYMBOL() check
    vmlinux.lds.h: remove no-op macro VMLINUX_SYMBOL()
    kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
    export.h: remove code for prefixing symbols with underscore
    depmod.sh: remove symbol prefix support
    ...

    Linus Torvalds
     

26 May, 2018

1 commit


17 May, 2018

1 commit


12 Apr, 2018

13 commits

  • Using bool in a bitfield isn't a good idea as the alignment behavior is
    arch implementation defined.

    Suggest using unsigned int or u instead.

    Link: http://lkml.kernel.org/r/e22fb871b1b7f2fda4b22f3a24e0d7f092eb612c.camel@perches.com
    Signed-off-by: Joe Perches
    Suggested-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Allow a space between a colon and subsequent opening bracket. This
    sequence may occur in inline assembler statements like

    asm(
    "ldr %[out], [%[in]]\n\t"
    : [out] "=r" (ret)
    : [in] "r" (addr)
    );

    Link: http://lkml.kernel.org/r/20180403191655.23700-1-xypron.glpk@gmx.de
    Signed-off-by: Heinrich Schuchardt
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heinrich Schuchardt
     
  • Kernel style seems to prefer line wrapping an assignment with the
    assignment operator on the previous line like:

    identifier =
    expression;
    over
    identifier
    = expression;

    somewhere around a 50:1 ratio

    $ git grep -P "[^=]=\s*$" -- "*.[ch]" | wc -l
    52008
    $ git grep -P "^\s+[\*\/\+\|\%\-]?=[^=>]" | wc -l
    1161

    So add a --strict test for that condition.

    Link: http://lkml.kernel.org/r/1522275726.2210.12.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • There are occasions where symbolic perms are used in a ternary like

    return (channel == 0) ? S_IRUGO | S_IWUSR : S_IRUGO;

    The current test will find the first use "S_IRUGO | S_IWUSR" but not the
    second use "S_IRUGO" on the same line.

    Improve the test to look for all instances on a line.

    Link: http://lkml.kernel.org/r/1522127944.12357.49.camel@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • completly -> completely
    wacking -> whacking

    Link: http://lkml.kernel.org/r/1520405394-5586-1-git-send-email-claudio.fontana@gliwa.com
    Signed-off-by: Claudio Fontana
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Claudio Fontana
     
  • The get_quoted_string function does not expect invalid arguments.

    The $stat test can return non-statements for complicated macros like
    TRACE_EVENT.

    Allow the $stat block and test for vsprintf misuses to exceed the actual
    block length and possibly test invalid lines by validating the arguments
    of get_quoted_string.

    Return "" if either get_quoted_string argument is undefined.

    Miscellanea:

    o Properly align the comment for the vsprintf extension test

    Link: http://lkml.kernel.org/r/9e9725342ca3dfc0f5e3e0b8ca3c482b0e5712cc.1520356392.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Chuck Lever
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Usage of the new %px specifier potentially leaks sensitive information.
    Printing kernel addresses exposes the kernel layout in memory, this is
    potentially exploitable. We have tools in the kernel to help us do the
    right thing. We can have checkpatch warn developers of potential
    dangers of using %px.

    Have checkpatch emit a warning for usage of specifier %px.

    Link: http://lkml.kernel.org/r/1519700648-23108-5-git-send-email-me@tobin.cc
    Signed-off-by: Tobin C. Harding
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobin C. Harding
     
  • checkpatch currently contains duplicate code. We can define a sub
    routine and call that instead. This reduces code duplication and line
    count.

    Add subroutine get_stat_here().

    Link: http://lkml.kernel.org/r/1519700648-23108-4-git-send-email-me@tobin.cc
    Signed-off-by: Tobin C. Harding
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobin C. Harding
     
  • Variables are declared and not used, we should remove them.

    Link: http://lkml.kernel.org/r/1519700648-23108-3-git-send-email-me@tobin.cc
    Signed-off-by: Tobin C. Harding
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobin C. Harding
     
  • checkpatch currently contains duplicate code. We can define a sub
    routine and call that instead. This reduces code duplication and line
    count.

    Add subroutine get_stat_real()

    Link: http://lkml.kernel.org/r/1519700648-23108-2-git-send-email-me@tobin.cc
    Signed-off-by: Tobin C. Harding
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tobin C. Harding
     
  • Add the crypto API *_ON_STACK to $declaration_macros.

    Resolves the following false warning:

    WARNING: Missing a blank line after declarations
    + int err;
    + SHASH_DESC_ON_STACK(desc, ctx_p->shash_tfm);

    Link: http://lkml.kernel.org/r/1518941636-4484-1-git-send-email-gilad@benyossef.com
    Signed-off-by: Gilad Ben-Yossef
    Signed-off-by: Joe Perches
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gilad Ben-Yossef
     
  • Add SPDX license tag check based on the rules defined in
    Documentation/process/license-rules.rst. To summarize, SPDX license
    tags should be on the 1st line (or 2nd line in scripts) using the
    appropriate comment style for the file type.

    Link: http://lkml.kernel.org/r/20180202154026.15298-1-robh@kernel.org
    Signed-off-by: Rob Herring
    Signed-off-by: Joe Perches
    Acked-by: Greg Kroah-Hartman
    Acked-by: Philippe Ombredanne
    Cc: Andy Whitcroft
    Cc: Joe Perches
    Cc: Thomas Gleixner
    Cc: Igor Stoppa
    Cc: Jonathan Corbet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rob Herring
     
  • Bare email addresses with non alphanumeric characters require escape
    quoting before being substituted in the parse_email routine.

    e.g. Reported-by: syzbot+bbd8e9a06452cc48059b@syzkaller.appspotmail.com

    Do so.

    Link: http://lkml.kernel.org/r/1518631805.3678.12.camel@perches.com
    Signed-off-by: Joe Perches
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

04 Apr, 2018

1 commit

  • Pull Kconfig updates from Masahiro Yamada:

    - improve checkpatch for more precise Kconfig code checking

    - clarify effective selects by grouping reverse dependencies in help

    - do not write out '# CONFIG_FOO is not set' from invisible symbols

    - make oldconfig as silent as it should be

    - rename 'silentoldconfig' to 'syncconfig'

    - add unit-test framework and several test cases

    - warn unmet dependency of tristate symbols

    - make unmet dependency warnings readable, removing false positives

    - improve recursive include detection

    - use yylineno to simplify the line number tracking

    - misc cleanups

    * tag 'kconfig-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
    kconfig: use yylineno option instead of manual lineno increments
    kconfig: detect recursive inclusion earlier
    kconfig: remove duplicated file name and lineno of recursive inclusion
    kconfig: do not include both curses.h and ncurses.h for nconfig
    kconfig: make unmet dependency warnings readable
    kconfig: warn unmet direct dependency of tristate symbols selected by y
    kconfig: tests: test if recursive inclusion is detected
    kconfig: tests: test if recursive dependencies are detected
    kconfig: tests: test randconfig for choice in choice
    kconfig: tests: test defconfig when two choices interact
    kconfig: tests: check visibility of tristate choice values in y choice
    kconfig: tests: check unneeded "is not set" with unmet dependency
    kconfig: tests: test if new symbols in choice are asked
    kconfig: tests: test automatic submenu creation
    kconfig: tests: add basic choice tests
    kconfig: tests: add framework for Kconfig unit testing
    kbuild: add PYTHON2 and PYTHON3 variables
    kconfig: remove redundant streamline_config.pl prerequisite
    kconfig: rename silentoldconfig to syncconfig
    kconfig: invoke oldconfig instead of silentoldconfig from local*config
    ...

    Linus Torvalds
     

26 Mar, 2018

3 commits

  • IMO, we should discourage '---help---' for new help texts, even in cases
    where it would be consistent with other help texts in the file. This
    will help if we ever want to get rid of '---help---' in the future.

    Also simplify the code to only check for exactly '---help---'. Since
    commit c2264564df3d ("kconfig: warn of unhandled characters in Kconfig
    commands"), '---help---' is a proper keyword and can only appear in that
    form. Prior to that commit, '---help---' working was more of a syntactic
    quirk.

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada

    Ulf Magnusson
     
  • Currently, only Kconfig symbols are checked for a missing or short help
    text, and are only checked if they are defined with the 'config'
    keyword.

    To make the check more general, extend it to also check help texts for
    choices and for symbols defined with the 'menuconfig' keyword.

    This increases the accuracy of the check for symbols that would already
    have been checked as well, since e.g. a 'menuconfig' symbol after a help
    text will be recognized as ending the preceding symbol/choice
    definition.

    To increase the accuracy of the check further, also recognize 'if',
    'endif', 'menu', 'endmenu', 'endchoice', and 'source' as ending a
    symbol/choice definition.

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada

    Ulf Magnusson
     
  • The check for a missing or short help text only considers symbols with a
    prompt, but doesn't recognize any of the following as a prompt:

    bool 'foo'
    tristate 'foo'
    prompt "foo"
    prompt 'foo'

    Make the check recognize those too.

    Signed-off-by: Ulf Magnusson
    Signed-off-by: Masahiro Yamada

    Ulf Magnusson