Skip to content

Commit

Permalink
origin
Browse files Browse the repository at this point in the history
GIT 235b84fc862ae2637dc0dabada18d97f1bfc18e1

commit 58c7ffc0747a3a9145629d4966291f0586703767
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Wed Jul 12 04:59:45 2017 +0100

    fix a braino in compat_sys_getrlimit()
    
    Reported-and-tested-by: Meelis Roos <mroos@linux.ee>
    Fixes: commit d9e968cb9f84 "getrlimit()/setrlimit(): move compat to native"
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit dd83c161fbcc5d8be637ab159c0de015cbff5ba4
Author: zhongjiang <zhongjiang@huawei.com>
Date:   Mon Jul 10 15:53:01 2017 -0700

    kernel/exit.c: avoid undefined behaviour when calling wait4()
    
    wait4(-2147483648, 0x20, 0, 0xdd0000) triggers:
    UBSAN: Undefined behaviour in kernel/exit.c:1651:9
    
    The related calltrace is as follows:
    
      negation of -2147483648 cannot be represented in type 'int':
      CPU: 9 PID: 16482 Comm: zj Tainted: G    B          ---- -------   3.10.0-327.53.58.71.x86_64+ #66
      Hardware name: Huawei Technologies Co., Ltd. Tecal RH2285          /BC11BTSA              , BIOS CTSAV036 04/27/2011
      Call Trace:
        dump_stack+0x19/0x1b
        ubsan_epilogue+0xd/0x50
        __ubsan_handle_negate_overflow+0x109/0x14e
        SyS_wait4+0x1cb/0x1e0
        system_call_fastpath+0x16/0x1b
    
    Exclude the overflow to avoid the UBSAN warning.
    
    Link: http://lkml.kernel.org/r/1497264618-20212-1-git-send-email-zhongjiang@huawei.com
    Signed-off-by: zhongjiang <zhongjiang@huawei.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Xishi Qiu <qiuxishi@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 4ea77014af0d6205b05503d1c7aac6eace11d473
Author: zhongjiang <zhongjiang@huawei.com>
Date:   Mon Jul 10 15:52:57 2017 -0700

    kernel/signal.c: avoid undefined behaviour in kill_something_info
    
    When running kill(72057458746458112, 0) in userspace I hit the following
    issue.
    
      UBSAN: Undefined behaviour in kernel/signal.c:1462:11
      negation of -2147483648 cannot be represented in type 'int':
      CPU: 226 PID: 9849 Comm: test Tainted: G    B          ---- -------   3.10.0-327.53.58.70.x86_64_ubsan+ #116
      Hardware name: Huawei Technologies Co., Ltd. RH8100 V3/BC61PBIA, BIOS BLHSV028 11/11/2014
      Call Trace:
        dump_stack+0x19/0x1b
        ubsan_epilogue+0xd/0x50
        __ubsan_handle_negate_overflow+0x109/0x14e
        SYSC_kill+0x43e/0x4d0
        SyS_kill+0xe/0x10
        system_call_fastpath+0x16/0x1b
    
    Add code to avoid the UBSAN detection.
    
    [akpm@linux-foundation.org: tweak comment]
    Link: http://lkml.kernel.org/r/1496670008-59084-1-git-send-email-zhongjiang@huawei.com
    Signed-off-by: zhongjiang <zhongjiang@huawei.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Xishi Qiu <qiuxishi@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 67c6777a5d331dda32a4c4a1bf0cac85bdaaaed8
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:54 2017 -0700

    binfmt_elf: safely increment argv pointers
    
    When building the argv/envp pointers, the envp is needlessly
    pre-incremented instead of just continuing after the argv pointers are
    finished.  In some (likely impossible) race where the strings could be
    changed from userspace between copy_strings() and here, it might be
    possible to confuse the envp position.  Instead, just use sp like
    everything else.
    
    Link: http://lkml.kernel.org/r/20170622173838.GA43308@beast
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Daniel Micay <danielmicay@gmail.com>
    Cc: Qualys Security Advisory <qsa@qualys.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Grzegorz Andrejczuk <grzegorz.andrejczuk@intel.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a73dc5370e153ac63718d850bddf0c9aa9d871e6
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:51 2017 -0700

    s390: reduce ELF_ET_DYN_BASE
    
    Now that explicitly executed loaders are loaded in the mmap region, we
    have more freedom to decide where we position PIE binaries in the
    address space to avoid possible collisions with mmap or stack regions.
    
    For 64-bit, align to 4GB to allow runtimes to use the entire 32-bit
    address space for 32-bit pointers.  On 32-bit use 4MB, which is the
    traditional x86 minimum load location, likely to avoid historically
    requiring a 4MB page table entry when only a portion of the first 4MB
    would be used (since the NULL address is avoided).  For s390 the
    position could be 0x10000, but that is needlessly close to the NULL
    address.
    
    Link: http://lkml.kernel.org/r/1498154792-49952-5-git-send-email-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Pratyush Anand <panand@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 47ebb09d54856500c5a5e14824781902b3bb738e
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:47 2017 -0700

    powerpc: move ELF_ET_DYN_BASE to 4GB / 4MB
    
    Now that explicitly executed loaders are loaded in the mmap region, we
    have more freedom to decide where we position PIE binaries in the
    address space to avoid possible collisions with mmap or stack regions.
    
    For 64-bit, align to 4GB to allow runtimes to use the entire 32-bit
    address space for 32-bit pointers.  On 32-bit use 4MB, which is the
    traditional x86 minimum load location, likely to avoid historically
    requiring a 4MB page table entry when only a portion of the first 4MB
    would be used (since the NULL address is avoided).
    
    Link: http://lkml.kernel.org/r/1498154792-49952-4-git-send-email-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Tested-by: Michael Ellerman <mpe@ellerman.id.au>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Pratyush Anand <panand@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 02445990a96e60a67526510d8b00f7e3d14101c3
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:44 2017 -0700

    arm64: move ELF_ET_DYN_BASE to 4GB / 4MB
    
    Now that explicitly executed loaders are loaded in the mmap region, we
    have more freedom to decide where we position PIE binaries in the
    address space to avoid possible collisions with mmap or stack regions.
    
    For 64-bit, align to 4GB to allow runtimes to use the entire 32-bit
    address space for 32-bit pointers.  On 32-bit use 4MB, to match ARM.
    This could be 0x8000, the standard ET_EXEC load address, but that is
    needlessly close to the NULL address, and anyone running arm compat PIE
    will have an MMU, so the tight mapping is not needed.
    
    Link: http://lkml.kernel.org/r/1498251600-132458-4-git-send-email-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 6a9af90a3bcde217a1c053e135f5f43e5d5fafbd
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:40 2017 -0700

    arm: move ELF_ET_DYN_BASE to 4MB
    
    Now that explicitly executed loaders are loaded in the mmap region, we
    have more freedom to decide where we position PIE binaries in the
    address space to avoid possible collisions with mmap or stack regions.
    
    4MB is chosen here mainly to have parity with x86, where this is the
    traditional minimum load location, likely to avoid historically
    requiring a 4MB page table entry when only a portion of the first 4MB
    would be used (since the NULL address is avoided).
    
    For ARM the position could be 0x8000, the standard ET_EXEC load address,
    but that is needlessly close to the NULL address, and anyone running PIE
    on 32-bit ARM will have an MMU, so the tight mapping is not needed.
    
    Link: http://lkml.kernel.org/r/1498154792-49952-2-git-send-email-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Pratyush Anand <panand@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Daniel Micay <danielmicay@gmail.com>
    Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
    Cc: Grzegorz Andrejczuk <grzegorz.andrejczuk@intel.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Qualys Security Advisory <qsa@qualys.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit eab09532d40090698b05a07c1c87f39fdbc5fab5
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Jul 10 15:52:37 2017 -0700

    binfmt_elf: use ELF_ET_DYN_BASE only for PIE
    
    The ELF_ET_DYN_BASE position was originally intended to keep loaders
    away from ET_EXEC binaries.  (For example, running "/lib/ld-linux.so.2
    /bin/cat" might cause the subsequent load of /bin/cat into where the
    loader had been loaded.)
    
    With the advent of PIE (ET_DYN binaries with an INTERP Program Header),
    ELF_ET_DYN_BASE continued to be used since the kernel was only looking
    at ET_DYN.  However, since ELF_ET_DYN_BASE is traditionally set at the
    top 1/3rd of the TASK_SIZE, a substantial portion of the address space
    is unused.
    
    For 32-bit tasks when RLIMIT_STACK is set to RLIM_INFINITY, programs are
    loaded above the mmap region.  This means they can be made to collide
    (CVE-2017-1000370) or nearly collide (CVE-2017-1000371) with
    pathological stack regions.
    
    Lowering ELF_ET_DYN_BASE solves both by moving programs below the mmap
    region in all cases, and will now additionally avoid programs falling
    back to the mmap region by enforcing MAP_FIXED for program loads (i.e.
    if it would have collided with the stack, now it will fail to load
    instead of falling back to the mmap region).
    
    To allow for a lower ELF_ET_DYN_BASE, loaders (ET_DYN without INTERP)
    are loaded into the mmap region, leaving space available for either an
    ET_EXEC binary with a fixed location or PIE being loaded into mmap by
    the loader.  Only PIE programs are loaded offset from ELF_ET_DYN_BASE,
    which means architectures can now safely lower their values without risk
    of loaders colliding with their subsequently loaded programs.
    
    For 64-bit, ELF_ET_DYN_BASE is best set to 4GB to allow runtimes to use
    the entire 32-bit address space for 32-bit pointers.
    
    Thanks to PaX Team, Daniel Micay, and Rik van Riel for inspiration and
    suggestions on how to implement this solution.
    
    Fixes: d1fd836dcf00 ("mm: split ET_DYN ASLR from mmap ASLR")
    Link: http://lkml.kernel.org/r/20170621173201.GA114489@beast
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Acked-by: Rik van Riel <riel@redhat.com>
    Cc: Daniel Micay <danielmicay@gmail.com>
    Cc: Qualys Security Advisory <qsa@qualys.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Grzegorz Andrejczuk <grzegorz.andrejczuk@intel.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Pratyush Anand <panand@redhat.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c257a340ede0104e902807f0f001799850343ae9
