19 Apr, 2020

14 commits

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

13 Apr, 2020

10 commits

  • Linus Torvalds
     
  • This sorts the actual field names too, potentially causing even more
    chaos and confusion at merge time if you have edited the MAINTAINERS
    file. But the end result is a more consistent layout, and hopefully
    it's a one-time pain minimized by doing this just before the -rc1
    release.

    This was entirely scripted:

    ./scripts/parse-maintainers.pl --input=MAINTAINERS --output=MAINTAINERS --order

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

    Linus Torvalds
     
  • They are all supposed to be sorted, but people who add new entries don't
    always know the alphabet. Plus sometimes the entry names get edited,
    and people don't then re-order the entry.

    Let's see how painful this will be for merging purposes (the MAINTAINERS
    file is often edited in various different trees), but Joe claims there's
    relatively few patches in -next that touch this, and doing it just
    before -rc1 is likely the best time. Fingers crossed.

    This was scripted with

    /scripts/parse-maintainers.pl --input=MAINTAINERS --output=MAINTAINERS

    but then I also ended up manually upper-casing a few entry names that
    stood out when looking at the end result.

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

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "A set of three patches to fix the fallout of the newly added split
    lock detection feature.

    It addressed the case where a KVM guest triggers a split lock #AC and
    KVM reinjects it into the guest which is not prepared to handle it.

    Add proper sanity checks which prevent the unconditional injection
    into the guest and handles the #AC on the host side in the same way as
    user space detections are handled. Depending on the detection mode it
    either warns and disables detection for the task or kills the task if
    the mode is set to fatal"

    * tag 'x86-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    KVM: VMX: Extend VMXs #AC interceptor to handle split lock #AC in guest
    KVM: x86: Emulate split-lock access as a write in emulator
    x86/split_lock: Provide handle_guest_split_lock()

    Linus Torvalds
     
  • Pull time(keeping) updates from Thomas Gleixner:

    - Fix the time_for_children symlink in /proc/$PID/ so it properly
    reflects that it part of the 'time' namespace

    - Add the missing userns limit for the allowed number of time
    namespaces, which was half defined but the actual array member was
    not added. This went unnoticed as the array has an exessive empty
    member at the end but introduced a user visible regression as the
    output was corrupted.

    - Prevent further silent ucount corruption by adding a BUILD_BUG_ON()
    to catch half updated data.

    * tag 'timers-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    ucount: Make sure ucounts in /proc/sys/user don't regress again
    time/namespace: Add max_time_namespaces ucount
    time/namespace: Fix time_for_children symlink

    Linus Torvalds
     
  • Pull scheduler fixes/updates from Thomas Gleixner:

    - Deduplicate the average computations in the scheduler core and the
    fair class code.

    - Fix a raise between runtime distribution and assignement which can
    cause exceeding the quota by up to 70%.

    - Prevent negative results in the imbalanace calculation

    - Remove a stale warning in the workqueue code which can be triggered
    since the call site was moved out of preempt disabled code. It's a
    false positive.

    - Deduplicate the print macros for procfs

    - Add the ucmap values to the SCHED_DEBUG procfs output for completness

    * tag 'sched-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/debug: Add task uclamp values to SCHED_DEBUG procfs
    sched/debug: Factor out printing formats into common macros
    sched/debug: Remove redundant macro define
    sched/core: Remove unused rq::last_load_update_tick
    workqueue: Remove the warning in wq_worker_sleeping()
    sched/fair: Fix negative imbalance in imbalance calculation
    sched/fair: Fix race between runtime distribution and assignment
    sched/fair: Align rq->avg_idle and rq->avg_scan_cost

    Linus Torvalds
     
  • Pull perf fixes from Thomas Gleixner:
    "Three fixes/updates for perf:

    - Fix the perf event cgroup tracking which tries to track the cgroup
    even for disabled events.

    - Add Ice Lake server support for uncore events

    - Disable pagefaults when retrieving the physical address in the
    sampling code"

    * tag 'perf-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/core: Disable page faults when getting phys address
    perf/x86/intel/uncore: Add Ice Lake server uncore support
    perf/cgroup: Correct indirection in perf_less_group_idx()
    perf/core: Fix event cgroup tracking

    Linus Torvalds
     
  • Pull locking fixes from Thomas Gleixner:
    "Three small fixes/updates for the locking core code:

    - Plug a task struct reference leak in the percpu rswem
    implementation.

    - Document the refcount interaction with PID_MAX_LIMIT

    - Improve the 'invalid wait context' data dump in lockdep so it
    contains all information which is required to decode the problem"

    * tag 'locking-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/lockdep: Improve 'invalid wait context' splat
    locking/refcount: Document interaction with PID_MAX_LIMIT
    locking/percpu-rwsem: Fix a task_struct refcount

    Linus Torvalds
     
  • Pull cifs fixes from Steve French:
    "Ten cifs/smb fixes:

    - five RDMA (smbdirect) related fixes

    - add experimental support for swap over SMB3 mounts

    - also a fix which improves performance of signed connections"

    * tag '5.7-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
    smb3: enable swap on SMB3 mounts
    smb3: change noisy error message to FYI
    smb3: smbdirect support can be configured by default
    cifs: smbd: Do not schedule work to send immediate packet on every receive
    cifs: smbd: Properly process errors on ib_post_send
    cifs: Allocate crypto structures on the fly for calculating signatures of incoming packets
    cifs: smbd: Update receive credits before sending and deal with credits roll back on failure before sending
    cifs: smbd: Check send queue size before posting a send
    cifs: smbd: Merge code to track pending packets
    cifs: ignore cached share root handle closing errors

    Linus Torvalds
     
  • Pull NFS client bugfix from Trond Myklebust:
    "Fix an RCU read lock leakage in pnfs_alloc_ds_commits_list()"

    * tag 'nfs-for-5.7-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    pNFS: Fix RCU lock leakage

    Linus Torvalds
     

