25 Sep, 2015

2 commits

  • The sign-file.c program actually uses CMS rather than PKCS#7 to sign a file
    since that allows the target X.509 certificate to be specified by
    subjectKeyId rather than by issuer + serialNumber.

    However, older versions of the OpenSSL crypto library (such as may be found
    in CentOS 5.11) don't support CMS. Assume everything prior to
    OpenSSL-1.0.0 doesn't support CMS and switch to using PKCS#7 in that case.

    Further, the pre-1.0.0 OpenSSL only supports PKCS#7 signing with SHA1, so
    give an error from the sign-file script if the caller requests anything
    other than SHA1.

    The compiler gives the following error with an OpenSSL crypto library
    that's too old:

    HOSTCC scripts/sign-file
    scripts/sign-file.c:23:25: fatal error: openssl/cms.h: No such file or directory
    #include

    Reported-by: Vinson Lee
    Signed-off-by: David Howells
    Acked-by: David Woodhouse

    David Howells
     
  • Remove headers #included unnecessarily from extract-cert.c lest they cause
    compilation of the tool to fail against an older OpenSSL library.

    Signed-off-by: David Howells
    Acked-by: David Woodhouse

    David Howells
     

16 Sep, 2015

1 commit

  • The GPL does not permit us to link against the OpenSSL library. Use
    LGPL for sign-file and extract-file instead.

    [ The whole "openssl isn't compatible with gpl" is really just
    fear-mongering, but there's no reason not to make modsign LGPL, so
    nobody cares. - Linus ]

    Reported-by: Julian Andres Klode
    Signed-off-by: David Woodhouse
    Signed-off-by: David Howells
    Reviewed-by: Julian Andres Klode
    Signed-off-by: Linus Torvalds

    David Woodhouse
     

12 Sep, 2015