Author: David Rientjes <rientjes@google.com>
Date:   Mon Jul 10 15:52:33 2017 -0700

    fs, epoll: short circuit fetching events if thread has been killed
    
    We've encountered zombies that are waiting for a thread to exit that are
    looping in ep_poll() almost endlessly although there is a pending
    SIGKILL as a result of a group exit.
    
    This happens because we always find ep_events_available() and fetch more
    events and never are able to check for signal_pending() that would break
    from the loop and return -EINTR.
    
    Special case fatal signals and break immediately to guarantee that we
    loop to fetch more events and delay making a timely exit.
    
    It would also be possible to simply move the check for signal_pending()
    higher than checking for ep_events_available(), but there have been no
    reports of delayed signal handling other than SIGKILL preventing zombies
    from exiting that would be fixed by this.
    
    It fixes an issue for us where we have witnessed zombies sticking around
    for at least O(minutes), but considering the code has been like this
    forever and nobody else has complained that I have found, I would simply
    queue it up for 4.12.
    
    Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1705031722350.76784@chino.kir.corp.google.com
    Signed-off-by: David Rientjes <rientjes@google.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Davide Libenzi <davidel@xmailserver.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit fd71f6326844efac98d99c0c34e7ca7419506b15
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:30 2017 -0700

    checkpatch: improve multi-line alignment test
    
    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 <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 7fe528a27dee5fcab3bc093ee6f311080f799e29
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:27 2017 -0700

    checkpatch: improve macro reuse test
    
    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 <joe@perches.com>
    Reported-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 737c0767758bbd65cf95c44ccc09bca970e2ef8e