12 Apr, 2020

4 commits


11 Apr, 2020

12 commits

  • Another brown paper bag moment. pnfs_alloc_ds_commits_list() is leaking
    the RCU lock.

    Fixes: a9901899b649 ("pNFS: Add infrastructure for cleaning up per-layout commit structures")
    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Two types of #AC can be generated in Intel CPUs:
    1. legacy alignment check #AC
    2. split lock #AC

    Reflect #AC back into the guest if the guest has legacy alignment checks
    enabled or if split lock detection is disabled.

    If the #AC is not a legacy one and split lock detection is enabled, then
    invoke handle_guest_split_lock() which will either warn and disable split
    lock detection for this task or force SIGBUS on it.

    [ tglx: Switch it to handle_guest_split_lock() and rename the misnamed
    helper function. ]

    Suggested-by: Sean Christopherson
    Signed-off-by: Xiaoyao Li
    Signed-off-by: Sean Christopherson
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Borislav Petkov
    Acked-by: Paolo Bonzini
    Link: https://lkml.kernel.org/r/20200410115517.176308876@linutronix.de

    Xiaoyao Li
     
  • Emulate split-lock accesses as writes if split lock detection is on
    to avoid #AC during emulation, which will result in a panic(). This
    should never occur for a well-behaved guest, but a malicious guest can
    manipulate the TLB to trigger emulation of a locked instruction[1].

    More discussion can be found at [2][3].

    [1] https://lkml.kernel.org/r/8c5b11c9-58df-38e7-a514-dc12d687b198@redhat.com
    [2] https://lkml.kernel.org/r/20200131200134.GD18946@linux.intel.com
    [3] https://lkml.kernel.org/r/20200227001117.GX9940@linux.intel.com

    Suggested-by: Sean Christopherson
    Signed-off-by: Xiaoyao Li
    Signed-off-by: Sean Christopherson
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Borislav Petkov
    Acked-by: Paolo Bonzini
    Link: https://lkml.kernel.org/r/20200410115517.084300242@linutronix.de

    Xiaoyao Li
     
  • Without at least minimal handling for split lock detection induced #AC,
    VMX will just run into the same problem as the VMWare hypervisor, which
    was reported by Kenneth.

    It will inject the #AC blindly into the guest whether the guest is
    prepared or not.

    Provide a function for guest mode which acts depending on the host
    SLD mode. If mode == sld_warn, treat it like user space, i.e. emit a
    warning, disable SLD and mark the task accordingly. Otherwise force
    SIGBUS.

    [ bp: Add a !CPU_SUP_INTEL stub for handle_guest_split_lock(). ]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Borislav Petkov
    Acked-by: Paolo Bonzini
    Link: https://lkml.kernel.org/r/20200410115516.978037132@linutronix.de
    Link: https://lkml.kernel.org/r/20200402123258.895628824@linutronix.de

    Thomas Gleixner
     
  • The keyword here is 'twice' to explain the trick.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Merge yet more updates from Andrew Morton:

    - Almost all of the rest of MM (memcg, slab-generic, slab, pagealloc,
    gup, hugetlb, pagemap, memremap)

    - Various other things (hfs, ocfs2, kmod, misc, seqfile)

    * akpm: (34 commits)
    ipc/util.c: sysvipc_find_ipc() should increase position index
    kernel/gcov/fs.c: gcov_seq_next() should increase position index
    fs/seq_file.c: seq_read(): add info message about buggy .next functions
    drivers/dma/tegra20-apb-dma.c: fix platform_get_irq.cocci warnings
    change email address for Pali Rohár
    selftests: kmod: test disabling module autoloading
    selftests: kmod: fix handling test numbers above 9
    docs: admin-guide: document the kernel.modprobe sysctl
    fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
    kmod: make request_module() return an error when autoloading is disabled
    mm/memremap: set caching mode for PCI P2PDMA memory to WC
    mm/memory_hotplug: add pgprot_t to mhp_params
    powerpc/mm: thread pgprot_t through create_section_mapping()
    x86/mm: introduce __set_memory_prot()
    x86/mm: thread pgprot_t through init_memory_mapping()
    mm/memory_hotplug: rename mhp_restrictions to mhp_params
    mm/memory_hotplug: drop the flags field from struct mhp_restrictions
    mm/special: create generic fallbacks for pte_special() and pte_mkspecial()
    mm/vma: introduce VM_ACCESS_FLAGS
    mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS
    ...

    Linus Torvalds
     
  • Pull Documentation fixes from Jonathan Corbet:
    "A handful of late-arriving fixes for the documentation tree"

    * tag 'docs-5.7-2' of git://git.lwn.net/linux:
    Documentation: android: binderfs: add 'stats' mount option
    Documentation: driver-api/usb/writing_usb_driver.rst Updates documentation links
    docs: driver-api: address duplicate label warning
    Documentation: sysrq: fix RST formatting
    docs: kernel-parameters.txt: Fix broken references
    docs: kernel-parameters.txt: Remove nompx
    docs: filesystems: fix typo in qnx6.rst

    Linus Torvalds
     
  • Pull orangefs updates from Mike Marshall:
    "A fix and two cleanups.

    Fix:

    - Christoph Hellwig noticed that some logic I added to
    orangefs_file_read_iter introduced a race condition, so he sent a
    reversion patch. I had to modify his patch since reverting at this
    point broke Orangefs.

    Cleanups:

    - Christoph Hellwig noticed that we were doing some unnecessary work
    in orangefs_flush, so he sent in a patch that removed the un-needed
    code.

    - Al Viro told me he had trouble building Orangefs. Orangefs should
    be easy to build, even for Al :-).

    I looked back at the test server build notes in orangefs.txt, just
    in case that's where the trouble really is, and found a couple of
    typos and made a couple of clarifications"

    * tag 'for-linus-5.7-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
    orangefs: clarify build steps for test server in orangefs.txt
    orangefs: don't mess with I_DIRTY_TIMES in orangefs_flush
    orangefs: get rid of knob code...

    Linus Torvalds
     
  • Pull xtensa updates from Max Filippov:

    - replace setup_irq() by request_irq()

    - cosmetic fixes in xtensa Kconfig and boot/Makefile

    * tag 'xtensa-20200410' of git://github.com/jcmvbkbc/linux-xtensa:
    arch/xtensa: fix grammar in Kconfig help text
    xtensa: remove meaningless export ccflags-y
    xtensa: replace setup_irq() by request_irq()

    Linus Torvalds
     
  • Pull more xen updates from Juergen Gross:

    - two cleanups

    - fix a boot regression introduced in this merge window

    - fix wrong use of memory allocation flags

    * tag 'for-linus-5.7-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    x86/xen: fix booting 32-bit pv guest
    x86/xen: make xen_pvmmu_arch_setup() static
    xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
    xen: Use evtchn_type_t as a type for event channels

    Linus Torvalds
     
  • If seq_file .next function does not change position index, read after
    some lseek can generate unexpected output.

    https://bugzilla.kernel.org/show_bug.cgi?id=206283
    Signed-off-by: Vasily Averin
    Signed-off-by: Andrew Morton
    Acked-by: Waiman Long
    Cc: Davidlohr Bueso
    Cc: Manfred Spraul
    Cc: Al Viro
    Cc: Ingo Molnar
    Cc: NeilBrown
    Cc: Peter Oberparleiter
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/b7a20945-e315-8bb0-21e6-3875c14a8494@virtuozzo.com
    Signed-off-by: Linus Torvalds

    Vasily Averin
     
  • If seq_file .next function does not change position index, read after
    some lseek can generate unexpected output.

    https://bugzilla.kernel.org/show_bug.cgi?id=206283
    Signed-off-by: Vasily Averin
    Signed-off-by: Andrew Morton
    Acked-by: Peter Oberparleiter
    Cc: Al Viro
    Cc: Davidlohr Bueso
    Cc: Ingo Molnar
    Cc: Manfred Spraul
    Cc: NeilBrown
    Cc: Steven Rostedt
    Cc: Waiman Long
    Link: http://lkml.kernel.org/r/f65c6ee7-bd00-f910-2f8a-37cc67e4ff88@virtuozzo.com
    Signed-off-by: Linus Torvalds

    Vasily Averin