04 Oct, 2017

1 commit

  • Currently running checkpatch on a directory with a cover-letter.patch
    file reports the following error:

    -----------------------------------------
    patches/smp-v2/v2-0000-cover-letter.patch
    -----------------------------------------

    ERROR: Does not appear to be a unified-diff format patch

    The logic to suppress the unified-diff check for cover letters is there
    but is checking $file instead of $filename. Fix the variable to use the
    correct one.

    Link: http://lkml.kernel.org/r/20170909090406.31523-1-shorne@gmail.com
    Signed-off-by: Stafford Horne
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stafford Horne
     

09 Sep, 2017

4 commits

  • Unlike all other types, LONG_LINE, LONG_LINE_COMMENT and LONG_LINE_STRING
    are passed to WARN() through a variable. This causes the parser in
    list_types() to miss them and consequently they are not present in the
    output of --list-types.

    Additionally, types TYPO_SPELLING, FSF_MAILING_ADDRESS and AVOID_BUG are
    passed with a variable level, causing the parser to miss them too.

    So modify the regex to also catch these special cases.

    Link: http://lkml.kernel.org/r/20170902175610.7e4a7c9d@endymion
    Fixes: 3beb42eced39 ("checkpatch: add --list-types to show message types to show or ignore")
    Signed-off-by: Jean Delvare
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • The variable name "$msg_type" is sometimes used to set the message type,
    and sometimes used to set the message level. This works but is kind of
    confusing. Use "$msg_level" in the latter case instead, to make the code
    clearer.

    Link: http://lkml.kernel.org/r/20170902175345.175db33a@endymion
    Signed-off-by: Jean Delvare
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • Link: http://lkml.kernel.org/r/20170902175249.15bb77f2@endymion
    Signed-off-by: Jean Delvare
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • An if statement test like
    if ((foo == bar) && (baz != qux))
    can arguably be better written without the parentheses as
    if (foo == bar && baz != qux)

    Add a test to find these cases.

    Link: http://lkml.kernel.org/r/dcd0561ddd0fa43c51a420d53b550d738bf42001.1502734458.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

13 Jul, 2017

1 commit

  • Make sure static, extern, and asmlinkage appear before a specific type.

    e.g.:
    int asmlinkage foo(void)
    is better written
    asmlinkage int foo(void)

    Link: http://lkml.kernel.org/r/31704c96df2d5fd9df0b41165940a7a4feb16a63.1499284835.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

11 Jul, 2017

