1. 06 Dec, 2019 17 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 98884281
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - ZONE_DMA32 initialisation fix when memblocks fall entirely within the
         first GB (used by ZONE_DMA in 5.5 for Raspberry Pi 4).
      
       - Couple of ftrace fixes following the FTRACE_WITH_REGS patchset.
      
       - access_ok() fix for the Tagged Address ABI when called from from a
         kernel thread (asynchronous I/O): the kthread does not have the TIF
         flags of the mm owner, so untag the user address unconditionally.
      
       - KVM compute_layout() called before the alternatives code patching.
      
       - Minor clean-ups.
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: entry: refine comment of stack overflow check
        arm64: ftrace: fix ifdeffery
        arm64: KVM: Invoke compute_layout() before alternatives are applied
        arm64: Validate tagged addresses in access_ok() called from kernel threads
        arm64: mm: Fix column alignment for UXN in kernel_page_tables
        arm64: insn: consistently handle exit text
        arm64: mm: Fix initialisation of DMA zones on non-NUMA systems
      98884281
    • David Howells's avatar
      pipe: Fix iteration end check in fuse_dev_splice_write() · 76f6777c
      David Howells authored
      Fix the iteration end check in fuse_dev_splice_write().  The iterator
      position can only be compared with == or != since wrappage may be involved.
      
      Fixes: 8cefc107 ("pipe: Use head and tail pointers for the ring, not cursor and length")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      76f6777c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 43a28986
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
       "A few commits splitting the KASAN instrumented bitops header in three,
        to match the split of the asm-generic bitops headers.
      
        This is needed on powerpc because we use the generic bitops for the
        non-atomic case only, whereas the existing KASAN instrumented bitops
        assume all the underlying operations are provided by the arch as
        arch_foo() versions.
      
        Thanks to: Daniel Axtens & Christophe Leroy"
      
      * tag 'powerpc-5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        docs/core-api: Remove possibly confusing sub-headings from Bit Operations
        powerpc: support KASAN instrumentation of bitops
        kasan: support instrumented bitops combined with generic bitops
      43a28986
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · f89d416a
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "One fix for a regression introduced by our recent rework of cache
        flushing on memory hotunplug.
      
        Like several other arches, our VDSO clock_getres() needed a fix to
        match the semantics of posix_get_hrtimer_res().
      
        A fix for a boot crash on Power9 LPARs using PCI LSI interrupts.
      
        A commit disabling use of the trace_imc PMU (not the core PMU) on
        Power9 systems, because it can lead to checkstops, until a workaround
        is developed.
      
        A handful of other minor fixes.
      
        Thanks to: Aneesh Kumar K.V, Anju T Sudhakar, Ard Biesheuvel,
        Christophe Leroy, Cédric Le Goater, Madhavan Srinivasan, Vincenzo
        Frascino"
      
      * tag 'powerpc-5.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/perf: Disable trace_imc pmu
        powerpc/powernv: Avoid re-registration of imc debugfs directory
        powerpc/pmem: Convert to EXPORT_SYMBOL_GPL
        powerpc/archrandom: fix arch_get_random_seed_int()
        powerpc: Fix vDSO clock_getres()
        powerpc/pmem: Fix kernel crash due to wrong range value usage in flush_dcache_range
        powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
        powerpc/kasan: Fix boot failure with RELOCATABLE && FSL_BOOKE
      f89d416a
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3cf2890f
      Linus Torvalds authored
      Pull more sound updates from Takashi Iwai:
       "A few last-minute updates, most of them are the regression fixes:
      
         - AMD HD-audio HDMI runtime PM improvements
      
         - Fixes for HD-audio HDMI regressions wrt DP-MST
      
         - A regression fix for the previous aloop enhancement
      
         - A fix for a long-time problem in PCM OSS layer that was spotted by
           fuzzer now
      
         - A few HD-audio quirks"
      
      * tag 'sound-fix-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: oss: Avoid potential buffer overflows
        ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
        ALSA: hda: Modify stream stripe mask only when needed
        ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
        ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
        ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
        ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
        ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
        ALSA: hda: hdmi - fix regression in connect list handling
        ALSA: aloop: Avoid pointer dereference before null-check
        ALSA: hda/hdmi - enable automatic runtime pm for AMD HDMI codecs by default
        ALSA: hda/hdmi - enable runtime pm for newer AMD display audio
        ALSA: hda/hdmi - Add new pci ids for AMD GPU display audio
        ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD
      3cf2890f
    • Linus Torvalds's avatar
      pipe: fix incorrect caching of pipe state over pipe_wait() · ec057595
      Linus Torvalds authored
      Similarly to commit 8f868d68 ("pipe: Fix missing mask update after
      pipe_wait()") this fixes a case where the pipe rewrite ended up caching
      the pipe state incorrectly over a pipe lock drop event.
      
      It wasn't quite as obvious, because you needed to splice data from a
      pipe to a file, which is a fairly unusual operation, but it's completely
      wrong.
      
      Make sure we load the pipe head/tail/size information only after we've
      waited for there to be data in the pipe.
      
      While in that file, also make one of the splice helper functions use the
      canonical arghument order for pipe_empty().  That's syntactic - pipe
      emptiness is just that head and tail are equal, and thus mixing up head
      and tail doesn't really matter.  It's still wrong, though.
      Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ec057595
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-12-06' of git://anongit.freedesktop.org/drm/drm · 7ada90eb
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "Rob pointed out I missed his pull request for msm-next, it's been in
        next for a while outside of my tree so shouldn't cause any unexpected
        issues, it has some OCMEM support in drivers/soc that is acked by
        other maintainers as it's outside my tree.
      
        Otherwise it's a usual fixes pull, i915, amdgpu, the main ones, with
        some tegra, omap, mgag200 and one core fix.
      
        Summary:
      
        msm-next:
         - OCMEM support for a3xx and a4xx GPUs.
         - a510 support + display support
      
        core:
         - mst payload deletion fix
      
        i915:
         - uapi alignment fix
         - fix for power usage regression due to security fixes
         - change default preemption timeout to 640ms from 100ms
         - EHL voltage level display fixes
         - TGL DGL PHY fix
         - gvt - MI_ATOMIC cmd parser fix, CFL non-priv warning
         - CI spotted deadlock fix
         - EHL port D programming fix
      
        amdgpu:
         - VRAM lost fixes on BACO for CI/VI
         - navi14 DC fixes
         - misc SR-IOV, gfx10 fixes
         - XGMI fixes for arcturus
         - SRIOV fixes
      
        amdkfd:
         - KFD on ppc64le enabled
         - page table optimisations
      
        radeon:
         - fix for r1xx/2xx register checker.
      
        tegra:
         - displayport regression fixes
         - DMA API regression fixes
      
        mgag200:
         - fix devices that can't scanout except at 0 addr
      
        omap:
         - fix dma_addr refcounting"
      
      * tag 'drm-next-2019-12-06' of git://anongit.freedesktop.org/drm/drm: (100 commits)
        drm/dp_mst: Correct the bug in drm_dp_update_payload_part1()
        drm/omap: fix dma_addr refcounting
        drm/tegra: Run hub cleanup on ->remove()
        drm/tegra: sor: Make the +5V HDMI supply optional
        drm/tegra: Silence expected errors on IOMMU attach
        drm/tegra: vic: Export module device table
        drm/tegra: sor: Implement system suspend/resume
        drm/tegra: Use proper IOVA address for cursor image
        drm/tegra: gem: Remove premature import restrictions
        drm/tegra: gem: Properly pin imported buffers
        drm/tegra: hub: Remove bogus connection mutex check
        ia64: agp: Replace empty define with do while
        agp: Add bridge parameter documentation
        agp: remove unused variable num_segments
        agp: move AGPGART_MINOR to include/linux/miscdevice.h
        agp: remove unused variable size in agp_generic_create_gatt_table
        drm/dp_mst: Fix build on systems with STACKTRACE_SUPPORT=n
        drm/radeon: fix r1xx/r2xx register checker for POT textures
        drm/amdgpu: fix GFX10 missing CSIB set(v3)
        drm/amdgpu: should stop GFX ring in hw_fini
        ...
      7ada90eb
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20191205' of git://git.kernel.dk/linux-block · 9feb1af9
      Linus Torvalds authored
      Pull more block and io_uring updates from Jens Axboe:
       "I wasn't expecting this to be so big, and if I was, I would have used
        separate branches for this. Going forward I'll be doing separate
        branches for the current tree, just like for the next kernel version
        tree. In any case, this contains:
      
         - Series from Christoph that fixes an inherent race condition with
           zoned devices and revalidation.
      
         - null_blk zone size fix (Damien)
      
         - Fix for a regression in this merge window that caused busy spins by
           sending empty disk uevents (Eric)
      
         - Fix for a regression in this merge window for bfq stats (Hou)
      
         - Fix for io_uring creds allocation failure handling (me)
      
         - io_uring -ERESTARTSYS send/recvmsg fix (me)
      
         - Series that fixes the need for applications to retain state across
           async request punts for io_uring. This one is a bit larger than I
           would have hoped, but I think it's important we get this fixed for
           5.5.
      
         - connect(2) improvement for io_uring, handling EINPROGRESS instead
           of having applications needing to poll for it (me)
      
         - Have io_uring use a hash for poll requests instead of an rbtree.
           This turned out to work much better in practice, so I think we
           should make the switch now. For some workloads, even with a fair
           amount of cancellations, the insertion sort is just too expensive.
           (me)
      
         - Various little io_uring fixes (me, Jackie, Pavel, LimingWu)
      
         - Fix for brd unaligned IO, and a warning for the future (Ming)
      
         - Fix for a bio integrity data leak (Justin)
      
         - bvec_iter_advance() improvement (Pavel)
      
         - Xen blkback page unmap fix (SeongJae)
      
        The major items in here are all well tested, and on the liburing side
        we continue to add regression and feature test cases. We're up to 50
        topic cases now, each with anywhere from 1 to more than 10 cases in
        each"
      
      * tag 'for-linus-20191205' of git://git.kernel.dk/linux-block: (33 commits)
        block: fix memleak of bio integrity data
        io_uring: fix a typo in a comment
        bfq-iosched: Ensure bio->bi_blkg is valid before using it
        io_uring: hook all linked requests via link_list
        io_uring: fix error handling in io_queue_link_head
        io_uring: use hash table for poll command lookups
        io-wq: clear node->next on list deletion
        io_uring: ensure deferred timeouts copy necessary data
        io_uring: allow IO_SQE_* flags on IORING_OP_TIMEOUT
        null_blk: remove unused variable warning on !CONFIG_BLK_DEV_ZONED
        brd: warn on un-aligned buffer
        brd: remove max_hw_sectors queue limit
        xen/blkback: Avoid unmapping unmapped grant pages
        io_uring: handle connect -EINPROGRESS like -EAGAIN
        block: set the zone size in blk_revalidate_disk_zones atomically
        block: don't handle bio based drivers in blk_revalidate_disk_zones
        block: allocate the zone bitmaps lazily
        block: replace seq_zones_bitmap with conv_zones_bitmap
        block: simplify blkdev_nr_zones
        block: remove the empty line at the end of blk-zoned.c
        ...
      9feb1af9
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 0aecba61
      Linus Torvalds authored
      Pull vfs d_inode/d_flags memory ordering fixes from Al Viro:
       "Fallout from tree-wide audit for ->d_inode/->d_flags barriers use.
        Basically, the problem is that negative pinned dentries require
        careful treatment - unless ->d_lock is locked or parent is held at
        least shared, another thread can make them positive right under us.
      
        Most of the uses turned out to be safe - the main surprises as far as
        filesystems are concerned were
      
         - race in dget_parent() fastpath, that might end up with the caller
           observing the returned dentry _negative_, due to insufficient
           barriers. It is positive in memory, but we could end up seeing the
           wrong value of ->d_inode in CPU cache. Fixed.
      
         - manual checks that result of lookup_one_len_unlocked() is positive
           (and rejection of negatives). Again, insufficient barriers (we
           might end up with inconsistent observed values of ->d_inode and
           ->d_flags). Fixed by switching to a new primitive that does the
           checks itself and returns ERR_PTR(-ENOENT) instead of a negative
           dentry. That way we get rid of boilerplate converting negatives
           into ERR_PTR(-ENOENT) in the callers and have a single place to
           deal with the barrier-related mess - inside fs/namei.c rather than
           in every caller out there.
      
        The guts of pathname resolution *do* need to be careful - the race
        found by Ritesh is real, as well as several similar races.
        Fortunately, it turns out that we can take care of that with fairly
        local changes in there.
      
        The tree-wide audit had not been fun, and I hate the idea of repeating
        it. I think the right approach would be to annotate the places where
        we are _not_ guaranteed ->d_inode/->d_flags stability and have sparse
        catch regressions. But I'm still not sure what would be the least
        invasive way of doing that and it's clearly the next cycle fodder"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs/namei.c: fix missing barriers when checking positivity
        fix dget_parent() fastpath race
        new helper: lookup_positive_unlocked()
        fs/namei.c: pull positivity check into follow_managed()
      0aecba61
    • Heyi Guo's avatar
      arm64: entry: refine comment of stack overflow check · de858040
      Heyi Guo authored
      Stack overflow checking can be done by testing sp & (1 << THREAD_SHIFT)
      only for the stacks are aligned to (2 << THREAD_SHIFT) with size of
      (1 << THREAD_SIZE), and this is the case when CONFIG_VMAP_STACK is set.
      
      Fix the code comment to avoid confusion.
      
      Cc: Will Deacon <will@kernel.org>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarHeyi Guo <guoheyi@huawei.com>
      [catalin.marinas@arm.com: Updated comment following Mark's suggestion]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      de858040
    • Mark Rutland's avatar
      arm64: ftrace: fix ifdeffery · 70927d02
      Mark Rutland authored
      When I tweaked the ftrace entry assembly in commit:
      
        3b23e499 ("arm64: implement ftrace with regs")
      
      ... my ifdeffery tweaks left ftrace_graph_caller undefined for
      CONFIG_DYNAMIC_FTRACE && CONFIG_FUNCTION_GRAPH_TRACER when ftrace is
      based on mcount.
      
      The kbuild test robot reported that this issue is detected at link time:
      
      | arch/arm64/kernel/entry-ftrace.o: In function `skip_ftrace_call':
      | arch/arm64/kernel/entry-ftrace.S:238: undefined reference to `ftrace_graph_caller'
      | arch/arm64/kernel/entry-ftrace.S:238:(.text+0x3c): relocation truncated to fit: R_AARCH64_CONDBR19 against undefined symbol
      | `ftrace_graph_caller'
      | arch/arm64/kernel/entry-ftrace.S:243: undefined reference to `ftrace_graph_caller'
      | arch/arm64/kernel/entry-ftrace.S:243:(.text+0x54): relocation truncated to fit: R_AARCH64_CONDBR19 against undefined symbol
      | `ftrace_graph_caller'
      
      This patch fixes the ifdeffery so that the mcount version of
      ftrace_graph_caller doesn't depend on CONFIG_DYNAMIC_FTRACE. At the same
      time, a redundant #else is removed from the ifdeffery for the
      patchable-function-entry version of ftrace_graph_caller.
      
      Fixes: 3b23e499 ("arm64: implement ftrace with regs")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Amit Daniel Kachhap <amit.kachhap@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Torsten Duwe <duwe@lst.de>
      Cc: Will Deacon <will@kernel.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      70927d02
    • Sebastian Andrzej Siewior's avatar
      arm64: KVM: Invoke compute_layout() before alternatives are applied · 0492747c
      Sebastian Andrzej Siewior authored
      compute_layout() is invoked as part of an alternative fixup under
      stop_machine(). This function invokes get_random_long() which acquires a
      sleeping lock on -RT which can not be acquired in this context.
      
      Rename compute_layout() to kvm_compute_layout() and invoke it before
      stop_machine() applies the alternatives. Add a __init prefix to
      kvm_compute_layout() because the caller has it, too (and so the code can be
      discarded after boot).
      Reviewed-by: default avatarJames Morse <james.morse@arm.com>
      Acked-by: default avatarMarc Zyngier <maz@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      0492747c
    • Catalin Marinas's avatar
      arm64: Validate tagged addresses in access_ok() called from kernel threads · df325e05
      Catalin Marinas authored
      __range_ok(), invoked from access_ok(), clears the tag of the user
      address only if CONFIG_ARM64_TAGGED_ADDR_ABI is enabled and the thread
      opted in to the relaxed ABI. The latter sets the TIF_TAGGED_ADDR thread
      flag. In the case of asynchronous I/O (e.g. io_submit()), the
      access_ok() may be called from a kernel thread. Since kernel threads
      don't have TIF_TAGGED_ADDR set, access_ok() will fail for valid tagged
      user addresses. Example from the ffs_user_copy_worker() thread:
      
      	use_mm(io_data->mm);
      	ret = ffs_copy_to_iter(io_data->buf, ret, &io_data->data);
      	unuse_mm(io_data->mm);
      
      Relax the __range_ok() check to always untag the user address if called
      in the context of a kernel thread. The user pointers would have already
      been checked via aio_setup_rw() -> import_{single_range,iovec}() at the
      time of the asynchronous I/O request.
      
      Fixes: 63f0c603 ("arm64: Introduce prctl() options to control the tagged user addresses ABI")
      Cc: <stable@vger.kernel.org> # 5.4.x-
      Cc: Will Deacon <will@kernel.org>
      Reported-by: default avatarEvgenii Stepanov <eugenis@google.com>
      Tested-by: default avatarEvgenii Stepanov <eugenis@google.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      df325e05
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2019-12-05' of... · 9c1867d7
      Dave Airlie authored
      Merge tag 'drm-intel-next-fixes-2019-12-05' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      - Includes gvt-next-fixes-2019-12-02 pull
      - Fixes for CI spotted eadlock and a race condition in GEM contexts
      - Fix for EHL port D programming
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191205092412.GA8089@jlahtine-desk.ger.corp.intel.com
      9c1867d7
    • Jens Axboe's avatar
      Merge branch 'io_uring-5.5' into for-linus · 85394299
      Jens Axboe authored
      * io_uring-5.5:
        io_uring: fix a typo in a comment
        io_uring: hook all linked requests via link_list
        io_uring: fix error handling in io_queue_link_head
        io_uring: use hash table for poll command lookups
      85394299
    • Linus Torvalds's avatar
      Merge branch 'next.autofs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · b0d4beaa
      Linus Torvalds authored
      Pull autofs updates from Al Viro:
       "autofs misuses checks for ->d_subdirs emptiness; the cursors are in
        the same lists, resulting in false negatives. It's not needed anyway,
        since autofs maintains counter in struct autofs_info, containing 0 for
        removed ones, 1 for live symlinks and 1 + number of children for live
        directories, which is precisely what we need for those checks.
      
        This series switches to use of that counter and untangles the crap
        around its uses (it needs not be atomic and there's a bunch of
        completely pointless "defensive" checks).
      
        This fell out of dcache_readdir work; the main point is to get rid of
        ->d_subdirs abuses in there. I've more followup cleanups, but I hadn't
        run those by Ian yet, so they can go next cycle"
      
      * 'next.autofs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        autofs: don't bother with atomics for ino->count
        autofs_dir_rmdir(): check ino->count for deciding whether it's empty...
        autofs: get rid of pointless checks around ->count handling
        autofs_clear_leaf_automount_flags(): use ino->count instead of ->d_subdirs
      b0d4beaa
    • Linus Torvalds's avatar
      Merge branch 'pipe-rework' (patches from David Howells) · da73fcd8
      Linus Torvalds authored
      Merge two fixes for the pipe rework from David Howells:
       "Here are a couple of patches to fix bugs syzbot found in the pipe
        changes:
      
         - An assertion check will sometimes trip when polling a pipe because
           the ring size and indices used are approximate and may be being
           changed simultaneously.
      
           An equivalent approximate calculation was done previously, but
           without the assertion check, so I've just dropped the check. To
           make it accurate, the pipe mutex would need to be taken or the spin
           lock could be used - but usage of the spinlock would need to be
           rolled out into splice, iov_iter and other places for that.
      
         - The index mask and the max_usage values cannot be cached across
           pipe_wait() as F_SETPIPE_SZ could have been called during the wait.
           This can cause pipe_write() to break"
      
      * pipe-rework:
        pipe: Fix missing mask update after pipe_wait()
        pipe: Remove assertion from pipe_poll()
      da73fcd8
  2. 05 Dec, 2019 23 commits
    • David Howells's avatar
      pipe: Fix missing mask update after pipe_wait() · 8f868d68
      David Howells authored
      Fix pipe_write() to not cache the ring index mask and max_usage as their
      values are invalidated by calling pipe_wait() because the latter
      function drops the pipe lock, thereby allowing F_SETPIPE_SZ change them.
      Without this, pipe_write() may subsequently miscalculate the array
      indices and pipe fullness, leading to an oops like the following:
      
        BUG: KASAN: slab-out-of-bounds in pipe_write+0xc25/0xe10 fs/pipe.c:481
        Write of size 8 at addr ffff8880771167a8 by task syz-executor.3/7987
        ...
        CPU: 1 PID: 7987 Comm: syz-executor.3 Not tainted 5.4.0-rc2-syzkaller #0
        ...
        Call Trace:
          pipe_write+0xc25/0xe10 fs/pipe.c:481
          call_write_iter include/linux/fs.h:1895 [inline]
          new_sync_write+0x3fd/0x7e0 fs/read_write.c:483
          __vfs_write+0x94/0x110 fs/read_write.c:496
          vfs_write+0x18a/0x520 fs/read_write.c:558
          ksys_write+0x105/0x220 fs/read_write.c:611
          __do_sys_write fs/read_write.c:623 [inline]
          __se_sys_write fs/read_write.c:620 [inline]
          __x64_sys_write+0x6e/0xb0 fs/read_write.c:620
          do_syscall_64+0xca/0x5d0 arch/x86/entry/common.c:290
          entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      This is not a problem for pipe_read() as the mask is recalculated on
      each pass of the loop, after pipe_wait() has been called.
      
      Fixes: 8cefc107 ("pipe: Use head and tail pointers for the ring, not cursor and length")
      Reported-by: syzbot+838eb0878ffd51f27c41@syzkaller.appspotmail.com
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Eric Biggers <ebiggers@kernel.org>
      [ Changed it to use a temporary variable 'mask' to avoid long lines -Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8f868d68
    • David Howells's avatar
      pipe: Remove assertion from pipe_poll() · 8c7b8c34
      David Howells authored
      An assertion check was added to pipe_poll() to make sure that the ring
      occupancy isn't seen to overflow the ring size.  However, since no locks
      are held when the three values are read, it is possible for F_SETPIPE_SZ
      to intervene and muck up the calculation, thereby causing the oops.
      
      Fix this by simply removing the assertion and accepting that the
      calculation might be approximate.
      
      Note that the previous code also had a similar issue, though there was
      no assertion check, since the occupancy counter and the ring size were
      not read with a lock held, so it's possible that the poll check might
      have malfunctioned then too.
      
      Also wake up all the waiters so that they can reissue their checks if
      there was a competing read or write.
      
      Fixes: 8cefc107 ("pipe: Use head and tail pointers for the ring, not cursor and length")
      Reported-by: syzbot+d37abaade33a934f16f2@syzkaller.appspotmail.com
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Eric Biggers <ebiggers@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c7b8c34
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 3f1266ec
      Linus Torvalds authored
      Pull GFS2 updates from Andreas Gruenbacher:
       "Bob's extensive filesystem withdrawal and recovery testing:
         - don't write log headers after file system withdraw
         - clean up iopen glock mess in gfs2_create_inode
         - close timing window with GLF_INVALIDATE_IN_PROGRESS
         - abort gfs2_freeze if io error is seen
         - don't loop forever in gfs2_freeze if withdrawn
         - fix infinite loop in gfs2_ail1_flush on io error
         - introduce function gfs2_withdrawn
         - fix glock reference problem in gfs2_trans_remove_revoke
      
        Filesystems with a block size smaller than the page size:
         - fix end-of-file handling in gfs2_page_mkwrite
         - improve mmap write vs. punch_hole consistency
      
        Other:
         - remove active journal side effect from gfs2_write_log_header
         - multi-block allocations in gfs2_page_mkwrite
      
        Minor cleanups and coding style fixes:
         - remove duplicate call from gfs2_create_inode
         - make gfs2_log_shutdown static
         - make gfs2_fs_parameters static
         - some whitespace cleanups
         - removed unnecessary semicolon"
      
      * tag 'gfs2-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Don't write log headers after file system withdraw
        gfs2: Remove duplicate call from gfs2_create_inode
        gfs2: clean up iopen glock mess in gfs2_create_inode
        gfs2: Close timing window with GLF_INVALIDATE_IN_PROGRESS
        gfs2: Abort gfs2_freeze if io error is seen
        gfs2: Don't loop forever in gfs2_freeze if withdrawn
        gfs2: fix infinite loop in gfs2_ail1_flush on io error
        gfs2: Introduce function gfs2_withdrawn
        gfs2: fix glock reference problem in gfs2_trans_remove_revoke
        gfs2: make gfs2_log_shutdown static
        gfs2: Remove active journal side effect from gfs2_write_log_header
        gfs2: Fix end-of-file handling in gfs2_page_mkwrite
        gfs2: Multi-block allocations in gfs2_page_mkwrite
        gfs2: Improve mmap write vs. punch_hole consistency
        gfs2: make gfs2_fs_parameters static
        gfs2: Some whitespace cleanups
        gfs2: removed unnecessary semicolon
      3f1266ec
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.5-rc1' of git://github.com/ceph/ceph-client · a2315823
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "The two highlights are a set of improvements to how rbd read-only
        mappings are handled and a conversion to the new mount API (slightly
        complicated by the fact that we had a common option parsing framework
        that called out into rbd and the filesystem instead of them calling
        into it).
      
        Also included a few scattered fixes and a MAINTAINERS update for rbd,
        adding Dongsheng as a reviewer"
      
      * tag 'ceph-for-5.5-rc1' of git://github.com/ceph/ceph-client:
        libceph, rbd, ceph: convert to use the new mount API
        rbd: ask for a weaker incompat mask for read-only mappings
        rbd: don't query snapshot features
        rbd: remove snapshot existence validation code
        rbd: don't establish watch for read-only mappings
        rbd: don't acquire exclusive lock for read-only mappings
        rbd: disallow read-write partitions on images mapped read-only
        rbd: treat images mapped read-only seriously
        rbd: introduce RBD_DEV_FLAG_READONLY
        rbd: introduce rbd_is_snap()
        ceph: don't leave ino field in ceph_mds_request_head uninitialized
        ceph: tone down loglevel on ceph_mdsc_build_path warning
        rbd: update MAINTAINERS info
        ceph: fix geting random mds from mdsmap
        rbd: fix spelling mistake "requeueing" -> "requeuing"
        ceph: make several helper accessors take const pointers
        libceph: drop unnecessary check from dispatch() in mon_client.c
      a2315823
    • Linus Torvalds's avatar
      Merge tag 'fuse-update-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 7ce4fab8
      Linus Torvalds authored
      Pull fuse update from Miklos Szeredi:
      
       - Fix a regression introduced in the last release
      
       - Fix a number of issues with validating data coming from userspace
      
       - Some cleanups in virtiofs
      
      * tag 'fuse-update-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix Kconfig indentation
        fuse: fix leak of fuse_io_priv
        virtiofs: Use completions while waiting for queue to be drained
        virtiofs: Do not send forget request "struct list_head" element
        virtiofs: Use a common function to send forget
        virtiofs: Fix old-style declaration
        fuse: verify nlink
        fuse: verify write return
        fuse: verify attributes
      7ce4fab8
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 0f137416
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "Summary of modules changes for the 5.5 merge window:
      
         - Refactor include/linux/export.h and remove code duplication between
           EXPORT_SYMBOL and EXPORT_SYMBOL_NS to make it more readable.
      
           The most notable change is that no namespace is represented by an
           empty string "" rather than NULL.
      
         - Fix a module load/unload race where waiter(s) trying to load the
           same module weren't being woken up when a module finally goes away"
      
      * tag 'modules-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        kernel/module.c: wakeup processes in module_wq on module unload
        moduleparam: fix parameter description mismatch
        export: avoid code duplication in include/linux/export.h
      0f137416
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 25cfb0c7
      Linus Torvalds authored
      Pull m68knommu update from Greg Ungerer:
       "Only a single change, to enable coldfire preemption entry code for all
        preemption types"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k/coldfire: Use CONFIG_PREEMPTION
      25cfb0c7
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · b08baef0
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "We keep this in a separate branch to avoid cross-branch conflicts, but
        most of the material here is fairly boring -- some new drivers turned
        on for hardware since they were merged, and some refreshed files due
        to time having moved a lot of entries around"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (36 commits)
        ARM: config: multi_v5: ASPEED SDHCI, SGPIO
        ARM: configs: multi_v7: ASPEED network, gpio, FSI
        ARM: config: aspeed-g4: Add MMC, and cleanup
        ARM: config: aspeed-g5: Add SGPIO and FSI drivers
        ARM: config: aspeed-g5: Enable 8250_DW quirks
        arm64: defconfig: Change CONFIG_AT803X_PHY from m to y
        ARM: shmobile: defconfig: Refresh for v5.4-rc1
        arm64: defconfig: Enable R8A77961 SoC
        ARM: configs: sunxi: Enable MICREL_PHY
        arm64: defconfig: add new Allwinner crypto options
        ARM: configs: sunxi: add new Allwinner crypto options
        ARM: tegra: Enable Tegra VDE driver in tegra_defconfig
        ARM: imx_v6_v7_defconfig: Enable CONFIG_TOUCHSCREEN_DA9052
        arm64: defconfig: Enable configs for S32V234
        arm64: defconfig: Enable CONFIG_KEYBOARD_IMX_SC_KEY as module
        arm64: defconfig: Enable SMMU v3 PMCG
        arm64: defconfig: Enable HiSilicon ZIP controller
        arm64: defconfig: enable Altera GPIO controller
        ARM: multi_v7_defconfig: Enable audio support for stm32mp157
        arm64: defconfig: enable rsu driver
        ...
      b08baef0
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · eb275167
      Linus Torvalds authored
      Pull ARM Device-tree updates from Olof Johansson:
       "As always, the bulk of updates.  Some of the news this cycle:
      
        New SoC descriptions:
         - Broadcom BCM2711
         - Amlogic Meson A1 and G12
         - Freescale S32V234
         - Marvell Armada AP807/AP807-quad and CP115
         - Realtek RTD1293 and RTD1296
         - Rockchip RK3308
      
        New boards and platforms:
         - Allwinner: NanoPi Duo2
         - Amlogic: Ugoos am6
         - Atmel at91: Overkiz Kizbox2/4
         - Broadcom: RPi4, Luxul XWC-2000
         - Marvell: New Espressobin flavor
         - NXP: i.MX8MN LPDDR4 EVK, i.MX8QXP Colibri, S32V234 EVB, Netronix
           E60K02 and Kobo Clara HD, Kontron N6311 and N6411, OPOS6UL and
           OPOS6ULDev
         - Renesas: Salvator-XS
         - Rockchip: Beelink A1 (rk3308), rk3308 eval boards, rk3399-roc-pc"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (653 commits)
        ARM: dts: logicpd-torpedo: Disable USB Host
        arm: dts: mt6323: add keys, power-controller, rtc and codec
        arm64: dts: mt8183: add systimer0 device node
        dt-bindings: mediatek: update bindings for MT8183 systimer
        arm64: dts: rockchip: fix sdmmc detection on boot on rk3328-roc-cc
        arm64: dts: rockchip: Split rk3399-roc-pc for with and without mezzanine board.
        arm64: dts: rockchip: Add Beelink A1
        dt-bindings: ARM: rockchip: Add Beelink A1
        arm64: dts: rockchip: Add RK3328 audio pipelines
        arm64: dts: ti: k3-j721e-common-proc-board: Add USB ports
        arm64: dts: ti: k3-j721e-main: add USB controller nodes
        ARM: dts: aspeed-g6: Add timer description
        ARM: dts: aspeed: ast2600evb: Enable i2c buses
        ARM: dts: at91: add a dts and dtsi file for kizbox2 based boards
        dt-bindings: arm: at91: Document Kizbox2-2 board binding
        arm64: dts: meson-gx: fix i2c compatible
        arm64: dts: meson-gx: cec node should be disabled by default
        arm64: dts: meson-g12b-odroid-n2: add missing amlogic, s922x compatible
        arm64: dts: meson-gxm: fix gpu irq order
        arm64: dts: meson-g12a: fix gpu irq order
        ...
      eb275167
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ec939e4c
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Various driver updates for platforms:
      
         - A larger set of work on Tegra 2/3 around memory controller and
           regulator features, some fuse cleanups, etc..
      
         - MMP platform drivers, in particular for USB PHY, and other smaller
           additions.
      
         - Samsung Exynos 5422 driver for DMC (dynamic memory configuration),
           and ASV (adaptive voltage), allowing the platform to run at more
           optimal operating points.
      
         - Misc refactorings and support for RZ/G2N and R8A774B1 from Renesas
      
         - Clock/reset control driver for TI/OMAP
      
         - Meson-A1 reset controller support
      
         - Qualcomm sdm845 and sda845 SoC IDs for socinfo"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (150 commits)
        firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT
        soc: fsl: add RCPM driver
        dt-bindings: fsl: rcpm: Add 'little-endian' and update Chassis definition
        memory: tegra: Consolidate registers definition into common header
        memory: tegra: Ensure timing control debug features are disabled
        memory: tegra: Introduce Tegra30 EMC driver
        memory: tegra: Do not handle error from wait_for_completion_timeout()
        memory: tegra: Increase handshake timeout on Tegra20
        memory: tegra: Print a brief info message about EMC timings
        memory: tegra: Pre-configure debug register on Tegra20
        memory: tegra: Include io.h instead of iopoll.h
        memory: tegra: Adapt for Tegra20 clock driver changes
        memory: tegra: Don't set EMC rate to maximum on probe for Tegra20
        memory: tegra: Add gr2d and gr3d to DRM IOMMU group
        memory: tegra: Set DMA mask based on supported address bits
        soc: at91: Add Atmel SFR SN (Serial Number) support
        memory: atmel-ebi: switch to SPDX license identifiers
        memory: atmel-ebi: move NUM_CS definition inside EBI driver
        soc: mediatek: Refactor bus protection control
        soc: mediatek: Refactor sram control
        ...
      ec939e4c
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 38206c24
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "Most of these are for MMP (seeing a bunch of cleanups and refactorings
        for the first time in a while), and for OMAP (a bunch of cleanups and
        added support for voltage controller on OMAP4430)"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (51 commits)
        ARM: OMAP2+: Add missing put_device() call in omapdss_init_of()
        OMAP2: fixup doc comments in omap_device
        ARM: OMAP1: drop duplicated dependency on ARCH_OMAP1
        ARM: ASPEED: update default ARCH_NR_GPIO for ARCH_ASPEED
        ARM: imx: use generic function to exit coherency
        ARM: tegra: Use WFE for power-gating on Tegra30
        ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
        ARM: exynos: Enable exynos-asv driver for ARCH_EXYNOS
        ARM: s3c: Rename s5p_usb_phy functions
        ARM: s3c: Rename s3c64xx_spi_setname() function
        ARM: imx: Add serial number support for i.MX6/7 SoCs
        ARM: imx: Drop imx_anatop_usb_chrg_detect_disable()
        arm64: Introduce config for S32
        ARM: hisi: drop useless depend on ARCH_MULTI_V7
        arm64: realtek: Select reset controller
        ARM: shmobile: rcar-gen2: Drop legacy DT clock support
        ARM: OMAP2+: Remove duplicated include from pmic-cpcap.c
        ARM: OMAP1: ams-delta FIQ: Fix a typo ("Initiaize")
        MAINTAINERS: Add logicpd-som-lv and logicpd-torpedo to OMAP TREE
        ARM: OMAP2+: pdata-quirks: drop TI_ST/KIM support
        ...
      38206c24
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.5-rc1' of... · d9e48dc2
      Linus Torvalds authored
      Merge tag 'pwm/for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "Various changes and minor fixes across a couple of drivers"
      
      * tag 'pwm/for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: stm32: Pass breakinput instead of its values
        pwm: stm32: Remove clutter from ternary operator
        pwm: stm32: Validate breakinput data from DT
        pwm: Update comment on struct pwm_ops::apply
        pwm: sun4i: Fix incorrect calculation of duty_cycle/period
        pwm: stm32: Add power management support
        pwm: stm32: Split breakinput apply routine to ease PM support
        dt-bindings: pwm-stm32: Document pinctrl sleep state
        pwm: sun4i: Drop redundant assignment to variable pval
        dt-bindings: pwm: mediatek: Remove gratuitous compatible string for MT7629
      d9e48dc2
    • Linus Torvalds's avatar
      Merge branch 'thermal/next' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · fb3da48a
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
      
       - Fix a deadlock regression in thermal core framework, which was
         introduced in 5.3 (Wei Wang)
      
       - Initialize thermal control framework earlier to enable thermal
         mitigation during boot (Amit Kucheria)
      
       - Convert the Intelligent Power Allocator (IPA) thermal governor to
         follow the generic PM_EM instead of its own Energy Model (Quentin
         Perret)
      
       - Introduce a new Amlogic soc thermal driver (Guillaume La Roque)
      
       - Add interrupt support for tsens thermal driver (Amit Kucheria)
      
       - Add support for MSM8956/8976 in tsens thermal driver
         (AngeloGioacchino Del Regno)
      
       - Add support for r8a774b1 in rcar thermal driver (Biju Das)
      
       - Add support for Thermal Monitor Unit v2 in qoriq thermal driver
         (Yuantian Tang)
      
       - Some other fixes/cleanups on thermal core framework and soc thermal
         drivers (Colin Ian King, Daniel Lezcano, Hsin-Yi Wang, Tian Tao)
      
      * 'thermal/next' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (32 commits)
        thermal: Fix deadlock in thermal thermal_zone_device_check
        thermal: cpu_cooling: Migrate to using the EM framework
        thermal: cpu_cooling: Make the power-related code depend on IPA
        PM / EM: Declare EM data types unconditionally
        arm64: defconfig: Enable CONFIG_ENERGY_MODEL
        drivers: thermal: tsens: fix potential integer overflow on multiply
        thermal: cpu_cooling: Reorder the header file
        thermal: cpu_cooling: Remove pointless dependency on CONFIG_OF
        thermal: no need to set .owner when using module_platform_driver
        thermal: qcom: tsens-v1: Fix kfree of a non-pointer value
        cpufreq: qcom-hw: Move driver initialization earlier
        clk: qcom: Initialize clock drivers earlier
        cpufreq: Initialize cpufreq-dt driver earlier
        cpufreq: Initialize the governors in core_initcall
        thermal: Initialize thermal subsystem earlier
        thermal: Remove netlink support
        dt: thermal: tsens: Document compatible for MSM8976/56
        thermal: qcom: tsens-v1: Add support for MSM8956 and MSM8976
        MAINTAINERS: add entry for Amlogic Thermal driver
        thermal: amlogic: Add thermal driver to support G12 SoCs
        ...
      fb3da48a
    • Justin Tee's avatar
      block: fix memleak of bio integrity data · ece841ab
      Justin Tee authored
      7c20f116 ("bio-integrity: stop abusing bi_end_io") moves
      bio_integrity_free from bio_uninit() to bio_integrity_verify_fn()
      and bio_endio(). This way looks wrong because bio may be freed
      without calling bio_endio(), for example, blk_rq_unprep_clone() is
      called from dm_mq_queue_rq() when the underlying queue of dm-mpath
      is busy.
      
      So memory leak of bio integrity data is caused by commit 7c20f116.
      
      Fixes this issue by re-adding bio_integrity_free() to bio_uninit().
      
      Fixes: 7c20f116 ("bio-integrity: stop abusing bi_end_io")
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by Justin Tee <justin.tee@broadcom.com>
      
      Add commit log, and simplify/fix the original patch wroten by Justin.
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      ece841ab
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 5ecc9d15
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
       "Most of the rest of MM and various other things. Some Kconfig rework
        still awaits merges of dependent trees from linux-next.
      
        Subsystems affected by this patch series: mm/hotfixes, mm/memcg,
        mm/vmstat, mm/thp, procfs, sysctl, misc, notifiers, core-kernel,
        bitops, lib, checkpatch, epoll, binfmt, init, rapidio, uaccess, kcov,
        ubsan, ipc, bitmap, mm/pagemap"
      
      * akpm: (86 commits)
        mm: remove __ARCH_HAS_4LEVEL_HACK and include/asm-generic/4level-fixup.h
        um: add support for folded p4d page tables
        um: remove unused pxx_offset_proc() and addr_pte() functions
        sparc32: use pgtable-nopud instead of 4level-fixup
        parisc/hugetlb: use pgtable-nopXd instead of 4level-fixup
        parisc: use pgtable-nopXd instead of 4level-fixup
        nds32: use pgtable-nopmd instead of 4level-fixup
        microblaze: use pgtable-nopmd instead of 4level-fixup
        m68k: mm: use pgtable-nopXd instead of 4level-fixup
        m68k: nommu: use pgtable-nopud instead of 4level-fixup
        c6x: use pgtable-nopud instead of 4level-fixup
        arm: nommu: use pgtable-nopud instead of 4level-fixup
        alpha: use pgtable-nopud instead of 4level-fixup
        gpio: pca953x: tighten up indentation
        gpio: pca953x: convert to use bitmap API
        gpio: pca953x: use input from regs structure in pca953x_irq_pending()
        gpio: pca953x: remove redundant variable and check in IRQ handler
        lib/bitmap: introduce bitmap_replace() helper
        lib/test_bitmap: fix comment about this file
        lib/test_bitmap: move exp1 and exp2 upper for others to use
        ...
      5ecc9d15
    • LimingWu's avatar
      io_uring: fix a typo in a comment · 0b4295b5
      LimingWu authored
      thatn -> than.
      Signed-off-by: default avatarLiming Wu <19092205@suning.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      0b4295b5
    • Hou Tao's avatar
      bfq-iosched: Ensure bio->bi_blkg is valid before using it · 08802ed6
      Hou Tao authored
      bio->bi_blkg will be NULL when the issue of the request
      has bypassed the block layer as shown in the following oops:
      
       Internal error: Oops: 96000005 [#1] SMP
       CPU: 17 PID: 2996 Comm: scsi_id Not tainted 5.4.0 #4
       Call trace:
        percpu_counter_add_batch+0x38/0x4c8
        bfqg_stats_update_legacy_io+0x9c/0x280
        bfq_insert_requests+0xbac/0x2190
        blk_mq_sched_insert_request+0x288/0x670
        blk_execute_rq_nowait+0x140/0x178
        blk_execute_rq+0x8c/0x140
        sg_io+0x604/0x9c0
        scsi_cmd_ioctl+0xe38/0x10a8
        scsi_cmd_blk_ioctl+0xac/0xe8
        sd_ioctl+0xe4/0x238
        blkdev_ioctl+0x590/0x20e0
        block_ioctl+0x60/0x98
        do_vfs_ioctl+0xe0/0x1b58
        ksys_ioctl+0x80/0xd8
        __arm64_sys_ioctl+0x40/0x78
        el0_svc_handler+0xc4/0x270
      
      so ensure its validity before using it.
      
      Fixes: fd41e603 ("bfq-iosched: stop using blkg->stat_bytes and ->stat_ios")
      Signed-off-by: default avatarHou Tao <houtao1@huawei.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      08802ed6
    • Pavel Begunkov's avatar
      io_uring: hook all linked requests via link_list · 4493233e
      Pavel Begunkov authored
      Links are created by chaining requests through req->list with an
      exception that head uses req->link_list. (e.g. link_list->list->list)
      Because of that, io_req_link_next() needs complex splicing to advance.
      
      Link them all through list_list. Also, it seems to be simpler and more
      consistent IMHO.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4493233e
    • Pavel Begunkov's avatar
      io_uring: fix error handling in io_queue_link_head · 2e6e1fde
      Pavel Begunkov authored
      In case of an error io_submit_sqe() drops a request and continues
      without it, even if the request was a part of a link. Not only it
      doesn't cancel links, but also may execute wrong sequence of actions.
      
      Stop consuming sqes, and let the user handle errors.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2e6e1fde
    • Madhavan Srinivasan's avatar
      powerpc/perf: Disable trace_imc pmu · 249fad73
      Madhavan Srinivasan authored
      When a root user or a user with CAP_SYS_ADMIN privilege uses any
      trace_imc performance monitoring unit events, to monitor application
      or KVM threads, it may result in a checkstop (System crash).
      
      The cause is frequent switching of the "trace/accumulation" mode of
      the In-Memory Collection hardware (LDBAR).
      
      This patch disables the trace_imc PMU unit entirely to avoid
      triggering the checkstop. A future patch will reenable it at a later
      stage once a workaround has been developed.
      
      Fixes: 012ae244 ("powerpc/perf: Trace imc PMU functions")
      Cc: stable@vger.kernel.org # v5.2+
      Signed-off-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Tested-by: default avatarHariharan T.S. <hari@linux.ibm.com>
      [mpe: Add pr_info_once() so dmesg shows the PMU has been disabled]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20191118034452.9939-1-maddy@linux.vnet.ibm.com
      249fad73
    • Anju T Sudhakar's avatar
      powerpc/powernv: Avoid re-registration of imc debugfs directory · 48e626ac
      Anju T Sudhakar authored
      export_imc_mode_and_cmd() function which creates the debugfs interface
      for imc-mode and imc-command, is invoked when each nest pmu units is
      registered.
      
      When the first nest pmu unit is registered, export_imc_mode_and_cmd()
      creates 'imc' directory under `/debug/powerpc/`. In the subsequent
      invocations debugfs_create_dir() function returns, since the directory
      already exists.
      
      The recent commit <c33d4423> (debugfs: make error message a bit
      more verbose), throws a warning if we try to invoke
      `debugfs_create_dir()` with an already existing directory name.
      
      Address this warning by making the debugfs directory registration in
      the opal_imc_counters_probe() function, i.e invoke
      export_imc_mode_and_cmd() function from the probe function.
      Signed-off-by: default avatarAnju T Sudhakar <anju@linux.vnet.ibm.com>
      Tested-by: default avatarNageswara R Sastry <nasastry@in.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20191127072035.4283-1-anju@linux.vnet.ibm.com
      48e626ac
    • Mike Rapoport's avatar
      mm: remove __ARCH_HAS_4LEVEL_HACK and include/asm-generic/4level-fixup.h · f949286c
      Mike Rapoport authored
      There are no architectures that use include/asm-generic/4level-fixup.h
      therefore it can be removed along with __ARCH_HAS_4LEVEL_HACK define.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-14-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f949286c
    • Mike Rapoport's avatar
      um: add support for folded p4d page tables · e19f97ed
      Mike Rapoport authored
      The UML port uses 4 and 5 level fixups to support higher level page
      table directories in the generic VM code.
      
      Implement primitives necessary for the 4th level folding, add walks of
      p4d level where appropriate and drop usage of __ARCH_USE_5LEVEL_HACK.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-13-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e19f97ed