Author: John Brooks <john@fastquake.com>
Date:   Mon Jul 10 15:52:24 2017 -0700

    checkpatch: change format of --color argument to --color[=WHEN]
    
    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 <john@fastquake.com>
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 8d81ae05d0176da1c54aeaed697fa34be5c5575e
Author: Cyril Bur <cyrilbur@gmail.com>
Date:   Mon Jul 10 15:52:21 2017 -0700

    checkpatch: silence perl 5.26.0 unescaped left brace warnings
    
    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 <-- HERE in m/^(.\s*){
    <-- HERE \s*/ at scripts/checkpatch.pl line 3544.
    
    Unescaped left brace in regex is deprecated here (and will be fatal in
    Perl 5.30), passed through in regex; marked by <-- HERE in m/^(.\s*){
    <-- HERE \s*/ at scripts/checkpatch.pl line 3885.
    
    Unescaped left brace in regex is deprecated here (and will be fatal in
    Perl 5.30), passed through in regex; marked by <-- HERE in
    m/^(\+.*(?:do|\))){ <-- HERE / at scripts/checkpatch.pl line 4374.
    
    It seems perfectly reasonable to do as the warning suggests and simply
    escape the left brace in these three locations.
    
    Link: http://lkml.kernel.org/r/20170607060135.17384-1-cyrilbur@gmail.com
    Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
    Acked-by: Joe Perches <joe@perches.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a0ad75964e58cd7d9b6910e2bbb8a7e8656c0f51
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:19 2017 -0700

    checkpatch: improve tests for multiple line function definitions
    
    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 <joe@perches.com>
    Tested-by: David Kershner <david.kershner@unisys.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 948b133a1b62441bd2ae98b866f409017191fdd3
Author: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date:   Mon Jul 10 15:52:16 2017 -0700

    checkpatch: remove false warning for commit reference
    
    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 <xypron.glpk@gmx.de>
    Acked-by: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit ca8198640fa9aeea71ae61b02fee6ee5e097f243
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:13 2017 -0700

    checkpatch: fix stepping through statements with $stat and ctx_statement_block
    
    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 <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit fe658f94b2c911729afbffeeb1f5f03f0a26d9e6
Author: Steffen Maier <maier@linux.vnet.ibm.com>
Date:   Mon Jul 10 15:52:10 2017 -0700

    checkpatch: [HLP]LIST_HEAD is also declaration
    
    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 <maier@linux.vnet.ibm.com>
    Acked-by: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 628f91a28649d063a048629d9d15b3e5c4dcaa37
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:07 2017 -0700

    checkpatch: warn when a MAINTAINERS entry isn't [A-Z]:\t
    
    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 <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit fb0d0e088e194e7d966c9a1b3c58900664e5d7db
Author: Joe Perches <joe@perches.com>
Date:   Mon Jul 10 15:52:04 2017 -0700

    checkpatch: improve the unnecessary OOM message test
    
    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 <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 166a0f780a8fdb67f232c85e9905ba84f7247da9
Author: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Date:   Mon Jul 10 15:52:01 2017 -0700

    lib/bsearch.c: micro-optimize pivot position calculation
    
    There is a slightly faster way (in terms of the number of instructions
    being used) to calculate the position of a middle element, preserving
    integer overflow safeness.
    
    ./scripts/bloat-o-meter lib/bsearch.o.old lib/bsearch.o.new
    add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-24 (-24)
    function                                     old     new   delta
    bsearch                                      122      98     -24
    
    TEST
    
    INT array of size 100001, elements [0..100000]. gcc 7.1, Os, x86_64.
    
    a) bsearch() of existing key "100001 - 2":
    
    BASE
    ====
    
    $ perf stat ./a.out
    
     Performance counter stats for './a.out':
    
            619.445196      task-clock:u (msec)       #    0.999 CPUs utilized
                     0      context-switches:u        #    0.000 K/sec
                     0      cpu-migrations:u          #    0.000 K/sec
                   133      page-faults:u             #    0.215 K/sec
         1,949,517,279      cycles:u                  #    3.147 GHz                      (83.06%)
           181,017,938      stalled-cycles-frontend:u #    9.29% frontend cycles idle     (83.05%)
            82,959,265      stalled-cycles-backend:u  #    4.26% backend cycles idle      (67.02%)
         4,355,706,383      instructions:u            #    2.23  insn per cycle
                                                      #    0.04  stalled cycles per insn  (83.54%)
         1,051,539,242      branches:u                # 1697.550 M/sec                    (83.54%)
            15,263,381      branch-misses:u           #    1.45% of all branches          (83.43%)
    
           0.620082548 seconds time elapsed
    
    PATCHED
    =======
    
    $ perf stat ./a.out
    
     Performance counter stats for './a.out':
    
            475.097316      task-clock:u (msec)       #    0.999 CPUs utilized
                     0      context-switches:u        #    0.000 K/sec
                     0      cpu-migrations:u          #    0.000 K/sec
                   135      page-faults:u             #    0.284 K/sec
         1,487,467,717      cycles:u                  #    3.131 GHz                      (82.95%)
           186,537,162      stalled-cycles-frontend:u #   12.54% frontend cycles idle     (82.93%)
            28,797,869      stalled-cycles-backend:u  #    1.94% backend cycles idle      (67.10%)
         3,807,564,203      instructions:u            #    2.56  insn per cycle
                                                      #    0.05  stalled cycles per insn  (83.57%)
         1,049,344,291      branches:u                # 2208.693 M/sec                    (83.60%)
                 5,485      branch-misses:u           #    0.00% of all branches          (83.58%)
    
           0.475760235 seconds time elapsed
    
    b) bsearch() of un-existing key "100001 + 2":
    
    BASE
    ====
    
    $ perf stat ./a.out
    
     Performance counter stats for './a.out':
    
            499.244480      task-clock:u (msec)       #    0.999 CPUs utilized
                     0      context-switches:u        #    0.000 K/sec
                     0      cpu-migrations:u          #    0.000 K/sec
                   132      page-faults:u             #    0.264 K/sec
         1,571,194,855      cycles:u                  #    3.147 GHz                      (83.18%)
            13,450,980      stalled-cycles-frontend:u #    0.86% frontend cycles idle     (83.18%)
            21,256,072      stalled-cycles-backend:u  #    1.35% backend cycles idle      (66.78%)
         4,171,197,909      instructions:u            #    2.65  insn per cycle
                                                      #    0.01  stalled cycles per insn  (83.68%)
         1,009,175,281      branches:u                # 2021.405 M/sec                    (83.79%)
                 3,122      branch-misses:u           #    0.00% of all branches          (83.37%)
    
           0.499871144 seconds time elapsed
    
    PATCHED
    =======
    
    $ perf stat ./a.out
    
     Performance counter stats for './a.out':
    
            399.023499      task-clock:u (msec)       #    0.998 CPUs utilized
                     0      context-switches:u        #    0.000 K/sec
                     0      cpu-migrations:u          #    0.000 K/sec
                   134      page-faults:u             #    0.336 K/sec
         1,245,793,991      cycles:u                  #    3.122 GHz                      (83.39%)
            11,529,273      stalled-cycles-frontend:u #    0.93% frontend cycles idle     (83.46%)
            12,116,311      stalled-cycles-backend:u  #    0.97% backend cycles idle      (66.92%)
         3,679,710,005      instructions:u            #    2.95  insn per cycle
                                                      #    0.00  stalled cycles per insn  (83.47%)
         1,009,792,625      branches:u                # 2530.660 M/sec                    (83.46%)
                 2,590      branch-misses:u           #    0.00% of all branches          (83.12%)
    
           0.399733539 seconds time elapsed
    
    Link: http://lkml.kernel.org/r/20170607150457.5905-1-sergey.senozhatsky@gmail.com
    Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a94c33dd1f677d16c4f1a162b4b3e9eba1b07c24
Author: Thomas Meyer <thomas@m3y3r.de>
Date:   Mon Jul 10 15:51:58 2017 -0700

    lib/extable.c: use bsearch() library function in search_extable()
    
    [thomas@m3y3r.de: v3: fix arch specific implementations]
      Link: http://lkml.kernel.org/r/1497890858.12931.7.camel@m3y3r.de
    Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 12e8fd6fd380261fd200d2e8f7a519ade73ea05b