10 commits

  • The current test fails to warn about improper alignment with code like

    foo->bar = func(arg1,
    arg2);

    because foo->bar is not a single identifier.

    Convert the $Ident to $Lval which allows for multiple dereferences.

    Link: http://lkml.kernel.org/r/01c35b9b6a12a415e57746d45d589bfaad39952a.1498841563.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • checkpatch reports a false positive when using token pasting argument
    multiple times in a macro.

    Fix it.

    Miscellanea:

    o Make the $tmp variable name used in the macro argument tests
    a bit more descriptive

    Link: http://lkml.kernel.org/r/cf434ae7602838388c7cb49d42bca93ab88527e7.1498483044.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Johannes Berg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The boolean --color argument did not offer the ability to force
    colourized output even if stdout is not a terminal. Change the format
    of the argument to the familiar --color[=WHEN] construct as seen in
    common Linux utilities such as git, ls and dmesg, which allows the user
    to specify whether to colourize output "always", "never", or "auto" when
    the output is a terminal. The default is "auto".

    The old command-line uses of --color and --no-color are unchanged.

    Link: http://lkml.kernel.org/r/efe43bdbad400f39ba691ae663044462493b0773.1496799721.git.joe@perches.com
    Signed-off-by: John Brooks
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    John Brooks
     
  • As of perl 5, version 26, subversion 0 (v5.26.0) some new warnings have
    occurred when running checkpatch.

    Unescaped left brace in regex is deprecated here (and will be fatal in
    Perl 5.30), passed through in regex; marked by
    Acked-by: Joe Perches
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyril Bur
     
  • Add a block that identifies multiple line function definitions.

    Save the function name into $context_function to improve the embedded
    function name test.

    Look for misplaced open brace on the function definition.
    Emit an OPEN_BRACE error when the function definition is similar to

    void foo(int arg1,
    int arg2) {

    Miscellanea:

    o Remove the $realfile test in function declaration w/o named arguments test
    o Comment the function declaration w/o named arguments test

    Link: http://lkml.kernel.org/r/de620ed6ebab75fdfa323741ada2134a0f545892.1496835238.git.joe@perches.com
    Signed-off-by: Joe Perches
    Tested-by: David Kershner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Checkpatch warns of an incorrect commit reference style for any
    hexadecimal number of 12 digits and more.

    Numbers of 12 digits are not necessarily commit ids.

    For an example provoking the problem see
    https://patchwork.kernel.org/patch/9170897/

    Checkpatch should only warn if the number refers to an existing commit.

    Link: http://lkml.kernel.org/r/20170607184008.5869-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
     
  • Fix the off-by-one in the suppression of lines in a statement block.

    This means that for multiple line statements like

    foo(bar,
    baz,
    qux);

    $stat has been inspected first correctly for the entire statement,
    and subsequently incorrectly just for

    qux);

    This fix will help make tracking appropriate indentation a little easier.

    Link: http://lkml.kernel.org/r/71b25979c90412133c717084036c9851cd2b7bcb.1496862585.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Fixes the following false warning among others for LLIST_HEAD and
    PLIST_HEAD:

    WARNING: Missing a blank line after declarations
    #71: FILE: drivers/s390/scsi/zfcp_fsf.c:422:
    + struct hlist_node *tmp;
    + HLIST_HEAD(remove_queue);

    Link: http://lkml.kernel.org/r/20170614133512.89425-1-maier@linux.vnet.ibm.com
    Signed-off-by: Steffen Maier
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steffen Maier
     
  • For consistency, MAINTAINERS entries should be an upper case letter,
    then a colon, then a tab, then the value.

    Warn when an entry doesn't have this form. --fix it too.

    Link: http://lkml.kernel.org/r/9aaaf03ec10adf3888b5e98dd2176b7fe9b5fad8.1496343345.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Use the context around a patch to avoid missing some candidates.

    Link: http://lkml.kernel.org/r/865e874fbae5decc331a849bd8d71c325db6bc80.1496343345.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

08 Jul, 2017

2 commits

  • …asahiroy/linux-kbuild

    Pull misc Kbuild updates from Masahiro Yamada:

    - Use more portable shebang for Perl scripts

    - Remove trailing spaces from GCC version in kernel log

    - Make initramfs generation deterministic

    * tag 'kbuild-misc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: create deterministic initramfs directory listings
    scripts/mkcompile_h: Remove trailing spaces from compiler version
    scripts: Switch to more portable Perl shebang

    Linus Torvalds
     
  • Pull DeviceTree updates from Rob Herring:

    - vsprintf format specifier %pOF for device_node's. This will enable us
    to stop storing the full node names. Conversion of users will happen
    next cycle.

    - Update documentation to point to DT specification instead of ePAPR.

    - Split out graph and property functions to a separate file.

    - New of-graph functions for ALSA

    - Add vendor prefixes for RISC-V, Linksys, iWave Systems, Roofull,
    Itead, and BananaPi.

    - Improve dtx_diff utility filename printing.

    * tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (32 commits)
    of: document /sys/firmware/fdt
    dt-bindings: Add RISC-V vendor prefix
    vsprintf: Add %p extension "%pOF" for device tree
    of: find_node_by_full_name rewrite to compare each level
    of: use kbasename instead of open coding
    dt-bindings: thermal: add file extension to brcm,ns-thermal
    of: update ePAPR references to point to Devicetree Specification
    scripts/dtc: dtx_diff - Show real file names in diff header
    of: detect invalid phandle in overlay
    of: be consistent in form of file mode
    of: make __of_attach_node() static
    of: address.c header comment typo
    of: fdt.c header comment typo
    of: make of_fdt_is_compatible() static
    dt-bindings: display-timing.txt convert non-ascii characters to ascii
    Documentation: remove overlay-notes reference to non-existent file
    dt-bindings: usb: exynos-usb: Add missing required VDD properties
    dt-bindings: Add vendor prefix for Linksys
    MAINTAINERS: add device tree ABI documentation file
    of: Add vendor prefix for iWave Systems Technologies Pvt. Ltd
    ...

    Linus Torvalds
     

