15 Aug, 2014

3 commits

  • Pull more ACPI and power management updates from Rafael Wysocki:
    "These are a couple of regression fixes, cpuidle menu governor
    optimizations, fixes for ACPI proccessor and battery drivers,
    hibernation fix to avoid problems related to the e820 memory map,
    fixes for a few cpufreq drivers and a new version of the suspend
    profiling tool analyze_suspend.py.

    Specifics:

    - Fix for an ACPI-based device hotplug regression introduced in 3.14
    that causes a kernel panic to trigger when memory hot-remove is
    attempted with CONFIG_ACPI_HOTPLUG_MEMORY unset from Tang Chen

    - Fix for a cpufreq regression introduced in 3.16 that triggers a
    "sleeping function called from invalid context" bug in
    dev_pm_opp_init_cpufreq_table() from Stephen Boyd

    - ACPI battery driver fix for a warning message added in 3.16 that
    prints silly stuff sometimes from Mariusz Ceier

    - Hibernation fix for safer handling of mismatches in the 820 memory
    map between the configurations during image creation and during the
    subsequent restore from Chun-Yi Lee

    - ACPI processor driver fix to handle CPU hotplug notifications
    correctly during system suspend/resume from Lan Tianyu

    - Series of four cpuidle menu governor cleanups that also should
    speed it up a bit from Mel Gorman

    - Fixes for the speedstep-smi, integrator, cpu0 and arm_big_little
    cpufreq drivers from Hans Wennborg, Himangi Saraogi, Markus
    Pargmann and Uwe Kleine-König

    - Version 3.0 of the analyze_suspend.py suspend profiling tool from
    Todd E Brandt"

    * tag 'pm+acpi-3.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / battery: Fix warning message in acpi_battery_get_state()
    PM / tools: analyze_suspend.py: update to v3.0
    cpufreq: arm_big_little: fix module license spec
    cpufreq: speedstep-smi: fix decimal printf specifiers
    ACPI / hotplug: Check scan handlers in acpi_scan_hot_remove()
    cpufreq: OPP: Avoid sleeping while atomic
    cpufreq: cpu0: Do not print error message when deferring
    cpufreq: integrator: Use set_cpus_allowed_ptr
    PM / hibernate: avoid unsafe pages in e820 reserved regions
    ACPI / processor: Make acpi_cpu_soft_notify() process CPU FROZEN events
    cpuidle: menu: Lookup CPU runqueues less
    cpuidle: menu: Call nr_iowait_cpu less times
    cpuidle: menu: Use ktime_to_us instead of reinventing the wheel
    cpuidle: menu: Use shifts when calculating averages where possible

    Linus Torvalds
     
  • Pull misc kbuild updates from Michal Marek:
    "This is the non-critical part of kbuild for 3.17-rc1:

    - make help hint to use make -s with make kernelrelease et al.
    - moved a kbuild document to Documentation/kbuild where it belongs
    - four new Coccinelle scripts, one dropped and one fixed
    - new make kselftest target to run various tests on the kernel"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: kselftest - new make target to build and run kernel selftests
    Coccinelle: Script to replace if and BUG with BUG_ON
    Coccinelle: Script to detect incorrect argument to sizeof
    Coccinelle: Script to use ARRAY_SIZE instead of division of two sizeofs
    Coccinelle: Script to detect cast after memory allocation
    coccinelle/null: solve parse error
    Documentation: headers_install.txt is part of kbuild
    kbuild: make -s should be used with kernelrelease/kernelversion/image_name

    Linus Torvalds
     
  • Pull kbuild updates from Michal Marek:
    - make clean also considers $(extra-m) and $(extra-) to be consistent
    - cleanup and fixes in scripts/Makefile.host
    - allow to override the name of the Python 2 executable with make
    PYTHON=... (only needed for ia64 in practice)
    - option to split debugingo into *.dwo files to save disk space if the
    compiler supports it (CONFIG_DEBUG_INFO_SPLIT)
    - option to use dwarf4 debuginfo if the compiler supports it
    (CONFIG_DEBUG_INFO_DWARF4)
    - fix for disabling certain warnings with clang
    - fix for unneeded rebuild with dash when a command contains
    backslashes

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: Fix handling of backslashes in *.cmd files
    kbuild, LLVMLinux: Supress warnings unless W=1-3
    Kbuild: Add a option to enable dwarf4 v2
    kbuild: Support split debug info v4
    kbuild: allow to override Python command name
    kbuild: clean-up and bug fix of scripts/Makefile.host
    kbuild: clean up scripts/Makefile.host
    kbuild: drop shared library support from Makefile.host
    kbuild: fix a bug of C++ host program handling
    kbuild: fix a typo in scripts/Makefile.host
    scripts/Makefile.clean: clean also $(extra-m) and $(extra-)

    Linus Torvalds
     