Author: Michal Hocko <mhocko@suse.com>
Date:   Mon Jul 10 15:51:55 2017 -0700

    lib/rhashtable.c: use kvzalloc() in bucket_table_alloc() when possible
    
    bucket_table_alloc() can be currently called with GFP_KERNEL or
    GFP_ATOMIC.  For the former we basically have an open coded kvzalloc()
    while the later only uses kzalloc().  Let's simplify the code a bit by
    the dropping the open coded path and replace it with kvzalloc().
    
    Link: http://lkml.kernel.org/r/20170531155145.17111-3-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Cc: Thomas Graf <tgraf@suug.ch>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c46ecce431ebe6b1a9551d1f530eb432dae5c39b
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Mon Jul 10 15:51:52 2017 -0700

    lib/interval_tree_test.c: allow full tree search
    
    ...  such that a user can specify visiting all the nodes in the tree
    (intersects with the world).  This is a nice opposite from the very
    basic default query which is a single point.
    
    Link: http://lkml.kernel.org/r/20170518174936.20265-5-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a8ec14d4f6aa8e245efacc992c8ee6ea0464ce2a
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Mon Jul 10 15:51:49 2017 -0700

    lib/interval_tree_test.c: allow users to limit scope of endpoint
    
    Add a 'max_endpoint' parameter such that users may easily limit the size
    of the intervals that are randomly generated.
    
    Link: http://lkml.kernel.org/r/20170518174936.20265-4-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Mon Jul 10 15:51:46 2017 -0700

    lib/interval_tree_test.c: make test options module parameters
    
    Allows for more flexible debugging.
    
    Link: http://lkml.kernel.org/r/20170518174936.20265-3-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 0f789b67647205b77dee56fcc27a7d8de3fcd52e
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Mon Jul 10 15:51:43 2017 -0700

    lib/interval_tree_test.c: allow the module to be compiled-in
    
    Patch series "lib/interval_tree_test: some debugging improvements".
    
    Here are some patches that update the interval_tree_test module allowing
    users to pass finer grained options to run the actual test.
    
    This patch (of 4):
    
    It is a tristate after all, and also serves well for quick debugging.
    
    Link: http://lkml.kernel.org/r/20170518174936.20265-2-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit be5f3c7774a158c5bd08de22d54b0612f954dfa8
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Mon Jul 10 15:51:41 2017 -0700

    lib/kstrtox.c: use "unsigned int" more
    
    gcc does generates stupid code sign extending data back and forth.  Help
    by using "unsigned int".
    
            add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-61 (-61)
            function                                     old     new   delta
            _parse_integer                               128     123      -5
    
    It _still_ does generate useless MOVSX but I don't know how to delete it:
    
    0000000000000070 <_parse_integer>:
                            ...
      a0:   89 c2                   mov    edx,eax
      a2:   83 e8 30                sub    eax,0x30
      a5:   83 f8 09                cmp    eax,0x9
      a8:   76 11                   jbe    bb <_parse_integer+0x4b>
      aa:   83 ca 20                or     edx,0x20
      ad:   0f be c2      ===>      movsx  eax,dl         <===
                            useless
      b0:   8d 50 9f                lea    edx,[rax-0x61]
      b3:   83 fa 05                cmp    edx,0x5
    
    Patch also helps on embedded archs which generally only like "int".  On
    arm "and 0xff" is generated which is waste because all values used in
    comparisons are positive.
    
    Link: http://lkml.kernel.org/r/20170514194720.GB32563@avx2
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 512750ef8b06290a55d749239f956f9c21d7daca
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Mon Jul 10 15:51:38 2017 -0700

    lib/kstrtox.c: delete end-of-string test
    
    Standard "while (*s)" test is unnecessary because NUL won't pass
    valid-digit test anyway.  Save one branch per parsed character.
    
    Link: http://lkml.kernel.org/r/20170514193756.GA32563@avx2
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 2c6deb01525ac11cc03c44fe31e3f45ce2cadaf9
Author: Matthew Wilcox <mawilcox@microsoft.com>
Date:   Mon Jul 10 15:51:35 2017 -0700

    bitmap: use memcmp optimisation in more situations
    
    Commit 7dd968163f7c ("bitmap: bitmap_equal memcmp optimization") was
    rather more restrictive than necessary; we can use memcmp() to implement
    bitmap_equal() as long as the number of bits can be proved to be a
    multiple of 8.  And architectures other than s390 may be able to make
    good use of this optimisation.
    
    [arnd@arndb.de: fix build: add a memcmp() declaration]
      Link: http://lkml.kernel.org/r/20170630153908.3439707-1-arnd@arndb.de
    Link: http://lkml.kernel.org/r/20170628153221.11322-5-willy@infradead.org
    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 2a98dc028f911a7c59c87d11d4eed6626be1605b
Author: Matthew Wilcox <mawilcox@microsoft.com>
Date:   Mon Jul 10 15:51:32 2017 -0700

    include/linux/bitmap.h: turn bitmap_set and bitmap_clear into memset when possible
    
    Several callers have constant 'start' and an 'nbits' that is a multiple
    of 8, so we can turn them into calls to memset.  We don't need the
    entirety of 'start' and 'nbits' to be constant, we just need to know
    whether they're divisible by 8.
    
    Link: http://lkml.kernel.org/r/20170628153221.11322-4-willy@infradead.org
    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit e5af323c9badd5dc09af7ccf9d45616ebffc623c
Author: Matthew Wilcox <mawilcox@microsoft.com>
Date:   Mon Jul 10 15:51:29 2017 -0700

    bitmap: optimise bitmap_set and bitmap_clear of a single bit
    
    We have eight users calling bitmap_clear for a single bit and seventeen
    calling bitmap_set for a single bit.  Rather than fix all of them to
    call __clear_bit or __set_bit, turn bitmap_clear and bitmap_set into
    inline functions and make this special case efficient.
    
    Link: http://lkml.kernel.org/r/20170628153221.11322-3-willy@infradead.org
    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3cc78125a081bb79eb38f3e9a585e5a81bb81cb1
Author: Matthew Wilcox <mawilcox@microsoft.com>
Date:   Mon Jul 10 15:51:26 2017 -0700

    lib/test_bitmap.c: add optimisation tests
    
    Patch series "Bitmap optimisations", v2.
    
    These three bitmap patches use more efficient specialisations when the
    compiler can figure out that it's safe to do so.  Thanks to Rasmus's
    eagle eyes, a nasty bug in v1 was avoided, and I've added a test case
    which would have caught it.
    
    This patch (of 4):
    
    This version of the test is actually a no-op; the next patch will enable
    it.
    
    Link: http://lkml.kernel.org/r/20170628153221.11322-2-willy@infradead.org
    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit b689d4a72fae7a8c4f4d097ef2f6e56643933bfd
Author: Luis R. Rodriguez <mcgrof@kernel.org>
Date:   Mon Jul 10 15:51:23 2017 -0700

    MAINTAINERS: give proc sysctl some maintainer love
    
    We poke at proc sysctl enough that really we should declare it
    maintained.  We'll just be Cc'd and sending updates / ACK'ing changes
    through akpm's tree.
    
    Link: http://lkml.kernel.org/r/20170524231305.8649-1-mcgrof@kernel.org
    Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 63b23e2cbc8e80de3e40184ecb2c3bfb705776fa
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Mon Jul 10 15:51:20 2017 -0700

    kernel/kallsyms.c: replace all_var with IS_ENABLED(CONFIG_KALLSYMS_ALL)
    
    'all_var' looks like a variable, but is actually a macro.  Use
    IS_ENABLED(CONFIG_KALLSYMS_ALL) for clarification.
    
    Link: http://lkml.kernel.org/r/1497577591-3434-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit b7b2562f7252878e18de60c24f320052076f9de8
Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date:   Mon Jul 10 15:51:17 2017 -0700

    kernel/groups.c: use sort library function
    
    setgroups is not exactly a hot path, so we might as well use the library
    function instead of open-coding the sorting.  Saves ~150 bytes.
    
    Link: http://lkml.kernel.org/r/1497301378-22739-1-git-send-email-linux@rasmusvillemoes.dk
    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Matthew Wilcox <mawilcox@microsoft.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 9dcdcea11491f6eee65bd1b352293ca01e4b7997
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date:   Mon Jul 10 15:51:14 2017 -0700

    kernel/ksysfs.c: constify attribute_group structures.
    
    attribute_groups are not supposed to change at runtime.  All functions
    working with attribute_groups provided by <linux/sysfs.h> work with
    const attribute_group.  So mark the non-const structs as const.
    
    File size before:
       text    data     bss     dec     hex filename
       1120     544      16    1680     690 kernel/ksysfs.o
    
    File size After adding 'const':
       text    data     bss     dec     hex filename
       1160     480      16    1656     678 kernel/ksysfs.o
    
    Link: http://lkml.kernel.org/r/aa224b3cc923fdbb3edd0c41b2c639c85408c9e8.1498737347.git.arvind.yadav.cs@gmail.com
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
    Cc: Petr Tesarik <ptesarik@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 287f3ca563d8ba0ede4ac0cec84218a1ea5e848f
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Mon Jul 10 15:51:10 2017 -0700

    ARM: fix rd_size declaration
    
    The global variable 'rd_size' is declared as 'int' in source file
    arch/arm/kernel/atags_parse.c and as 'unsigned long' in
    drivers/block/brd.c.  Fix this inconsistency.
    
    Additionally, remove the declarations of rd_image_start, rd_prompt and
    rd_doload from parse_tag_ramdisk() since these duplicate existing
    declarations in <linux/initrd.h>.
    
    Link: http://lkml.kernel.org/r/20170627065024.12347-1-bart.vanassche@wdc.com
    Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Jason Yan <yanaijie@huawei.com>
    Cc: Zhaohongjiang <zhaohongjiang@huawei.com>
    Cc: Miao Xie <miaoxie@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit bc6245e5efd70c41eaf9334b1b5e646745cb0fb3
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 10 15:51:07 2017 -0700

    bug: split BUILD_BUG stuff out into <linux/build_bug.h>
    
    Including <linux/bug.h> pulls in a lot of bloat from <asm/bug.h> and
    <asm-generic/bug.h> that is not needed to call the BUILD_BUG() family of
    macros.  Split them out into their own header, <linux/build_bug.h>.
    
    Also correct some checkpatch.pl errors for the BUILD_BUG_ON_ZERO() and
    BUILD_BUG_ON_NULL() macros by adding parentheses around the bitfield
    widths that begin with a minus sign.
    
    Link: http://lkml.kernel.org/r/20170525120316.24473-6-abbotti@mev.co.uk
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 47e81e59d98b90727a02ceb486407eeed5eb8727
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 10 15:51:04 2017 -0700

    linux/bug.h: correct "space required before that '-'"
    
    Correct these checkpatch.pl errors:
    
    |ERROR: space required before that '-' (ctx:OxO)
    |#37: FILE: include/linux/bug.h:37:
    |+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
    
    |ERROR: space required before that '-' (ctx:OxO)
    |#38: FILE: include/linux/bug.h:38:
    |+#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
    
    I decided to wrap the bitfield expressions that begin with minus signs
    in parentheses rather than insert spaces before the minus signs.
    
    Link: http://lkml.kernel.org/r/20170525120316.24473-5-abbotti@mev.co.uk
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 8cdd7cca9287abf4c849c01e2a4e8207ad3e3a82
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 10 15:51:01 2017 -0700

    linux/bug.h: correct "(foo*)" should be "(foo *)"
    
    Correct this checkpatch.pl error:
    
    |ERROR: "(foo*)" should be "(foo *)"
    |#19: FILE: include/linux/bug.h:19:
    |+#define BUILD_BUG_ON_NULL(e) ((void*)0)
    
    Link: http://lkml.kernel.org/r/20170525120316.24473-4-abbotti@mev.co.uk
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit e9d5a48499391fe5b0615610858665ba8149e255
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 10 15:50:58 2017 -0700

    linux/bug.h: correct formatting of block comment
    
    Correct these checkpatch.pl warnings:
    
    |WARNING: Block comments use * on subsequent lines
    |#34: FILE: include/linux/bug.h:34:
    |+/* Force a compilation error if condition is true, but also produce a
    |+   result (of value 0 and type size_t), so the expression can be used
    
    |WARNING: Block comments use a trailing */ on a separate line
    |#36: FILE: include/linux/bug.h:36:
    |+   aren't permitted). */
    
    Link: http://lkml.kernel.org/r/20170525120316.24473-3-abbotti@mev.co.uk
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 0b396923ee9bdcb4a208df2148712b79b6dee73e
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 10 15:50:55 2017 -0700

    asm-generic/bug.h: declare struct pt_regs; before function prototype
    
    This series of patches splits BUILD_BUG related macros out of
    "include/linux/bug.h" into new file "include/linux/build_bug.h" (patch
    5), and changes the pointer type checking in the `container_of()` macro
    to deal with pointers of array type better (patch 6).  Patches 1 to 4
    are prerequisites.
    
    Patches 2, 3, 4, and 5 have been inserted since the previous version of
    this patch series.  Patch 6 here corresponds to v3 and v4's patch 2.
    
    Patch 1 was a prerequisite in v3 of this series to avoid a lot of
    warnings when <linux/bug.h> was included by <linux/kernel.h>.  That is
    no longer relevant for v5 of the series, but I left it in because it was
    acked by a Arnd Bergmann and Michal Nazarewicz.
    
    Patches 2, 3, and 4 are some checkpatch clean-ups on
    "include/linux/bug.h" before splitting out the BUILD_BUG stuff in patch
    5.
    
    Patch 5 splits the BUILD_BUG related macros out of "include/linux/bug.h"
    into new file "include/linux/build_bug.h" because including
    <linux/bug.h> in "include/linux/kernel.h" would result in build failures
    due to circular dependencies.
    
    Patch 6 changes the pointer type checking by `container_of()` to avoid
    some incompatible pointer warnings when the dereferenced pointer has
    array type.
    
    1) asm-generic/bug.h: declare struct pt_regs; before function prototype
    2) linux/bug.h: correct formatting of block comment
    3) linux/bug.h: correct "(foo*)" should be "(foo *)"
    4) linux/bug.h: correct "space required before that '-'"
    5) bug: split BUILD_BUG stuff out into <linux/build_bug.h>
    6) kernel.h: handle pointers to arrays better in container_of()
    
    This patch (of 6):
    
    The declaration of `__warn()` has `struct pt_regs *regs` as one of its
    parameters.  This can result in compiler warnings if `struct regs` is not
    already declared.  Add an empty declaration of `struct pt_regs` to avoid
    the warnings.
    
    Link: http://lkml.kernel.org/r/20170525120316.24473-2-abbotti@mev.co.uk
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Michal Nazarewicz <mina86@mina86.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Kees Cook <keescook@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit cde1b69389772ca8855fabdfe5d9ae9ba1d7d33a
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Mon Jul 10 15:50:52 2017 -0700

    fs/proc/generic.c: switch to ida_simple_get/remove
    
    The code can be much simplified by switching to ida_simple_get/remove.
    
    Link: http://lkml.kernel.org/r/8d1cc9f7-5115-c9dc-028e-c0770b6bfe1f@gmail.com
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit b6d0f14abb7c1d9d522c064633c820aaeb9bbfbf
Author: Will Deacon <will.deacon@arm.com>
Date:   Mon Jul 10 15:50:49 2017 -0700

    frv: cmpxchg: implement cmpxchg64()
    
    FRV supports 64-bit cmpxchg, which is provided by the arch code as
    __cmpxchg_64 and subsequently used to implement atomic64_cmpxchg.
    
    This patch hooks up the generic cmpxchg64 API using the same function,
    which also provides default definitions of the relaxed, acquire and
    release variants.  This fixes the build when COMPILE_TEST=y and
    IOMMU_IO_PGTABLE_LPAE=y.
    
    Link: http://lkml.kernel.org/r/1499084670-6996-1-git-send-email-will.deacon@arm.com
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 31b7fb448c2bda757f3386c3eb50c2718bf6d776
Author: Tobias Klauser <tklauser@distanz.ch>
Date:   Mon Jul 10 15:50:46 2017 -0700

    frv: use generic fb.h
    
    The arch uses a verbatim copy of the asm-generic version and does not
    add any own implementations to the header, so use asm-generic/fb.h
    instead of duplicating code.
    
    Link: http://lkml.kernel.org/r/20170517083307.1697-1-tklauser@distanz.ch
    Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
    Reviewed-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a371e2fa3ab993c915eaa713333d8981823dffe8
Author: Tobias Klauser <tklauser@distanz.ch>
Date:   Mon Jul 10 15:50:43 2017 -0700

    frv: remove wrapper header for asm/device.h
    
    frv's asm/device.h is merely including asm-generic/device.h.  Thus, the
    arch specific header can be omitted and the generic header can be used
    directly.
    
    Link: http://lkml.kernel.org/r/20170517124915.26904-1-tklauser@distanz.ch
    Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
    Reviewed-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 822d5ec25884b4e4436c819d03035fc0dd689309
Author: Colin Ian King <colin.king@canonical.com>
Date:   Mon Jul 10 15:50:40 2017 -0700

    kasan: make get_wild_bug_type() static
    
    The helper function get_wild_bug_type() does not need to be in global
    scope, so make it static.
    
    Cleans up sparse warning:
    
      "symbol 'get_wild_bug_type' was not declared. Should it be static?"
    
    Link: http://lkml.kernel.org/r/20170622090049.10658-1-colin.king@canonical.com
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Alexander Potapenko <glider@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit f5bd62cd44119a11a30976f6a97f4aab2c35a097
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Mon Jul 10 15:50:37 2017 -0700

    mm/kasan/kasan.c: rename XXX_is_zero to XXX_is_nonzero
    
    They return positive value, that is, true, if non-zero value is found.
    Rename them to reduce confusion.
    
    Link: http://lkml.kernel.org/r/20170516012350.GA16015@js1304-desktop
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit fa69b5989bb0031efa96f2f4ff49caf6532a0970
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Mon Jul 10 15:50:34 2017 -0700

    mm/kasan: add support for memory hotplug
    
    KASAN doesn't happen work with memory hotplug because hotplugged memory
    doesn't have any shadow memory.  So any access to hotplugged memory
    would cause a crash on shadow check.
    
    Use memory hotplug notifier to allocate and map shadow memory when the
    hotplugged memory is going online and free shadow after the memory
    offlined.
    
    Link: http://lkml.kernel.org/r/20170601162338.23540-4-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3f9ec80f7b22ec46272a32408c5cd91ae2f8c4c0
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Mon Jul 10 15:50:31 2017 -0700

    arm64/kasan: don't allocate extra shadow memory
    
    We used to read several bytes of the shadow memory in advance.
    Therefore additional shadow memory mapped to prevent crash if
    speculative load would happen near the end of the mapped shadow memory.
    
    Now we don't have such speculative loads, so we no longer need to map
    additional shadow memory.
    
    Link: http://lkml.kernel.org/r/20170601162338.23540-3-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 4d461333f144456b80d9eabd7cee7ac02fa5d0ee
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Mon Jul 10 15:50:27 2017 -0700

    x86/kasan: don't allocate extra shadow memory
    
    We used to read several bytes of the shadow memory in advance.
    Therefore additional shadow memory mapped to prevent crash if
    speculative load would happen near the end of the mapped shadow memory.
    
    Now we don't have such speculative loads, so we no longer need to map
    additional shadow memory.
    
    Link: http://lkml.kernel.org/r/20170601162338.23540-2-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c634d807d98e3e7def43e72d28528c84c612ab98
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Mon Jul 10 15:50:24 2017 -0700

    mm/kasan: get rid of speculative shadow checks
    
    For some unaligned memory accesses we have to check additional byte of
    the shadow memory.  Currently we load that byte speculatively to have
    only single load + branch on the optimistic fast path.
    
    However, this approach has some downsides:
    
     - It's unaligned access, so this prevents porting KASAN on
       architectures which doesn't support unaligned accesses.
    
     - We have to map additional shadow page to prevent crash if speculative
       load happens near the end of the mapped memory. This would
       significantly complicate upcoming memory hotplug support.
    
    I wasn't able to notice any performance degradation with this patch.  So
    these speculative loads is just a pain with no gain, let's remove them.
    
    Link: http://lkml.kernel.org/r/20170601162338.23540-1-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 458f7920f9b1e6c313944d498c440f8599b8a136
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Mon Jul 10 15:50:21 2017 -0700

    mm/kasan/kasan_init.c: use kasan_zero_pud for p4d table
    
    There is missing optimization in zero_p4d_populate() that can save some
    memory when mapping zero shadow.  Implement it like as others.
    
    Link: http://lkml.kernel.org/r/1494829255-23946-1-git-send-email-iamjoonsoo.kim@lge.com
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit cf8e0fedf0784ef4bc1889380b09eda295e3d109
Author: Jerome Marchand <jmarchan@redhat.com>
Date:   Mon Jul 10 15:50:18 2017 -0700

    mm/zsmalloc: simplify zs_max_alloc_size handling
    
    Commit 40f9fb8cffc6 ("mm/zsmalloc: support allocating obj with size of
    ZS_MAX_ALLOC_SIZE") fixes a size calculation error that prevented
    zsmalloc to allocate an object of the maximal size (ZS_MAX_ALLOC_SIZE).
    I think however the fix is unneededly complicated.
    
    This patch replaces the dynamic calculation of zs_size_classes at init
    time by a compile time calculation that uses the DIV_ROUND_UP() macro
    already used in get_size_class_index().
    
    [akpm@linux-foundation.org: use min_t]
    Link: http://lkml.kernel.org/r/20170630114859.1979-1-jmarchan@redhat.com
    Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Cc: Mahendran Ganesh <opensource.ganesh@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit bc1bb362334ebc4c65dd4301f10fb70902b3db7d
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date:   Mon Jul 10 15:50:15 2017 -0700

    zram: constify attribute_group structures.
    
    attribute_groups are not supposed to change at runtime.  All functions
    working with attribute_groups provided by <linux/sysfs.h> work with
    const attribute_group.  So mark the non-const structs as const.
    
    File size before:
       text    data     bss     dec     hex filename
       8293     841       4    9138    23b2 drivers/block/zram/zram_drv.o
    
    File size After adding 'const':
       text    data     bss     dec     hex filename
       8357     777       4    9138    23b2 drivers/block/zram/zram_drv.o
    
    Link: http://lkml.kernel.org/r/65680c1c4d85818f7094cbfa31c91bf28185ba1b.1499061182.git.arvind.yadav.cs@gmail.com
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation…
  • Loading branch information
akpm00 authored and hnaz committed Jul 12, 2017
1 parent 6f7da29 commit 697554d
Show file tree
Hide file tree
Showing 9,295 changed files with 788,032 additions and 214,431 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
8 changes: 2 additions & 6 deletions Documentation/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ DMA-ISA-LPC.txt
- How to do DMA with ISA (and LPC) devices.
DMA-attributes.txt
- listing of the various possible attributes a DMA region can have
DocBook/
- directory with DocBook templates etc. for kernel documentation.
EDID/
- directory with info on customizing EDID for broken gfx/displays.
IPMI.txt
Expand All @@ -40,8 +38,6 @@ Intel-IOMMU.txt
- basic info on the Intel IOMMU virtualization support.
Makefile
- It's not of interest for those who aren't touching the build system.
Makefile.sphinx
- It's not of interest for those who aren't touching the build system.
PCI/
- info related to PCI drivers.
RCU/
Expand Down Expand Up @@ -246,8 +242,6 @@ kprobes.txt
- documents the kernel probes debugging feature.
kref.txt
- docs on adding reference counters (krefs) to kernel objects.
kselftest.txt
- small unittests for (some) individual codepaths in the kernel.
laptops/
- directory with laptop related info and laptop driver documentation.
ldm.txt
Expand All @@ -264,6 +258,8 @@ logo.gif
- full colour GIF image of Linux logo (penguin - Tux).
logo.txt
- info on creator of above logo & site to get additional images from.
lsm.txt
- Linux Security Modules: General Security Hooks for Linux
lzo.txt
- kernel LZO decompressor input formats
m68k/
Expand Down
16 changes: 8 additions & 8 deletions Documentation/ABI/stable/sysfs-class-udc
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,6 @@ Description:
Indicates the maximum USB speed supported by this port.
Users:

What: /sys/class/udc/<udc>/maximum_speed
Date: June 2011
KernelVersion: 3.1
Contact: Felipe Balbi <balbi@kernel.org>
Description:
Indicates the maximum USB speed supported by this port.
Users:

What: /sys/class/udc/<udc>/soft_connect
Date: June 2011
KernelVersion: 3.1
Expand Down Expand Up @@ -91,3 +83,11 @@ Description:
'configured', and 'suspended'; however not all USB Device
Controllers support reporting all states.
Users:

What: /sys/class/udc/<udc>/function
Date: June 2017
KernelVersion: 4.13
Contact: Felipe Balbi <balbi@kernel.org>
Description:
Prints out name of currently running USB Gadget Driver.
Users:
15 changes: 15 additions & 0 deletions Documentation/ABI/stable/sysfs-driver-aspeed-vuart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
What: /sys/bus/platform/drivers/aspeed-vuart/*/lpc_address
Date: April 2017
Contact: Jeremy Kerr <jk@ozlabs.org>
Description: Configures which IO port the host side of the UART
will appear on the host <-> BMC LPC bus.
Users: OpenBMC. Proposed changes should be mailed to
openbmc@lists.ozlabs.org

What: /sys/bus/platform/drivers/aspeed-vuart*/sirq
Date: April 2017
Contact: Jeremy Kerr <jk@ozlabs.org>
Description: Configures which interrupt number the host side of
the UART will appear on the host <-> BMC LPC bus.
Users: OpenBMC. Proposed changes should be mailed to
openbmc@lists.ozlabs.org
119 changes: 119 additions & 0 deletions Documentation/ABI/stable/sysfs-hypervisor-xen
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
What: /sys/hypervisor/compilation/compile_date
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Contains the build time stamp of the Xen hypervisor
Might return "<denied>" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/compilation/compiled_by
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Contains information who built the Xen hypervisor
Might return "<denied>" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/compilation/compiler
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Compiler which was used to build the Xen hypervisor
Might return "<denied>" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/properties/capabilities
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Space separated list of supported guest system types. Each type
is in the format: <class>-<major>.<minor>-<arch>
With:
<class>: "xen" -- x86: paravirtualized, arm: standard
"hvm" -- x86 only: fully virtualized
<major>: major guest interface version
<minor>: minor guest interface version
<arch>: architecture, e.g.:
"x86_32": 32 bit x86 guest without PAE
"x86_32p": 32 bit x86 guest with PAE
"x86_64": 64 bit x86 guest
"armv7l": 32 bit arm guest
"aarch64": 64 bit arm guest

What: /sys/hypervisor/properties/changeset
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Changeset of the hypervisor (git commit)
Might return "<denied>" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/properties/features
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Features the Xen hypervisor supports for the guest as defined
in include/xen/interface/features.h printed as a hex value.

What: /sys/hypervisor/properties/pagesize
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Default page size of the hypervisor printed as a hex value.
Might return "0" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/properties/virtual_start
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Virtual address of the hypervisor as a hex value.

What: /sys/hypervisor/type
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
Type of hypervisor:
"xen": Xen hypervisor

What: /sys/hypervisor/uuid
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
UUID of the guest as known to the Xen hypervisor.

What: /sys/hypervisor/version/extra
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
The Xen version is in the format <major>.<minor><extra>
This is the <extra> part of it.
Might return "<denied>" in case of special security settings
in the hypervisor.

What: /sys/hypervisor/version/major
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
The Xen version is in the format <major>.<minor><extra>
This is the <major> part of it.

What: /sys/hypervisor/version/minor
Date: March 2009
KernelVersion: 2.6.30
Contact: xen-devel@lists.xenproject.org
Description: If running under Xen:
The Xen version is in the format <major>.<minor><extra>
This is the <minor> part of it.
18 changes: 10 additions & 8 deletions Documentation/ABI/testing/configfs-usb-gadget-uac1
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
What: /config/usb-gadget/gadget/functions/uac1.name
Date: Sep 2014
KernelVersion: 3.18
Date: June 2017
KernelVersion: 4.14
Description:
The attributes:

audio_buf_size - audio buffer size
fn_cap - capture pcm device file name
fn_cntl - control device file name
fn_play - playback pcm device file name
req_buf_size - ISO OUT endpoint request buffer size
req_count - ISO OUT endpoint request count
c_chmask - capture channel mask
c_srate - capture sampling rate
c_ssize - capture sample size (bytes)
p_chmask - playback channel mask
p_srate - playback sampling rate
p_ssize - playback sample size (bytes)
req_number - the number of pre-allocated request
for both capture and playback
12 changes: 12 additions & 0 deletions Documentation/ABI/testing/configfs-usb-gadget-uac1_legacy
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
What: /config/usb-gadget/gadget/functions/uac1_legacy.name
Date: Sep 2014
KernelVersion: 3.18
Description:
The attributes:

audio_buf_size - audio buffer size
fn_cap - capture pcm device file name
fn_cntl - control device file name
fn_play - playback pcm device file name
req_buf_size - ISO OUT endpoint request buffer size
req_count - ISO OUT endpoint request count
8 changes: 7 additions & 1 deletion Documentation/ABI/testing/ima_policy
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ Description:
fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6)
uid:= decimal value
euid:= decimal value
fowner:=decimal value
fowner:= decimal value
lsm: are LSM specific
option: appraise_type:= [imasig]
pcr:= decimal value