28 Jun, 2017

1 commit

  • 90% of the usage of device node's full_name is printing it out in a
    kernel message. However, storing the full path for every node is
    wasteful and redundant. With a custom format specifier, we can generate
    the full path at run-time and eventually remove the full path from every
    node.

    For instance typical use is:
    pr_info("Frobbing node %s\n", node->full_name);

    Which can be written now as:
    pr_info("Frobbing node %pOF\n", node);

    '%pO' is the base specifier to represent kobjects with '%pOF'
    representing struct device_node. Currently, struct device_node is the
    only supported type of kobject.

    More fine-grained control of formatting includes printing the name,
    flags, path-spec name and others, explained in the documentation entry.

    Originally written by Pantelis, but pretty much rewrote the core
    function using existing string/number functions. The 2 passes were
    unnecessary and have been removed. Also, updated the checkpatch.pl
    check. The unittest code was written by Grant Likely.

    Signed-off-by: Pantelis Antoniou
    Acked-by: Joe Perches
    Signed-off-by: Rob Herring

    Pantelis Antoniou
     

08 Jun, 2017

1 commit

  • There was a time when the expedited grace-period primitives
    (synchronize_rcu_expedited(), synchronize_rcu_bh_expedited(), and
    synchronize_sched_expedited()) used rather antisocial kernel
    facilities like try_stop_cpus(). However, they have since been
    housebroken to use only single-CPU IPIs, and typically cause less
    disturbance than a scheduling-clock interrupt. Furthermore, this
    disturbance can be eliminated entirely using NO_HZ_FULL on the
    one hand or the rcupdate.rcu_normal boot parameter on the other.

    This commit therefore removes checkpatch's complaints about use
    of the expedited RCU primitives.

    Signed-off-by: Paul E. McKenney

    Paul E. McKenney
     

14 May, 2017

1 commit

  • The default NetBSD package manager is pkgsrc and it installs Perl
    along other third party programs under custom and configurable prefix.
    The default prefix for binary prebuilt packages is /usr/pkg, and the
    Perl executable lands in /usr/pkg/bin/perl.

    This change switches "/usr/bin/perl" to "/usr/bin/env perl" as it's
    the most portable solution that should work for almost everybody.
    Perl's executable is detected automatically.

    This change switches -w option passed to the executable with more
    modern "use warnings;" approach. There is no functional change to the
    default behavior.

    While there, drop "require 5" from scripts/namespace.pl (Perl from 1994?).

    Signed-off-by: Kamil Rytarowski
    Signed-off-by: Masahiro Yamada

    Kamil Rytarowski
     

09 May, 2017