1 commit

  • Fix the following warning when compiling extract-cert:

    scripts/extract-cert.c: In function `write_cert':
    scripts/extract-cert.c:89:2: warning: format not a string literal and no format arguments [-Wformat-security]
    ERR(!i2d_X509_bio(wb, x509), cert_dst);
    ^

    whereby the ERR() macro is taking cert_dst as the format string. "%s"
    should be used as the format string as the path could contain special
    characters.

    Signed-off-by: David Howells
    Reported-by: Jim Davis
    Acked-by : David Woodhouse
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

11 Sep, 2015

13 commits

  • "CONST variable" checks like:

    if (NULL != foo)
    and
    while (0 < bar(...))

    where a constant (or what appears to be a constant like an upper case
    identifier) is on the left of a comparison are generally preferred to be
    written using the constant on the right side like:

    if (foo != NULL)
    and
    while (bar(...) > 0)

    Add a test for this.

    Add a --fix option too, but only do it when the code is immediately
    surrounded by parentheses to avoid misfixing things like "(0 < bar() +
    constant)"

    Signed-off-by: Joe Perches
    Cc: Nicolas Morey Chaisemartin
    Cc: Viresh Kumar
    Cc: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of
    persistent memory updates") added a new __pmem annotation for sparse
    verification. Add __pmem to the $Sparse variable so checkpatch can
    appropriately ignore uses of this attribute too.

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

    Joe Perches
     
  • Using checkpatch.pl with Perl 5.22.0 generates the following warning:

    Unescaped left brace in regex is deprecated, passed through in regex;

    This patch fixes the warnings by escaping occurrences of the left brace
    inside the regular expression.

    Signed-off-by: Eddie Kovsky
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eddie Kovsky
     
  • Fixes: and Link: lines may exceed 75 chars in the commit log.

    So too can stack dump and dmesg lines and lines that seem
    like filenames.

    And Fixes: lines don't need to have a "commit" prefix before the
    commit id.

    Add exceptions for these types of lines.

    Signed-off-by: Joe Perches
    Reported-by: Paul Bolle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Using 0x%d is wrong. Emit a message when it happens.

    Miscellanea:

    Improve the %Lu warning to match formats like %16Lu.

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

    Joe Perches
     
  • Making --strict the default for staging may help some people submit
    patches without obvious defects.

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

    Joe Perches
     
  • Some of the block comment tests that are used only for networking are
    appropriate for all patches.

    For example, these styles are not encouraged:

    /*
    block comment without introductory *
    */
    and
    /*
    * block comment with line terminating */

    Remove the networking specific test and add comments.

    There are some infrequent false positives where code is lazily
    commented out using /* and */ rather than using #if 0/#endif blocks
    like:
    /* case foo:
    case bar: */
    case baz:

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

    Joe Perches
     
  • commit 34d8815f9512 ("checkpatch: add --showfile to allow input via pipe
    to show filenames") broke the --emacs with --file option.

    Fix it.

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

    Joe Perches
     
  • Sergey Senozhatsky has modified several destroy functions that can
    now be called with NULL values.

    - kmem_cache_destroy()
    - mempool_destroy()
    - dma_pool_destroy()

    Update checkpatch to warn when those functions are preceded by an if.

    Update checkpatch to --fix all the calls too only when the code style
    form is using leading tabs.

    from:
    if (foo)
    (foo);
    to:
    (foo);

    Signed-off-by: Joe Perches
    Tested-by: Sergey Senozhatsky
    Cc: David Rientjes
    Cc: Julia Lawall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Some really long declaration macros exist.

    For instance;
    DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
    and
    DECLARE_DM_KCOPYD_THROTTLE_WITH_MODULE_PARM(name, description)

    Increase the limit from 2 words to 6 after DECLARE/DEFINE uses.

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

    Joe Perches
     
  • Many lines exist like

    if (foo)
    bar;

    where the tabbed indentation of the branch is not one more than the "if"
    line above it.

    checkpatch should emit a warning on those lines.

    Miscellenea:

    o Remove comments from branch blocks
    o Skip blank lines in block

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

    Joe Perches
     
  • Using BUG/BUG_ON crashes the kernel and is just unfriendly.

    Enable code that emits a warning on BUG/BUG_ON use.

    Make the code emit the message at WARNING level when scanning a patch and
    at CHECK level when scanning files so that script users don't feel an
    obligation to fix code that might be above their pay grade.

    Signed-off-by: Joe Perches
    Reported-by: Geert Uytterhoeven
    Tested-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Commit IDs should have commit descriptions too. Warn when a 12 to 40 byte
    SHA-1 is used in commit logs.

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

    Joe Perches
     

09 Sep, 2015

6 commits

  • Merge second patch-bomb from Andrew Morton:
    "Almost all of the rest of MM. There was an unusually large amount of
    MM material this time"

    * emailed patches from Andrew Morton : (141 commits)
    zpool: remove no-op module init/exit
    mm: zbud: constify the zbud_ops
    mm: zpool: constify the zpool_ops
    mm: swap: zswap: maybe_preload & refactoring
    zram: unify error reporting
    zsmalloc: remove null check from destroy_handle_cache()
    zsmalloc: do not take class lock in zs_shrinker_count()
    zsmalloc: use class->pages_per_zspage
    zsmalloc: consider ZS_ALMOST_FULL as migrate source
    zsmalloc: partial page ordering within a fullness_list
    zsmalloc: use shrinker to trigger auto-compaction
    zsmalloc: account the number of compacted pages
    zsmalloc/zram: introduce zs_pool_stats api
    zsmalloc: cosmetic compaction code adjustments
    zsmalloc: introduce zs_can_compact() function
    zsmalloc: always keep per-class stats
    zsmalloc: drop unused variable `nr_to_migrate'
    mm/memblock.c: fix comment in __next_mem_range()
    mm/page_alloc.c: fix type information of memoryless node
    memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node()
    ...

    Linus Torvalds
     
  • add [pci|dma]_pool_zalloc coccinelle check.
    replaces instances of [pci|dma]_pool_alloc() followed by memset(0)
    with [pci|dma]_pool_zalloc().

    Signed-off-by: Sean O. Stalley
    Acked-by: Julia Lawall
    Cc: Vinod Koul
    Cc: Bjorn Helgaas
    Cc: Gilles Muller
    Cc: Nicolas Palix
    Cc: Michal Marek
    Cc: Sebastian Andrzej Siewior
    Cc: Jonathan Corbet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sean O. Stalley
     
  • Pull misc kbuild updates from Michal Marek:
    - deb-pkg:
    + module signing fix
    + dtb files are added to the package
    + do not require `hostname -f` to work during build
    + make deb-pkg generates a source package, bindeb-pkg has been
    added to only generate the binary package
    - rpm-pkg packages /lib/modules as well
    - new coccinelle patch and updates to existing ones
    - new stackusage & stackdelta script to collect and compare stack usage
    info (using gcc's -fstack-usage)
    - make tags understands trace_*_rcuidle() macros
    - .gitignore updates, misc cleanups

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (27 commits)
    deb-pkg: add source package
    package/Makefile: move source tar creation to a function
    scripts: add stackdelta script
    kbuild: remove *.su files generated by -fstack-usage
    .gitignore: add *.su pattern
    scripts: add stackusage script
    kbuild: avoid listing /lib/modules in kernel spec file
    fallback to hostname in scripts/package/builddeb
    coccinelle: api: extend spatch for dropping unnecessary owner
    deb-pkg: simplify directory creation
    scripts/tags.sh: Include trace_*_rcuidle() in tags
    scripts/package/Makefile: rpmbuild is needed for rpm targets
    Kbuild: Add ID files to .gitignore
    gitignore: Add MIPS vmlinux.32 to the list
    coccinelle: simple_return: Add a blank line
    coccinelle: irqf_oneshot.cocci: Improve the generated commit log
    coccinelle: api: add vma_pages.cocci
    scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar
    scripts/coccinelle/misc/semicolon.cocci: Use imperative mood
    coccinelle: simple_open: Use imperative mood
    ...

    Linus Torvalds
     
  • Pull kconfig updates from Michal Marek:
    - kconfig warns about junk characters in Kconfig files
    - merge_config.sh error handling
    - small cleanup

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    merge_config.sh: exit on missing input files
    kconfig: Regenerate shipped zconf.{hash,lex}.c files
    kconfig: warn of unhandled characters in Kconfig commands
    kconfig: Delete unnecessary checks before the function call "sym_calc_value"

    Linus Torvalds
     
  • Pull core kbuild updates from Michal Marek:
    - modpost portability fix
    - linker script fix
    - genksyms segfault fix
    - fixdep cleanup
    - fix for clang detection

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: Fix clang detection
    kbuild: fixdep: drop meaningless hash table initialization
    kbuild: fixdep: optimize code slightly
    genksyms: Regenerate parser
    genksyms: Duplicate function pointer type definitions segfault
    kbuild: Fix .text.unlikely placement
    Avoid conflict with host definitions when cross-compiling

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:
    "Highlights:

    - PKCS#7 support added to support signed kexec, also utilized for
    module signing. See comments in 3f1e1bea.

    ** NOTE: this requires linking against the OpenSSL library, which
    must be installed, e.g. the openssl-devel on Fedora **

    - Smack
    - add IPv6 host labeling; ignore labels on kernel threads
    - support smack labeling mounts which use binary mount data

    - SELinux:
    - add ioctl whitelisting (see
    http://kernsec.org/files/lss2015/vanderstoep.pdf)
    - fix mprotect PROT_EXEC regression caused by mm change

    - Seccomp:
    - add ptrace options for suspend/resume"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (57 commits)
    PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them
    Documentation/Changes: Now need OpenSSL devel packages for module signing
    scripts: add extract-cert and sign-file to .gitignore
    modsign: Handle signing key in source tree
    modsign: Use if_changed rule for extracting cert from module signing key
    Move certificate handling to its own directory
    sign-file: Fix warning about BIO_reset() return value
    PKCS#7: Add MODULE_LICENSE() to test module
    Smack - Fix build error with bringup unconfigured
    sign-file: Document dependency on OpenSSL devel libraries
    PKCS#7: Appropriately restrict authenticated attributes and content type
    KEYS: Add a name for PKEY_ID_PKCS7
    PKCS#7: Improve and export the X.509 ASN.1 time object decoder
    modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS
    extract-cert: Cope with multiple X.509 certificates in a single file
    sign-file: Generate CMS message as signature instead of PKCS#7
    PKCS#7: Support CMS messages also [RFC5652]
    X.509: Change recorded SKID & AKID to not include Subject or Issuer
    PKCS#7: Check content type and versions
    MAINTAINERS: The keyrings mailing list has moved
    ...

    Linus Torvalds
     

05 Sep, 2015

6 commits

  • I wrote a small script to show word-pair from all linux spelling-typo
    commits, and get following result by sort | uniq -c:

    181 occured -> occurred
    78 transfered -> transferred
    67 recieved -> received
    65 dependant -> dependent
    58 wether -> whether
    56 accomodate -> accommodate
    54 occured -> occurred
    51 recieve -> receive
    47 cant -> can't
    40 sucessfully -> successfully
    ...

    Some of them are not in spelling.txt, this patch adds the most common
    word-pairs into spelling.txt.

    Signed-off-by: Zhao Lei
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhao Lei
     
  • Fix the stack decoder for the ARM architecture.
    An ARM stack is designed as :

    [ 81.547704] [] (bucket_find_contain) from [] (check_sync+0x40/0x4f8)
    [ 81.559668] [] (check_sync) from [] (debug_dma_sync_sg_for_cpu+0x128/0x194)
    [ 81.571583] [] (debug_dma_sync_sg_for_cpu) from [] (__videobuf_s

    The current script doesn't expect the symbols to be bound by
    parenthesis, and triggers the following errors :

    awk: cmd. line:1: error: Unmatched ( or \(: / (check_sync$/
    [ 81.547704] (bucket_find_contain) from (check_sync+0x40/0x4f8)

    Fix it by chopping starting and ending parenthesis from the each symbol
    name.

    As a side note, this probably comes from the function
    dump_backtrace_entry(), which is implemented differently for each
    architecture. That makes a single decoding script a bit a challenge.

    Signed-off-by: Robert Jarzmik
    Cc: Sasha Levin
    Cc: Russell King
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert Jarzmik
     
  • If indent is not found, bail out immediately instead of spitting random
    shell script error messages.

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

    Jean Delvare
     
  • Editors like emacs and vi recognize a number of error message formats.
    The format used by the kerneldoc tool is not recognized by emacs.

    Change the kerneldoc error message format to the GNU style such that the
    emacs prev-error and next-error commands can be used to navigate through
    kerneldoc error messages. For more information about the GNU error
    message format, see also
    https://www.gnu.org/prep/standards/html_node/Errors.html.

    This patch has been generated via the following sed command:

    sed -i.orig 's/Error(\${file}:\$.):/\${file}:\$.: error:/g;s/Warning(\${file}:\$.):/\${file}:\$.: warning:/g;s/Warning(\${file}):/\${file}:1: warning:/g;s/Info(\${file}:\$.):/\${file}:\$.: info:/g' scripts/kernel-doc

    Signed-off-by: Bart Van Assche
    Cc: Johannes Berg
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bart Van Assche
     
  • I just did a spelling mistake of uninitialized and wrote that as
    unintialized. Fortunately I noticed it in my final review.

    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sudip Mukherjee
     
  • misspelled words for check:-
    chcek
    chck
    cehck

    I myself did these spell mistakes in changelog for patches, Thus
    suggesting to add in spelling.txt, so that checkpatch.pl warns it
    earlier. References:-

    ./arch/powerpc/kernel/exceptions-64e.S:456: . . . make sure you chcek
    https://lkml.org/lkml/2015/6/25/289
    ./arch/x86/mm/pageattr.c:1368: * No need to cehck in that case

    [akpm@linux-foundation.org: add whcih->which, whcih I always get wrong]
    Signed-off-by: Maninder Singh
    Acked-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maninder Singh
     

04 Sep, 2015

4 commits

  • We cannot detect clang before including the arch Makefile, because that
    can set the default cross compiler. We also cannot detect clang after
    including the arch Makefile, because powerpc wants to know about clang.
    Solve this by using an deferred variable. This costs us a few shell
    invocations, but this is only a constant number.

    Reported-by: Behan Webster
    Reported-by: Anton Blanchard
    Signed-off-by: Michal Marek

    Michal Marek
     
  • Make deb-pkg build both source and binary package like make rpm-pkg does.
    For people who only need binary kernel package, there is now bindeb-pkg
    target, same target also used to build the .deb files if built from the
    source package using dpkg-buildpackage.

    Generated source package will build the same kernel .config than what
    was available for make deb-pkg. The name of the source package can
    be set with KDEB_SOURCENAME enviroment variable.

    The source package is useful for GPL compliance, or for feeding to a
    automated debian package builder.

    Cc: Chris J Arges
    Reviewed-by: maximilian attems
    Reviewed-by: Ben Hutchings
    Signed-off-by: Riku Voipio
    Signed-off-by: Michal Marek

    Riku Voipio
     
  • Split source tarball creation from rpm-pkg target
    so it can be used from deb-pkg target as well. As
    added bonus, we can now pretty print TAR the name of
    tarball created in quiet mode

    This patch prepares the groundwork for deb-pkg source
    package adding bit.

    Signed-off-by: Riku Voipio
    Signed-off-by: Michal Marek

    Riku Voipio
     
  • Pull locking and atomic updates from Ingo Molnar:
    "Main changes in this cycle are:

    - Extend atomic primitives with coherent logic op primitives
    (atomic_{or,and,xor}()) and deprecate the old partial APIs
    (atomic_{set,clear}_mask())

    The old ops were incoherent with incompatible signatures across
    architectures and with incomplete support. Now every architecture
    supports the primitives consistently (by Peter Zijlstra)

    - Generic support for 'relaxed atomics':

    - _acquire/release/relaxed() flavours of xchg(), cmpxchg() and {add,sub}_return()
    - atomic_read_acquire()
    - atomic_set_release()

    This came out of porting qwrlock code to arm64 (by Will Deacon)

    - Clean up the fragile static_key APIs that were causing repeat bugs,
    by introducing a new one:

    DEFINE_STATIC_KEY_TRUE(name);
    DEFINE_STATIC_KEY_FALSE(name);

    which define a key of different types with an initial true/false
    value.

    Then allow:

    static_branch_likely()
    static_branch_unlikely()

    to take a key of either type and emit the right instruction for the
    case. To be able to know the 'type' of the static key we encode it
    in the jump entry (by Peter Zijlstra)

    - Static key self-tests (by Jason Baron)

    - qrwlock optimizations (by Waiman Long)

    - small futex enhancements (by Davidlohr Bueso)

    - ... and misc other changes"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits)
    jump_label/x86: Work around asm build bug on older/backported GCCs
    locking, ARM, atomics: Define our SMP atomics in terms of _relaxed() operations
    locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h
    locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics
    locking/qrwlock: Implement queue_write_unlock() using smp_store_release()
    locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition
    locking, asm-generic: Add _{relaxed|acquire|release}() variants for 'atomic_long_t'
    locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication
    locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic operations
    locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic
    locking/static_keys: Make verify_keys() static
    jump label, locking/static_keys: Update docs
    locking/static_keys: Provide a selftest
    jump_label: Provide a self-test
    s390/uaccess, locking/static_keys: employ static_branch_likely()
    x86, tsc, locking/static_keys: Employ static_branch_likely()
    locking/static_keys: Add selftest
    locking/static_keys: Add a new static_key interface
    locking/static_keys: Rework update logic
    locking/static_keys: Add static_key_{en,dis}able() helpers
    ...

    Linus Torvalds
     

01 Sep, 2015

2 commits

  • Pull RCU updates from Ingo Molnar:
    "The main RCU changes in this cycle are:

    - the combination of tree geometry-initialization simplifications and
    OS-jitter-reduction changes to expedited grace periods. These two
    are stacked due to the large number of conflicts that would
    otherwise result.

    - privatize smp_mb__after_unlock_lock().

    This commit moves the definition of smp_mb__after_unlock_lock() to
    kernel/rcu/tree.h, in recognition of the fact that RCU is the only
    thing using this, that nothing else is likely to use it, and that
    it is likely to go away completely.

    - documentation updates.

    - torture-test updates.

    - misc fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
    rcu,locking: Privatize smp_mb__after_unlock_lock()
    rcu: Silence lockdep false positive for expedited grace periods
    rcu: Don't disable CPU hotplug during OOM notifiers
    scripts: Make checkpatch.pl warn on expedited RCU grace periods
    rcu: Update MAINTAINERS entry
    rcu: Clarify CONFIG_RCU_EQS_DEBUG help text
    rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks()
    rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()
    rcu: Make rcu_is_watching() really notrace
    cpu: Wait for RCU grace periods concurrently
    rcu: Create a synchronize_rcu_mult()
    rcu: Fix obsolete priority-boosting comment
    rcu: Use WRITE_ONCE in RCU_INIT_POINTER
    rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT
    rcu: Add RCU-sched flavors of get-state and cond-sync
    rcu: Add fastpath bypassing funnel locking
    rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS
    rcu: Pull out wait_event*() condition into helper function
    documentation: Describe new expedited stall warnings
    rcu: Add stall warnings to synchronize_sched_expedited()
    ...

    Linus Torvalds
     
  • Pull documentation updates from Jonathan Corbet:
    "There's been a fair amount going on in the docs tree this time around,
    including:

    - Support for reproducible document builds, from Ben Hutchings and
    company.

    - The ability to automatically generate cross-reference links within
    a single DocBook book and embedded descriptions for large
    structures. From Danilo Cesar Lemes de Paula.

    - A new document on how to add a system call from David Drysdale.

    - Chameleon bus documentation from Johannes Thumshirn.

    ...plus the usual collection of improvements, typo fixes, and more"

    * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (39 commits)
    Documentation, add kernel-parameters.txt entry for dis_ucode_ldr
    Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE
    Documentation/Intel-IOMMU.txt: Modify definition of DRHD
    docs: update HOWTO for 3.x -> 4.x versioning
    kernel-doc: ignore unneeded attribute information
    scripts/kernel-doc: Adding cross-reference links to html documentation.
    DocBook: Fix non-determinstic installation of duplicate man pages
    Documentation: minor typo fix in mailbox.txt
    Documentation: describe how to add a system call
    doc: Add more workqueue functions to the documentation
    ARM: keystone: add documentation for SoCs and EVMs
    scripts/kernel-doc Allow struct arguments documentation in struct body
    SubmittingPatches: remove stray quote character
    Revert "DocBook: Avoid building man pages repeatedly and inconsistently"
    Documentation: Minor changes to men-chameleon-bus.txt
    Doc: fix trivial typo in SubmittingPatches
    MAINTAINERS: Direct Documentation/DocBook/media properly
    Documentation: installed man pages don't need to be executable
    fix Evolution submenu name in email-clients.txt
    Documentation: Add MCB documentation
    ...

    Linus Torvalds
     

31 Aug, 2015

1 commit

  • Pull char/misc driver patches from Greg KH:
    "Here's the "big" char/misc driver update for 4.3-rc1.

    Not much really interesting here, just a number of little changes all
    over the place, and some nice consolidation of the nvmem drivers to a
    common framework. As usual, the mei drivers stand out as the largest
    "churn" to handle new devices and features in their hardware.

    All have been in linux-next for a while with no issues"

    * tag 'char-misc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (136 commits)
    auxdisplay: ks0108: initialize local parport variable
    extcon: palmas: Fix build break due to devm_gpiod_get_optional API change
    extcon: palmas: Support GPIO based USB ID detection
    extcon: Fix signedness bugs about break error handling
    extcon: Drop owner assignment from i2c_driver
    extcon: arizona: Simplify pdata symantics for micd_dbtime
    extcon: arizona: Declare 3-pole jack if we detect open circuit on mic
    extcon: Add exception handling to prevent the NULL pointer access
    extcon: arizona: Ensure variables are set for headphone detection
    extcon: arizona: Use gpiod inteface to handle micd_pol_gpio gpio
    extcon: arizona: Add basic microphone detection DT/ACPI bindings
    extcon: arizona: Update to use the new device properties API
    extcon: palmas: Remove the mutually_exclusive array
    extcon: Remove optional print_state() function pointer of struct extcon_dev
    extcon: Remove duplicate header file in extcon.h
    extcon: max77843: Clear IRQ bits state before request IRQ
    toshiba laptop: replace ioremap_cache with ioremap
    misc: eeprom: max6875: clean up max6875_read()
    misc: eeprom: clean up eeprom_read()
    misc: eeprom: 93xx46: clean up eeprom_93xx46_bin_read/write
    ...

    Linus Torvalds
     

28 Aug, 2015

2 commits

  • This adds a simple perl script for reading two files as produced by
    the stackusage script and computing the changes in stack usage. For
    example:

    $ scripts/stackusage -o /tmp/old.su CC=gcc-4.7 -j8 fs/ext4/
    $ scripts/stackusage -o /tmp/new.su CC=gcc-5.0 -j8 fs/ext4/
    $ scripts/stackdelta /tmp/{old,new}.su | sort -k5,5g

    shows that gcc 5.0 generally produces less stack-hungry code than gcc
    4.7. Obviously, the script can also be used for measuring the effect
    of commits, .config tweaks or whatnot.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Michal Marek

    Rasmus Villemoes
     
  • The current checkstack.pl script has a few problems, stemming from the
    overly simplistic attempt at parsing objdump output with regular
    expressions: For example, on x86_64 it doesn't take the push
    instruction into account, making it consistently underestimate the
    real stack use, and it also doesn't capture stack pointer adjustments
    of exactly 128 bytes [1].

    Since newer gcc (>= 4.6) knows about -fstack-usage, we might as well
    take the information straight from the horse's mouth. This patch
    introduces scripts/stackusage, which is a simple wrapper for running
    make with KCFLAGS set to -fstack-usage. Example use is

    scripts/stackusage -o out.su -j8 lib/

    The script understands "-o foo" for writing to 'foo' and -h for a
    trivial help text; anything else is passed to make.

    Afterwards, we find all newly created .su files, massage them a
    little, sort by stack use and write the result to a single output
    file.

    Note that the function names printed by (at least) gcc 4.7 are
    sometimes useless. For example, the first three lines of out.su
    generated above are

    ./lib/decompress_bunzip2.c:155 get_next_block 448 static
    ./lib/decompress_unlzma.c:537 unlzma 336 static
    ./lib/vsprintf.c:616 8 304 static

    That function '8' is really the static symbol_string(), but it has
    been subject to 'interprocedural scalar replacement of aggregates', so
    its name in the object file is 'symbol_string.isra.8'. gcc 5.0 doesn't
    have this problem; it uses the full name as seen in the object file.

    [1] Since gcc encodes that by

    48 83 c4 80 add $0xffffffffffffff80,%rsp

    and not

    48 81 ec 80 00 00 00 sub $0x80,%rsp

    since -128 fits in an imm8.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Michal Marek

    Rasmus Villemoes
     

27 Aug, 2015

1 commit


26 Aug, 2015

1 commit