default policy:
# PROC_SUPER_MAGIC
Expand Down Expand Up @@ -96,3 +97,8 @@ Description:

Smack:
measure subj_user=_ func=FILE_CHECK mask=MAY_READ

Example of measure rules using alternate PCRs:

measure func=KEXEC_KERNEL_CHECK pcr=4
measure func=KEXEC_INITRAMFS_CHECK pcr=5
38 changes: 38 additions & 0 deletions Documentation/ABI/testing/sysfs-bus-fsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
What: /sys/bus/platform/devices/fsi-master/rescan
Date: May 2017
KernelVersion: 4.12
Contact: cbostic@linux.vnet.ibm.com
Description:
Initiates a FSI master scan for all connected slave devices
on its links.

What: /sys/bus/platform/devices/fsi-master/break
Date: May 2017
KernelVersion: 4.12
Contact: cbostic@linux.vnet.ibm.com
Description:
Sends an FSI BREAK command on a master's communication
link to any connnected slaves. A BREAK resets connected
device's logic and preps it to receive further commands
from the master.

What: /sys/bus/platform/devices/fsi-master/slave@00:00/term
Date: May 2017
KernelVersion: 4.12
Contact: cbostic@linux.vnet.ibm.com
Description:
Sends an FSI terminate command from the master to its
connected slave. A terminate resets the slave's state machines
that control access to the internally connected engines. In
addition the slave freezes its internal error register for
debugging purposes. This command is also needed to abort any
ongoing operation in case of an expired 'Master Time Out'
timer.