12 commits

  • The current SUSPECT_CODE_INDENT test does not recognize several
    defective code style defects where code following a logical test is
    inappropriately indented.

    Before this patch, for code like:

    if (foo)
    bar();

    checkpatch would not emit a warning.

    Improve the test to warn when code after a logical test has the same
    indentation as the logical test.

    Perform the same indentation test for "else" blocks too.

    Link: http://lkml.kernel.org/r/df2374b68c4a68af2b7ef08afe486584811f610a.1493683942.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The current test works only for a single patch context as it is done in
    the foreach ($rawlines) loop that precedes the loop where the actual
    $context_function variable is used.

    Move the set of $context_function into the foreach (@lines) loop where
    it is useful for each patch context.

    Link: http://lkml.kernel.org/r/6c675a31c74fbfad4fc45b9f462303d60ca2a283.1493486091.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • When using checkpatch on out-of-tree code, it may occur that some
    project-specific types are used, which will cause spurious warnings.
    Add the --typedefsfile option as a way to extend the known types and
    deal with this issue.

    This was developed for OP-TEE [1]. We run a Travis job on all pull
    requests [2], and checkpatch is part of that. The typical false warning
    we get on a regular basis is with some pointers to functions returning
    TEE_Result [3], which is a typedef from the GlobalPlatform APIs. We
    consider it is acceptable to use GP types in the OP-TEE core
    implementation, that's why this patch would be helpful for us.

    [1] https://github.com/OP-TEE/optee_os
    [2] https://travis-ci.org/OP-TEE/optee_os/builds
    [3] https://travis-ci.org/OP-TEE/optee_os/builds/193355335#L1733

    Link: http://lkml.kernel.org/r/ba1124d6dfa599bb0dd1d8919dd45dd09ce541a4.1492702192.git.jerome.forissier@linaro.org
    Signed-off-by: Jerome Forissier
    Cc: Joe Perches
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jerome Forissier
     
  • Find multi-line uses of k.alloc by using the $stat variable and not the
    $line variable. This can still --fix only the single line variant
    though.

    Link: http://lkml.kernel.org/r/3f4b23d37cd4c7d8628eefc25afe83ba8fb3ab55.1493167076.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Currently checkpatch.pl does not recognize git's default commit revert
    message and will complain about the hash format. Add special audit for
    revert commit message line to fix it.

    Link: http://lkml.kernel.org/r/20170411191532.74381-1-wvw@google.com
    Signed-off-by: Wei Wang
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wei Wang
     
  • Try to make the conversion of embedded function names to "%s: ", __func__
    a bit clearer.

    Add a bit more information to the comment describing the test too.

    Link: http://lkml.kernel.org/r/38f5d32f0aec1cd98cb9ceeedd6a736cc9a802db.1491759835.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The logic currrently misses macros that start with an if statement.

    e.g.: #define foo(bar) if (bar) baz;

    Add a test for macro content that starts with if

    Link: http://lkml.kernel.org/r/a9d41aafe1673889caf1a9850208fb7fd74107a0.1491783914.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Andreas Mohr
    Original-patch-by: Alfonso Lima
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Many structs are generally used const and there is a known list of these
    structs.

    struct definitions should not be generally be declared const.

    Add a test for the lack of an open brace immediately after the struct to
    avoid definitions.

    This avoids the false positive "struct foo should normally be const"
    message only when the open brace is on the same line as the definition.

    Link: http://lkml.kernel.org/r/0dce709150d712e66f1b90b03827634b53b28085.1491845946.git.joe@perches.com
    Signed-off-by: Joe Perches
    Cc: Arthur Brainville
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Allow a leading space and otherwise blank link in the email headers as
    it can be a line wrapped Spamassassin multiple line string or any other
    valid rfc 2822/5322 email header.

    The line with space causes checkpatch to erroneously think that it's in
    the content body, as opposed to headers and thus flag a mail header as
    an unwrapped long comment line.

    Link: http://lkml.kernel.org/r/d75a9f0b78b3488078429f4037d9fff3bdfa3b78.1490247180.git.joe@perches.com
    Signed-off-by: Joe Perches Reported-by: Darren Hart (VMware)
    Tested-by: Darren Hart (VMware)
    Reviewed-by: Darren Hart (VMware)
    Original-patch-by: John 'Warthog9' Hawley (VMware)
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The existing behavior relies on patch context to identify function
    declarations. Add the ability to find function declarations when there
    is an open brace in column 1.

    This finds function declarations only in specific single line forms
    where the function name is on a single line like:

    int foo(args...)
    {

    and

    int
    foo(args...)
    {

    It does not recognize function declarations like:

    int foo(int bar,
    int baz)
    {

    Link: http://lkml.kernel.org/r/738d74bbbe1a06b80f11ed504818107c68903095.1488155636.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • %pK was at least once misused at %pk in an out-of-tree module. This
    lead to some security concerns. Add the ability to track single and
    multiple line statements for misuses of %p.

    [akpm@linux-foundation.org: add helpful comment into lib/vsprintf.c]
    [akpm@linux-foundation.org: text tweak]
    Link: http://lkml.kernel.org/r/163a690510e636a23187c0dc9caa09ddac6d4cde.1488228427.git.joe@perches.com
    Signed-off-by: Joe Perches
    Acked-by: Kees Cook
    Acked-by: William Roberts
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Config EXPERIMENTAL has been removed from kernel in 2013 (see commit
    3d374d09f16f: "final removal of CONFIG_EXPERIMENTAL"), there is no any
    reason to do these checks now.

    Link: http://lkml.kernel.org/r/1488234097-20119-1-git-send-email-ruslan.bilovol@gmail.com
    Signed-off-by: Ruslan Bilovol
    Acked-by: Kees Cook
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ruslan Bilovol
     

28 Feb, 2017

1 commit

  • vsnprintf extension %Z is non-standard C. Suggest the use of %z
    instead.

    Miscellanea:

    - Correct the misuse of type string PRINTF_0xDECIMAL type strings are
    supposed to be uppercase only. Fix this and add tr/[a-z]/[A-Z] to the
    type check in case I forget this again sometime in the future.

    - Improve the mechanism to find these defects so all 3 current checks
    are done on the format string

    [joe@perches.com: correct the misuse of type string PRINTF_0xDECIMAL, improve the mechanism to find these defects]
    Link: http://lkml.kernel.org/r/4e3ad74b0c9dc229b06018a2d79655308ddbbebd.1484014173.git.joe@perches.com
    Link: http://lkml.kernel.org/r/20170109235955.GA6787@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

25 Feb, 2017

6 commits

  • Lines containing "} else {" should not be detected as unbalanced braces.
    But the second check can be reduced to ".+else\s*{" and it therefore
    never checked if the beginning of a line contains any other character
    (like the relevant "}"). This check would also return true for "} else
    {" and create warnings like

    CHECK: Unbalanced braces around else statement
    #391: FILE: ./net/batman-adv/tvlv.c:391:
    + } else {

    The check can be changed to check the whole line for the missing "}" to
    avoid this false positive.

    Fixes: 0d1532456c26 ("checkpatch: notice unbalanced else braces in a patch")
    Link: http://lkml.kernel.org/r/20170220121644.12209-1-sven@narfation.org
    Signed-off-by: Sven Eckelmann
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sven Eckelmann
     
  • Patches that add or modify code like

    } else

    or
    else {

    where one branch appears to have a brace and the other branch does not
    have a brace should emit a --strict style message.

    Link: http://lkml.kernel.org/r/c6be32747fc725cbc235802991746700a0f54fdc.1486754390.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • We still have a lot of old addresses for the FSF in the kernel.

    willy@harry:~/kernel/idr$ git grep '675 Mass' |wc -l
    1502
    willy@harry:~/kernel/idr$ git grep '59 Temple' |wc -l
    2825
    willy@harry:~/kernel/idr$ git grep '51 Franklin' |wc -l
    2020

    Let's discourage adding the oldest one too.

    Link: http://lkml.kernel.org/r/20170128173052.GA23532@bombadil.infradead.org
    Signed-off-by: Matthew Wilcox
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Currently checkpatch.pl does not recognize printk_deferred* functions as
    log functions and complains about the line length of printk_deferred*
    functions. Add printk_deferred* to logFunctions to fix it.

    Link: http://lkml.kernel.org/r/1484537124-18083-1-git-send-email-miles.chen@mediatek.com
    Signed-off-by: Miles Chen
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miles Chen
     
  • pr_cont(...) and printk(KERN_CONT ...) uses should be discouraged
    as their output can be interleaved by multiple logging processes.

    Link: http://lkml.kernel.org/r/7100ba00098694ec81471a299583ed068975fd05.1483465888.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Embedded function names are less appropriate to use when refactoring can
    cause function renaming. Prefer the use of "%s", __func__ to embedded
    function names.

    Link: http://lkml.kernel.org/r/ac9631fdbac5af3507c5bfe88ad9064f0ed764ec.1483510416.git.joe@perches.com
    Signed-off-by: Joe Perches
    Acked-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches