04 Jul, 2013

23 commits

  • Merge first patch-bomb from Andrew Morton:
    - various misc bits
    - I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
    distracted. There has been quite a bit of activity.
    - About half the MM queue
    - Some backlight bits
    - Various lib/ updates
    - checkpatch updates
    - zillions more little rtc patches
    - ptrace
    - signals
    - exec
    - procfs
    - rapidio
    - nbd
    - aoe
    - pps
    - memstick
    - tools/testing/selftests updates

    * emailed patches from Andrew Morton : (445 commits)
    tools/testing/selftests: don't assume the x bit is set on scripts
    selftests: add .gitignore for kcmp
    selftests: fix clean target in kcmp Makefile
    selftests: add .gitignore for vm
    selftests: add hugetlbfstest
    self-test: fix make clean
    selftests: exit 1 on failure
    kernel/resource.c: remove the unneeded assignment in function __find_resource
    aio: fix wrong comment in aio_complete()
    drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
    drivers/memstick/host/r592.c: convert to module_pci_driver
    drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
    pps-gpio: add device-tree binding and support
    drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
    drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
    drivers/parport/share.c: use kzalloc
    Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
    aoe: update internal version number to v83
    aoe: update copyright date
    aoe: perform I/O completions in parallel
    ...

    Linus Torvalds
     
  • Add RapidIO-specific modalias generation to enable udev notifications
    about RapidIO-specific events.

    The RapidIO modalias string format is shown below:

    "rapidio:vNNNNdNNNNavNNNNadNNNN"

    Where:
    v - Device Vendor ID (16 bit),
    d - Device ID (16 bit),
    av - Assembly Vendor ID (16 bit),
    ad - Assembly ID (16 bit),

    as they are reported in corresponding Capability Registers (CARs)
    of each RapidIO device.

    Signed-off-by: Alexandre Bounine
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Andre van Herk
    Cc: Micha Nelissen
    Cc: Stef van Os
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Add a file to cache the CamelCase variables found by to reduce
    the time it takes to scan the include/ directory.

    Filename is '.checkpatch-camelcase.' and it is created only only
    if a .git directory exists.

    is determined by the last non-merge commit id in the
    include/ path.

    Reduces checkpatch run time by ~12 cpu seconds on my little netbook.

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

    Joe Perches
     
  • The current $logFunction regular expression allows names like dev_warn,
    e_dbg, netdev_info, etc, but some log functions are now written like
    e_dev_warn, so allow 1 or 2 word blocks with an underscore before the
    logging level.

    Signed-off-by: Jacob Keller
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jacob Keller
     
  • When using --strict, CamelCase uses are described with CHECK: messages.
    These CamelCase uses may be acceptable and should not generate these
    messages when the variable is already defined in a file from the
    include/... path.

    So, change checkpatch to read all the .h files in include/... and look
    for preexisting CamelCase #defines, typedefs and function prototypes.

    Add these to the existing camelcase hash so that any uses in the patch or
    file can be ignored.

    There are currently ~3500 files in include/. It takes about 10 cpu
    seconds on my little netbook to grep for and preseed these existing uses.

    That's about 4x the time for a similar git grep.

    This preseeding is only done once when using --strict and only when there
    is a CamelCase use found.

    If a .git directory is found, it uses 'git ls-files include' If not, it
    uses 'find $root/include -name "*.h"

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

    Joe Perches
     
  • Many existing variable names use SI like variants that should be otherwise
    obvious and acceptable.

    Whitelist them from the CamelCase message.

    Signed-off-by: Joe Perches
    Suggested-by: Phil Carmody
    Acked-by: Phil Carmody
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Moving this test allows the --fix option to work better.

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

    Joe Perches
     
  • Some patches have simple defects in whitespace and formatting that
    checkpatch could correct automatically. Attempt to do so.

    Add a --fix option to create a ".EXPERIMENTAL-checkpatch-fixes"
    file that tries to use normal kernel style for some of these formatting
    errors.

    Add warnings against using this file without verifying the changes.

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

    Joe Perches
     
  • Some false positives exist on this test.

    For instance:
    *va_arg(args, signed char *) = val.s;
    or
    memset(foo, 0, sizeof(struct bar *) * baz));

    Ignore lines that have an arithmetic operator or assignment
    after what appears to be a cast to a pointer "(foo *)".

    Add $Arithmetic convenience variable.

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

    Joe Perches
     
  • Comparing to true or false is error prone.

    Add tests for the various forms of (foo == true) && (false != bar)
    that are only reported with --strict.

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

    Joe Perches
     
  • Check to make sure the blank lines aren't comment lines like:

    bool foo(bool bar)
    {
    /* Don't warn on a leading comment */
    return !bar;
    /* Don't warn on a trailing comment either */
    }

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

    Joe Perches
     
  • Figure out first how to determine if this is in a struct declaration or in
    a function body before enabling this.

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

    Joe Perches
     
  • Allow "#define foo struct.member" without bleating a warning.

    This also allows "#define foo bar.baz->qux" and so on.

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

    Joe Perches
     
  • Comparing get_jiffies_64() is almost always wrong and time_before64 and
    time_after64 should be used instead.

    Warn on any comparison to get_jiffies_64().

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

    Joe Perches
     
  • Comparing jiffies is almost always wrong and time_before and time_after
    should be used instead.

    Warn on any comparison to jiffies.

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

    Joe Perches
     
  • Some block comments in network are written as:

    /* block comment line 1
    block comment line 2
    */

    Emit a warning on the "block comment line 2" because it should be

    /* block comment line 1
    * block comment line 2
    */

    This warning is only emitted on the second line of a block comment.

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

    Joe Perches
     
  • Show the first line of the comment after a line with just /* to better
    show where the defective comment style is in the file.

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

    Joe Perches
     
  • Commit be987d9f80 ("checkpatch: improve CamelCase test for Page") added
    it but it shouldn't be there. Must have been my fault.

    Make sure that the tested variable doesn't contain a constant.

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

    Joe Perches
     
  • Add another test for memory allocation style to follow
    Documentation/CodingStyle:

    Chapter 14: Allocating memory

    The preferred form for passing a size of a struct is the following:

    p = kmalloc(sizeof(*p), ...);

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

    Joe Perches
     
  • The gcc extension for binary constants that start with 0b is only
    supported with gcc version 4.3 or higher.

    The kernel can still be compiled with earlier versions of gcc, so have
    checkpatch emit a warning for these constants.

    Restructure checkpatch's constant finding code a bit to support finding
    these binary constants.

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

    Joe Perches
     
  • Do not bleat a message on nominally acceptable CamelCase uses that are
    separated by an _ like drm_core_has_MTRR.

    CamelCase tests are also a bit noisy against certain types of code
    acceptable to some kernel developers.

    Make the test applicable only with --strict.

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

    Joe Perches
     
  • Linus Torvalds
     
  • Pull ARM64 updates from Catalin Marinas:
    "Main features:
    - KVM and Xen ports to AArch64
    - Hugetlbfs and transparent huge pages support for arm64
    - Applied Micro X-Gene Kconfig entry and dts file
    - Cache flushing improvements

    For arm64 huge pages support, there are x86 changes moving part of
    arch/x86/mm/hugetlbpage.c into mm/hugetlb.c to be re-used by arm64"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (66 commits)
    arm64: Add initial DTS for APM X-Gene Storm SOC and APM Mustang board
    arm64: Add defines for APM ARMv8 implementation
    arm64: Enable APM X-Gene SOC family in the defconfig
    arm64: Add Kconfig option for APM X-Gene SOC family
    arm64/Makefile: provide vdso_install target
    ARM64: mm: THP support.
    ARM64: mm: Raise MAX_ORDER for 64KB pages and THP.
    ARM64: mm: HugeTLB support.
    ARM64: mm: Move PTE_PROT_NONE bit.
    ARM64: mm: Make PAGE_NONE pages read only and no-execute.
    ARM64: mm: Restore memblock limit when map_mem finished.
    mm: thp: Correct the HPAGE_PMD_ORDER check.
    x86: mm: Remove general hugetlb code from x86.
    mm: hugetlb: Copy general hugetlb code from x86 to mm.
    x86: mm: Remove x86 version of huge_pmd_share.
    mm: hugetlb: Copy huge_pmd_share from x86 to mm.
    arm64: KVM: document kernel object mappings in HYP
    arm64: KVM: MAINTAINERS update
    arm64: KVM: userspace API documentation
    arm64: KVM: enable initialization of a 32bit vcpu
    ...

    Linus Torvalds
     

14 Jun, 2013

3 commits

  • Previously, the #line parsing regex ended with ({WS}+[0-9]+)?. The {WS}
    could match line-break characters. If the #line directive did not contain
    the optional flags field at the end, this could cause any integer data on
    the next line to be consumed as part of the #line directive parsing. This
    could cause syntax errors (i.e. #line parsing consuming the leading 0
    from a hex literal 0x1234, leaving x1234 to be parsed as cell data,
    which is a syntax error), or invalid compilation results (i.e. simply
    consuming literal 1234 as part of the #line processing, thus removing it
    from the cell data).

    Fix this by replacing {WS} with [ \t] so that it can't match line-breaks.

    Convert all instances of {WS}, even though the other instances should be
    irrelevant for any well-formed #line directive. This is done for
    consistency and ultimate safety.

    [Cherry picked from DTC commit a1ee6f068e1c8dbc62873645037a353d7852d5cc]

    Reported-by: Ian Campbell
    Signed-off-by: Stephen Warren
    Acked-by: David Gibson
    Signed-off-by: Grant Likely

    Grant Likely
     
  • This patch merely updates the generated dtc parser and lexer files to
    the output generated by Bison 2.5. The previous versions were generated
    from version 2.4.1. The only reason for this commit is to minimize the
    diff on the next commit which fixes a bug in the DTC #line directive
    parsing. Otherwise the Bison changes would be intermingled with the
    functional changes.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • Various temporary files used when building DTB files were not suffixed with
    .tmp and therefore were not cleaned up by "make clean".

    Signed-off-by: Ian Campbell
    Reviewed-by: Stephen Warren
    Tested-by: Stephen Warren
    Signed-off-by: Grant Likely

    Ian Campbell
     

12 Jun, 2013

1 commit

  • As is done for other architectures, sort the exception table at
    build-time rather than during boot.

    Since sortextable appears to be a standalone C program relying on the
    host elf.h to provide EM_AARCH64, I've had to add a conditional check in
    order to allow cross-compilation on machines that aren't running a
    bleeding-edge libc-dev.

    Signed-off-by: Will Deacon
    Signed-off-by: Catalin Marinas

    Will Deacon
     

30 May, 2013

3 commits

  • …config into kbuild/rc-fixes

    Michal Marek
     
  • menu_add_prop() applies upper menus' visibilities to actual prompts
    by AND-ing the prompts visibilities with the upper menus ones.

    This creates a further reference to the menu's visibilities and when
    the expression reduction functions do their work, they may remove or
    modify expressions that have multiple references, thus causing
    unpredictable side-effects.

    The following example Kconfig constructs a case where this causes
    problems: a menu and a prompt which's visibilities depend on the same
    symbol. When invoking mconf with this Kconfig and pressing "Z" we
    see a problem caused by a free'd expression still referenced by the
    menu's visibility:

    ------------------------------------------------------------------------
    mainmenu "Kconfig Testing Configuration"

    config VISIBLE
    def_bool n

    config Placeholder
    bool "Place holder"

    menu "Invisible"
    visible if VISIBLE

    config TEST_VAR
    bool "Test option" if VISIBLE

    endmenu
    ------------------------------------------------------------------------

    This patch fixes this problem by creating copies of the menu's
    visibility expressions before AND-ing them with the prompt's one.

    Signed-off-by: Dirk Gouders
    [yann.morin.1998@free.fr: move variable into its block-scope,
    keep lines
    Reviewed-by: "Yann E. MORIN"
    Signed-off-by: "Yann E. MORIN"

    Dirk Gouders
     
  • When entering an empty dialog, using the movement keys resulted in
    unexpected characters beeing displayed, other keys like "z" and "h"
    did not work as expected.

    This patch handles the movement keys as well as other keys, especially
    "z", "h" and "/".

    Signed-off-by: Dirk Gouders
    [yann.morin.1998@free.fr: keep lines
    Reviewed-by: "Yann E. MORIN"
    Signed-off-by: "Yann E. MORIN"

    Dirk Gouders
     

23 May, 2013

1 commit

  • In commit b40b25ff (kbuild: always run gcc -E on *.dts, remove cmd_dtc_cpp),
    dts building was changed to always use the C preprocessor. This meant
    that the .dts file passed to dtc is not the original, but the
    preprocessed one.

    When compiling with a separate build directory (i.e., with O=), this
    preprocessed file will not live in the same directory as the original.
    When the .dts file includes .dtsi files, dtc will look for them in the
    build directory, not in the source directory and compilation will fail.

    The commit referenced above tried to fix this by passing arch/*/boot/dts
    as an include path to dtc. However, for mips, the .dts files are not in
    this directory, so dts compilation on mips breaks for some targets.

    Instead of hardcoding this particular include path, this commit just
    uses the directory of the .dts file that is being compiled, which
    effectively restores the previous behaviour wrt includes. For most .dts
    files, this path is just the same as the previous hardcoded
    arch/*/boot/dts path.

    This was tested on a mips (rt3052) and an arm (bcm2835) target.

    Signed-off-by: Matthijs Kooijman
    Reviewed-by: Stephen Warren
    Signed-off-by: Michal Marek

    Matthijs Kooijman
     

20 May, 2013

2 commits

  • When --*-after options are used, two parameters are parsed from the
    command-line before the adequate function is called:
    - the `before' option, after which the new option will be inserted,
    - the name of the option to enable/disable/modularise.

    With the short version of --*-after options (namely -E, -D, -M), the
    parsing step is not performed which leads to processing unset variables.

    Add options -E, -D, -M to the test that triggers assignment of parameters
    for --*-after options.

    Signed-off-by: Clement Chauplannaz
    Acked-by: Andi Kleen
    Signed-off-by: Yann E. MORIN

    Clement Chauplannaz
     
  • gcc's places cold functions into the .text.unlikely section and we
    need to check this section as well for section mismatches otherwise we
    may have false negatives for this test.

    Cc: Rusty Russell
    Cc: Greg Kroah-Hartman
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-kbuild@vger.kernel.org
    Signed-off-by: Tom Rini
    Signed-off-by: Rusty Russell (wording update)

    Tom Rini
     

16 May, 2013

1 commit

  • Commit 6501320311664e11ad5489fedb17ea1f817c2617 dropped the rpm spec as a
    prerequisite for the binrpm-pkg target but forgot to update $< usage,
    which causes the rule to break.

    This commit fixes that by replacing $< with the spec name.

    Signed-off-by: Luiz Capitulino
    Signed-off-by: Michal Marek

    Luiz Capitulino
     

07 May, 2013

5 commits

  • Pull misc kbuild updates from Michal Marek:
    "Non-critical kbuild changes:

    - make coccicheck improvements, but no new semantic patches this time

    - make rpm improvements

    - make tar-pkg change to include the architecture in the filename.

    This is a deliberate incompatibility, but nobody has complained so
    far and it is useful if you build for different architectures. It
    also matches what the deb-pkg and rpm-pkg targets produce.

    - kbuild documentation fix"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    rpm-pkg: Remove pointless set -e statements
    rpm-pkg: Always regenerate the specfile
    rpm-pkg: Do not write to the parent directory
    rpm-pkg: Do not package the whole source directory
    buildtar: Add ARCH to the archive name
    Coccinelle: Fix patch output when coccicheck is used with M= and C=
    Coccinelle: Add support to the SPFLAGS variable
    Coccinelle: Cleanup the setting of the FLAGS and OPTIONS variables
    Coccinelle: Restore coccicheck verbosity in ONLINE mode (C=1 or C=2)
    scripts/package/Makefile: compare objtree with srctree instead of test KBUILD_OUTPUT
    doc: change example to existing Makefile fragment
    scripts/tags.sh: Add magic for OFFSET and DEFINE

    Linus Torvalds
     
  • Pull kconfig updates from Michal Marek:
    - use pkg-config to detect curses libraries
    - clean up the way curses headers are searched
    - Some randconfig fixes, of which one had to be reverted
    - KCONFIG_SEED for randconfig debugging
    - memuconfig memory leak plugged
    - menuconfig > breadcrumbs > navigation
    - xconfig compilation fix
    - Other minor fixes

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig: fix lists definition for C++
    Revert "kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG"
    kconfig: implement KCONFIG_PROBABILITY for randconfig
    kconfig: allow specifying the seed for randconfig
    kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG
    kconfig: do not override symbols already set
    kconfig: fix randconfig tristate detection
    kconfig/lxdialog: rationalise the include paths where to find {.n}curses{,w}.h
    menuconfig: Add "breadcrumbs" navigation aid
    menuconfig: Fix memory leak introduced by jump keys feature
    merge_config.sh: Avoid creating unnessary source softlinks
    kconfig: optionally use pkg-config to detect ncurses libs
    menuconfig: optionally use pkg-config to detect ncurses libs

    Linus Torvalds
     
  • Pull kbuild changes from Michal Marek:
    "Kbuild commits for v3.10-rc1:

    - Fix make mrproper after mod/file2alias rework
    - Fix ld-option Makefile function
    - Rewrite headers_install to shell to drop Perl dependency.

    There are some more patches I have to look at, so I might send another
    pull request later. Or just queue them for 3.11."

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    Fix cleaning in scripts/mod
    headers_install.pl: convert to headers_install.sh
    kbuild: fix ld-option function

    Linus Torvalds
     
  • Searching for PPC_EFIKA results in a segmentation fault, and it's
    because get_symbol_prop() returns NULL.

    In this case CONFIG_PPC_EFIKA is defined in arch/powerpc/platforms/
    52xx/Kconfig, so it won't be parsed if ARCH!=PPC, but menuconfig knows
    this symbol when it parses sound/soc/fsl/Kconfig:

    config SND_MPC52xx_SOC_EFIKA
    tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
    depends on PPC_EFIKA

    This bug was introduced by commit bcdedcc1afd6 ("menuconfig: print more
    info for symbol without prompts").

    Reported-and-tested-by: Borislav Petkov
    Signed-off-by: Li Zefan
    Tested-by: Libo Chen
    Reviewed-by: "Yann E. MORIN"
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • Make sure devicetable-offsets.h is cleaned in the scripts/mod directory

    Signed-off-by: Andreas Schwab
    Tested-by: Geert Uytterhoeven
    Signed-off-by: Michal Marek

    Andreas Schwab
     

06 May, 2013

1 commit

  • Pull mudule updates from Rusty Russell:
    "We get rid of the general module prefix confusion with a binary config
    option, fix a remove/insert race which Never Happens, and (my
    favorite) handle the case when we have too many modules for a single
    commandline. Seriously, the kernel is full, please go away!"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    modpost: fix unwanted VMLINUX_SYMBOL_STR expansion
    X.509: Support parse long form of length octets in Authority Key Identifier
    module: don't unlink the module until we've removed all exposure.
    kernel: kallsyms: memory override issue, need check destination buffer length
    MODSIGN: do not send garbage to stderr when enabling modules signature
    modpost: handle huge numbers of modules.
    modpost: add -T option to read module names from file/stdin.
    modpost: minor cleanup.
    genksyms: pass symbol-prefix instead of arch
    module: fix symbol versioning with symbol prefixes
    CONFIG_SYMBOL_PREFIX: cleanup.

    Linus Torvalds