What: /sys/bus/platform/devices/fsi-master/slave@00:00/raw
Date: May 2017
KernelVersion: 4.12
Contact: cbostic@linux.vnet.ibm.com
Description:
Provides a means of reading/writing a 32 bit value from/to a
specified FSI bus address.
11 changes: 11 additions & 0 deletions Documentation/ABI/testing/sysfs-bus-iio
Original file line number Diff line number Diff line change
Expand Up @@ -1425,6 +1425,17 @@ Description:
guarantees that the hardware fifo is flushed to the device
buffer.

What: /sys/bus/iio/devices/iio:device*/buffer/hwfifo_timeout
KernelVersion: 4.12
Contact: linux-iio@vger.kernel.org
Description:
A read/write property to provide capability to delay reporting of
samples till a timeout is reached. This allows host processors to
sleep, while the sensor is storing samples in its internal fifo.
The maximum timeout in seconds can be specified by setting
hwfifo_timeout.The current delay can be read by reading
hwfifo_timeout. A value of 0 means that there is no timeout.

What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_watermark
KernelVersion: 4.2
Contact: linux-iio@vger.kernel.org
Expand Down
1 change: 0 additions & 1 deletion Documentation/ABI/testing/sysfs-bus-iio-meas-spec
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@ Description:
Reading returns either '1' or '0'. '1' means that the
battery level supplied to sensor is below 2.25V.
This ABI is available for tsys02d, htu21, ms8607
This ABI is available for htu21, ms8607
63 changes: 63 additions & 0 deletions Documentation/ABI/testing/sysfs-bus-iio-timer-stm32
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,54 @@ Description:
- "OC2REF" : OC2REF signal is used as trigger output.
- "OC3REF" : OC3REF signal is used as trigger output.
- "OC4REF" : OC4REF signal is used as trigger output.
Additional modes (on TRGO2 only):
- "OC5REF" : OC5REF signal is used as trigger output.
- "OC6REF" : OC6REF signal is used as trigger output.
- "compare_pulse_OC4REF":
OC4REF rising or falling edges generate pulses.
- "compare_pulse_OC6REF":
OC6REF rising or falling edges generate pulses.
- "compare_pulse_OC4REF_r_or_OC6REF_r":
OC4REF or OC6REF rising edges generate pulses.
- "compare_pulse_OC4REF_r_or_OC6REF_f":
OC4REF rising or OC6REF falling edges generate pulses.
- "compare_pulse_OC5REF_r_or_OC6REF_r":
OC5REF or OC6REF rising edges generate pulses.
- "compare_pulse_OC5REF_r_or_OC6REF_f":
OC5REF rising or OC6REF falling edges generate pulses.

+-----------+ +-------------+ +---------+
| Prescaler +-> | Counter | +-> | Master | TRGO(2)
+-----------+ +--+--------+-+ |-> | Control +-->
| | || +---------+
+--v--------+-+ OCxREF || +---------+
| Chx compare +----------> | Output | ChX
+-----------+-+ | | Control +-->
. | | +---------+
. | | .
+-----------v-+ OC6REF | .
| Ch6 compare +---------+>
+-------------+

Example with: "compare_pulse_OC4REF_r_or_OC6REF_r":

X
X X
X . . X
X . . X
X . . X
count X . . . . X
. . . .
. . . .
+---------------+
OC4REF | . . |
+-+ . . +-+
. +---+ .
OC6REF . | | .
+-------+ +-------+
+-+ +-+
TRGO2 | | | |
+-+ +---+ +---------+

What: /sys/bus/iio/devices/triggerX/master_mode
KernelVersion: 4.11
Expand Down Expand Up @@ -90,3 +138,18 @@ Description:
Counting is enabled on rising edge of the connected
trigger, and remains enabled for the duration of this
selected mode.

What: /sys/bus/iio/devices/iio:deviceX/in_count_trigger_mode_available
KernelVersion: 4.13
Contact: benjamin.gaignard@st.com
Description:
Reading returns the list possible trigger modes.

What: /sys/bus/iio/devices/iio:deviceX/in_count0_trigger_mode
KernelVersion: 4.13
Contact: benjamin.gaignard@st.com
Description:
Configure the device counter trigger mode
counting direction is set by in_count0_count_direction
attribute and the counter is clocked by the connected trigger
rising edges.
Loading

0 comments on commit 697554d

Please sign in to comment.