12 Aug, 2014

1 commit


11 Aug, 2014

1 commit

  • Pull module updates from Rusty Russell:
    "This finally applies the stricter sysfs perms checking we pulled out
    before last merge window. A few stragglers are fixed (thanks
    linux-next!)"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    arch/powerpc/platforms/powernv/opal-dump.c: fix world-writable sysfs files
    arch/powerpc/platforms/powernv/opal-elog.c: fix world-writable sysfs files
    drivers/video/fbdev/s3c2410fb.c: don't make debug world-writable.
    ARM: avoid ARM binutils leaking ELF local symbols
    scripts: modpost: Remove numeric suffix pattern matching
    scripts: modpost: fix compilation warning
    sysfs: disallow world-writable files.
    module: return bool from within_module*()
    module: add within_module() function
    modules: Fix build error in moduleloader.h

    Linus Torvalds
     

09 Aug, 2014

7 commits

  • Update of analyze_suspend.py to v3.0

    New features include back-2-back suspend testing, device filters to
    reduce the html size, the inclusion of device_prepare and device_complete
    callbacks, a usb topography list, and the ability to control USB
    device autosuspend.

    UI upgrades include a device detail window and mini-timeline, the addition
    of a suspend_prepare and resume_complete phase to the timeline which includes
    the associated device callbacks, automatic highlight of related callbacks,
    and general color and name changes for better reability.

    The new version relies on two trace point patches that are already in
    the kernel:
    enable_trace_events_suspend_resume.patch
    enable_trace_events_device_pm_callback.patch

    It has legacy support for older kernels without these trace events, but
    when available the tool processes the ftrace output alone (dmesg has
    been deprecated as a tool input, and is only gathered for convenience).

    Link: https://01.org/suspendresume/downloads/analyzesuspend-v3.0
    Signed-off-by: Todd Brandt
    Signed-off-by: Rafael J. Wysocki

    Todd E Brandt
     
  • currently bin2c builds only if CONFIG_IKCONFIG=y. But bin2c will now be
    used by kexec too. So make it compilation dependent on CONFIG_BUILD_BIN2C
    and this config option can be selected by CONFIG_KEXEC and CONFIG_IKCONFIG.

    Signed-off-by: Vivek Goyal
    Cc: Borislav Petkov
    Cc: Michael Kerrisk
    Cc: Yinghai Lu
    Cc: Eric Biederman
    Cc: H. Peter Anvin
    Cc: Matthew Garrett
    Cc: Greg Kroah-Hartman
    Cc: Dave Young
    Cc: WANG Chao
    Cc: Baoquan He
    Cc: Andy Lutomirski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • This patch series does not do kernel signature verification yet. I plan
    to post another patch series for that. Now distributions are already
    signing PE/COFF bzImage with PKCS7 signature I plan to parse and verify
    those signatures.

    Primary goal of this patchset is to prepare groundwork so that kernel
    image can be signed and signatures be verified during kexec load. This
    should help with two things.

    - It should allow kexec/kdump on secureboot enabled machines.

    - In general it can help even without secureboot. By being able to verify
    kernel image signature in kexec, it should help with avoiding module
    signing restrictions. Matthew Garret showed how to boot into a custom
    kernel, modify first kernel's memory and then jump back to old kernel and
    bypass any policy one wants to.

    This patch (of 15):

    Kexec wants to use bin2c and it wants to use it really early in the build
    process. See arch/x86/purgatory/ code in later patches.

    So move bin2c in scripts/basic so that it can be built very early and
    be usable by arch/x86/purgatory/

    Signed-off-by: Vivek Goyal
    Cc: Borislav Petkov
    Cc: Michael Kerrisk
    Cc: Yinghai Lu
    Cc: Eric Biederman
    Cc: H. Peter Anvin
    Cc: Matthew Garrett
    Cc: Greg Kroah-Hartman
    Cc: Dave Young
    Cc: WANG Chao
    Cc: Baoquan He
    Cc: Andy Lutomirski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • This patch adds support for ARCH=x86 into checkstack.

    Commit ffee0de411fd ("x86: Default to ARCH=x86 to avoid overriding
    CONFIG_64BIT") had merged ARCH=i386 and ARCH=x86_64 into one ARCH=x86.
    checkstack.pl searches patterns of machine instructions which are
    usually used for allocating stack frames. checkstalk.pl needs either
    i386 or x86_64, x86 isn't enough:

    $ make checkstack
    objdump -d vmlinux $(find . -name '*.ko') | \
    perl linux/scripts/checkstack.pl x86
    wrong or unknown architecture "x86"

    Signed-off-by: Konstantin Khlebnikov
    Cc: David Woodhouse
    Cc: "H. Peter Anvin"
    Cc: Richard Weinberger
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Since the kernel now has a COMPAT_SYSCALL infrastructure via commit
    468366138850 ("COMPAT_SYSCALL_DEFINE: infrastructure"), add the
    corresponding regex for generating compat_sys_* symbols in the tags
    files (similar to sys_*).

    Signed-off-by: Catalin Marinas
    Cc: Alexander Viro
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Catalin Marinas
     
  • All coccinelle scripts have a copyright in the header.

    Signed-off-by: Fabian Frederick
    Suggested-by: Julia Lawall
    Acked-by: Julia Lawall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Warns or generates patch for NULL check before the following functions:

    kfree
    usb_free_urb
    debugfs_remove
    debugfs_remove_recursive

    Signed-off-by: Fabian Frederick
    Acked-by: Julia Lawall
    Cc: Gilles Muller
    Cc: Joe Perches
    Cc: Markus Elfring
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     

08 Aug, 2014

1 commit

  • Commit c353acba ("kbuild: make: fix if_changed when command contains
    backslashes") attempted to handle backslashes in *.cmd files, but it
    only handled double backslashes for some reason. Changing make-cmd to also
    handle single backslashes fixes rebuilds with dash, but it breaks bash
    again. The reason is that the two shells disagree about the
    interpretation of backslash sequences in the echo builtin. The way out
    of this is to print the command with printf '%s\n'. While at it,
    document what the individual parts of make-cmd do and why.

    Reported-and-tested-by: Konstantin Khlebnikov
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Michal Marek

    Michal Marek
     

07 Aug, 2014

27 commits

  • Merge incoming from Andrew Morton:
    - Various misc things.
    - arch/sh updates.
    - Part of ocfs2. Review is slow.
    - Slab updates.
    - Most of -mm.
    - printk updates.
    - lib/ updates.
    - checkpatch updates.

    * emailed patches from Andrew Morton : (226 commits)
    checkpatch: update $declaration_macros, add uninitialized_var
    checkpatch: warn on missing spaces in broken up quoted
    checkpatch: fix false positives for --strict "space after cast" test
    checkpatch: fix false positive MISSING_BREAK warnings with --file
    checkpatch: add test for native c90 types in unusual order
    checkpatch: add signed generic types
    checkpatch: add short int to c variable types
    checkpatch: add for_each tests to indentation and brace tests
    checkpatch: fix brace style misuses of else and while
    checkpatch: add --fix option for a couple OPEN_BRACE misuses
    checkpatch: use the correct indentation for which()
    checkpatch: add fix_insert_line and fix_delete_line helpers
    checkpatch: add ability to insert and delete lines to patch/file
    checkpatch: add an index variable for fixed lines
    checkpatch: warn on break after goto or return with same tab indentation
    checkpatch: emit a warning on file add/move/delete
    checkpatch: add test for commit id formatting style in commit log
    checkpatch: emit fewer kmalloc_array/kcalloc conversion warnings
    checkpatch: improve "no space after cast" test
    checkpatch: allow multiple const * types
    ...

    Linus Torvalds
     
  • Pull trivial tree changes from Jiri Kosina:
    "Summer edition of trivial tree updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
    doc: fix two typos in watchdog-api.txt
    irq-gic: remove file name from heading comment
    MAINTAINERS: Add miscdevice.h to file list for char/misc drivers.
    scsi: mvsas: mv_sas.c: Fix for possible null pointer dereference
    doc: replace "practise" with "practice" in Documentation
    befs: remove check for CONFIG_BEFS_RW
    scsi: doc: fix 'SCSI_NCR_SETUP_MASTER_PARITY'
    drivers/usb/phy/phy.c: remove a leading space
    mfd: fix comment
    cpuidle: fix comment
    doc: hpfall.c: fix missing null-terminate after strncpy call
    usb: doc: hotplug.txt code typos
    kbuild: fix comment in Makefile.modinst
    SH: add proper prompt to SH_MAGIC_PANEL_R2_VERSION
    ARM: msm: Remove MSM_SCM
    crypto: Remove MPILIB_EXTRA
    doc: CN: remove dead link, kerneltrap.org no longer works
    media: update reference, kerneltrap.org no longer works
    hexagon: update reference, kerneltrap.org no longer works
    doc: LSM: update reference, kerneltrap.org no longer works
    ...

    Linus Torvalds
     
  • Using uninitialized_var reports a false positive for "Missing blank line
    after declarations".

    Fix it by adding uninitialized_var to the $declaration_macros exceptions
    list.

    Move the macro list after $Type is declared.

    Add optional prefixes to DECLARE_ and DEFINE_
    macro declarations to allow forms like:
    MLX4_DECLARE_DOORBELL_LOCK

    Signed-off-by: Joe Perches
    Reported-by: Dotan Barak
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Checkpatch already complains when people break up quoted strings but
    it's still pretty common. One mistake that people often make is they
    leave out the space character between the two strings.

    This check adds around 450 new warnings and has a low rate of false
    positives.

    Signed-off-by: Dan Carpenter
    Cc: Andy Whitcroft
    Acked-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Commit 89da401f6cff ("checkpatch: improve "no space after cast" test")
    in -next improved the cast test for non pointer types, but also
    introduced false positives for some types of static inlines.

    Add a test for an open brace to the exclusions to avoid these false
    positives.

    Signed-off-by: Joe Perches
    Reported-by: Hartley Sweeten
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Using --file mode can give false positives with MISSING_BREAK
    fall-through warnings on simple but long multiple consecutive case
    statements.

    Look for all lines before a case statement for a switch or a statement
    when using --file mode.

    Fix a misspelling of preceded while there.

    Signed-off-by: Joe Perches
    Reported-by: Lee Jones
    Acked-by: Lee Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • c90 section "6.7.2 Type Specifiers" says:
    "type specifiers may occur in any order"

    That means that:
    short int is the same as int short
    unsigned short int is the same as int unsigned short
    etc...

    checkpatch currently parses only a subset of these allowed types.

    For instance: "unsigned short" and "signed short" are found by
    checkpatch as a specific type, but none of the or "int short" or "int
    signed short" variants are found.

    Add another table for the "kernel style misordered" variants.

    Add this misordered table to the findable types.

    Warn when the misordered style is used.

    This improves the "Missing a blank line after declarations" test as it
    depends on the correct parsing of the $Declare variable which looks for
    "$Type $Ident;" (ie: declarations like "int foo;").

    Signed-off-by: Joe Perches
    Acked-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Current generic types are unsigned or unspecified. Add signed to the
    types.

    Reorder the types to find the longest match first.

    Signed-off-by: Joe Perches
    Acked-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • short int is one of the 6.7.2 c90 types.
    Find it appropriately.

    This fixes a defect in checkpatch where it suggests that a line break
    after declaration is required using an input like:

    int foo;
    short int bar;

    Without this change, it warns on the short int line.

    Signed-off-by: Joe Perches
    Reported-by: Hartley Sweeten
    Acked-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • All the various for_each loop macros were not tested for trailing brace
    on the following lines and for bad indentation.

    Add them.

    Signed-off-by: Joe Perches
    Reported-by: Greg KH
    Cc: Andy Whitcroft
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add --fix corrections for ELSE_AFTER_BRACE and WHILE_AFTER_BRACE
    misuses.

    if (x) {
    ...
    }
    else {
    ...
    }

    is corrected to

    if (x) {
    ...
    } else {
    ...
    }

    and

    do {
    ...
    }
    while (x);

    is corrected to

    do {
    ...
    } while (x);

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Style misuses of these types are corrected:

    typedef struct foo
    {
    int bar;
    };

    int foo(int bar) { return bar+1;
    }

    int foo(int bar) {
    return bar+1;
    }

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • I copied the which subroutine from get_maintainer.pl.

    Unfortunately, get_maintainer uses a 4 space indentation so use the
    proper tab indentation instead.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Neaten the uses of patch/file line insertions or deletions. Hide the
    mechanism used.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • This can be valuable to insert or delete blank lines as well as fix
    misplaced brace or else uses.

    Store indexes of lines to be added/deleted and the new lines.

    When creating the --fix file, insert or delete the appropriate lines and
    update the patch range information.

    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Cc: Dan Carpenter
    Cc: Josh Triplett
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Make the fix code a bit easier to read.

    This should also start to allow an easier mechanism to insert/delete
    lines eventually too.

    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Cc: Dan Carpenter
    Cc: Josh Triplett
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Using break; after a goto or return is unnecessary so emit a warning
    when the break is at the same indent level.

    So this emits a warning on:

    switch (foo) {
    case 1:
    goto err;
    break;
    }

    but not on:

    switch (foo) {
    case 1:
    if (bar())
    goto err;
    break;
    }

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Whenever files are added, moved, or deleted, the MAINTAINERS file
    patterns can be out of sync or outdated.

    To try to keep MAINTAINERS more up-to-date, add a one-time warning
    whenever a patch does any of those.

    Signed-off-by: Joe Perches
    Acked-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Commit logs have various forms of commit id references.

    Try to standardize on a 12 character long lower case commit id along
    with a description of parentheses and the quoted subject line.

    ie: commit 0123456789ab ("commit description")

    If git and a git tree exists, look up the commit id and emit the
    appropriate line as part of the message.

    Signed-off-by: Joe Perches
    Requested-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Avoid matching allocs that appear to be known small multiplications of a
    sizeof with a constant because gcc as of 4.8 cannot optimize the code in
    a calloc() exactly the same way as an alloc().

    Look for numeric constants or what appear to be upper case only macro
    #defines.

    Signed-off-by: Joe Perches
    Reported-by: Theodore Ts'o
    Original-patch-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • This --strict test previously worked only for what appeared to be cast
    to pointer types.

    Make it work for all casts.

    Also, there's no reason to show the previous line for this type of
    message, so don't.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • checkpatch's $Type variable does not match declarations of multiple
    const * types.

    This can produce false positives for things like:

    $ ./scripts/checkpatch.pl -f drivers/staging/comedi/comedidev.h
    WARNING: Missing a blank line after declarations
    #60: FILE: drivers/staging/comedi/comedidev.h:60:
    + const struct comedi_lrange *range_table;
    + const struct comedi_lrange *const *range_table_list;

    Fix the $Type variable to support matching multiple "* const" uses.

    Signed-off-by: Joe Perches
    Reported-by: Hartley Sweeten
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Parentheses around &(foo->bar) and *(foo->bar) are unnecessary. Emit a
    --strict only message on these uses.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Editing Kconfig dependencies can emit unnecessary messages about missing
    or too short help entries.

    Only emit the message when adding help sections to Kconfig files.

    Signed-off-by: Joe Perches
    Reported-by: Jean Delvare
    Tested-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Make it consistent with the other missing or multiple blank line tests.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Multiple consecutive blank lines waste screen space. Emit a --strict
    only message with these blank lines.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add a --strict test asking for a blank line after
    function/struct/union/enum declarations.

    Allow exceptions for several attributes and macro uses.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches