Skip to content
  1. May 16, 2021
    • Linus Torvalds's avatar
      Merge tag 'core-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 91b7a0f0
      Linus Torvalds authored
      Pull x86 stack randomization fix from Ingo Molnar:
       "Fix an assembly constraint that affected LLVM up to version 12"
      
      * tag 'core-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        stack: Replace "o" output with "r" input constraint
      91b7a0f0
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · a4147415
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "13 patches.
      
        Subsystems affected by this patch series: resource, squashfs, hfsplus,
        modprobe, and mm (hugetlb, slub, userfaultfd, ksm, pagealloc, kasan,
        pagemap, and ioremap)"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/ioremap: fix iomap_max_page_shift
        docs: admin-guide: update description for kernel.modprobe sysctl
        hfsplus: prevent corruption in shrinking truncate
        mm/filemap: fix readahead return types
        kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled
        mm: fix struct page layout on 32-bit systems
        ksm: revert "use GET_KSM_PAGE_NOLOCK to get ksm page in remove_rmap_item_from_tree()"
        userfaultfd: release page in error path to avoid BUG_ON
        squashfs: fix divide error in calculate_skip()
        kernel/resource: fix return code check in __request_free_mem_region
        mm, slub: move slub_debug static key enabling outside slab_mutex
        mm/hugetlb: fix cow where page writtable in child
        mm/hugetlb: fix F_SEAL_FUTURE_WRITE
      a4147415
    • Linus Torvalds's avatar
      Merge tag 'arc-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · f36edc55
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
      
       - PAE fixes
      
       - syscall num check off-by-one bug
      
       - misc fixes
      
      * tag 'arc-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: mm: Use max_high_pfn as a HIGHMEM zone border
        ARC: mm: PAE: use 40-bit physical page mask
        ARC: entry: fix off-by-one error in syscall number validation
        ARC: kgdb: add 'fallthrough' to prevent a warning
        arc: Fix typos/spellos
      f36edc55
  2. May 15, 2021
    • Linus Torvalds's avatar
      Merge tag 'block-5.13-2021-05-14' of git://git.kernel.dk/linux-block · 8f4ae0f6
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Fix for shared tag set exit (Bart)
      
       - Correct ioctl range for zoned ioctls (Damien)
      
       - Removed dead/unused function (Lin)
      
       - Fix perf regression for shared tags (Ming)
      
       - Fix out-of-bounds issue with kyber and preemption (Omar)
      
       - BFQ merge fix (Paolo)
      
       - Two error handling fixes for nbd (Sun)
      
       - Fix weight update in blk-iocost (Tejun)
      
       - NVMe pull request (Christoph):
            - correct the check for using the inline bio in nvmet (Chaitanya
              Kulkarni)
            - demote unsupported command warnings (Chaitanya Kulkarni)
            - fix corruption due to double initializing ANA state (me, Hou Pu)
            - reset ns->file when open fails (Daniel Wagner)
            - fix a NULL deref when SEND is completed with error in nvmet-rdma
              (Michal Kalderon)
      
       - Fix kernel-doc warning (Bart)
      
      * tag 'block-5.13-2021-05-14' of git://git.kernel.dk/linux-block:
        block/partitions/efi.c: Fix the efi_partition() kernel-doc header
        blk-mq: Swap two calls in blk_mq_exit_queue()
        blk-mq: plug request for shared sbitmap
        nvmet: use new ana_log_size instead the old one
        nvmet: seset ns->file when open fails
        nbd: share nbd_put and return by goto put_nbd
        nbd: Fix NULL pointer in flush_workqueue
        blkdev.h: remove unused codes blk_account_rq
        block, bfq: avoid circular stable merges
        blk-iocost: fix weight updates of inner active iocgs
        nvmet: demote fabrics cmd parse err msg to debug
        nvmet: use helper to remove the duplicate code
        nvmet: demote discovery cmd parse err msg to debug
        nvmet-rdma: Fix NULL deref when SEND is completed with error
        nvmet: fix inline bio check for passthru
        nvmet: fix inline bio check for bdev-ns
        nvme-multipath: fix double initialization of ANA state
        kyber: fix out of bounds access when preempted
        block: uapi: fix comment about block device ioctl
      8f4ae0f6
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.13-2021-05-14' of git://git.kernel.dk/linux-block · 56015910
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Just a few minor fixes/changes:
      
         - Fix issue with double free race for linked timeout completions
      
         - Fix reference issue with timeouts
      
         - Remove last few places that make SQPOLL special, since it's just an
           io thread now.
      
         - Bump maximum allowed registered buffers, as we don't allocate as
           much anymore"
      
      * tag 'io_uring-5.13-2021-05-14' of git://git.kernel.dk/linux-block:
        io_uring: increase max number of reg buffers
        io_uring: further remove sqpoll limits on opcodes
        io_uring: fix ltout double free on completion race
        io_uring: fix link timeout refs
      56015910
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.13-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 41f035c0
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
       "This mainly fixes 1 lcluster-sized pclusters for the big pcluster
        feature, which can be forcely generated by mkfs as a specific on-disk
        case for per-(sub)file compression strategies but missed to handle in
        runtime properly.
      
        Also, documentation updates are included to fix the broken
        illustration due to the ReST conversion by accident and complete the
        big pcluster introduction.
      
        Summary:
      
         - update documentation to fix the broken illustration due to ReST
           conversion by accident at that time and complete the big pcluster
           introduction
      
         - fix 1 lcluster-sized pclusters for the big pcluster feature"
      
      * tag 'erofs-for-5.13-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: fix 1 lcluster-sized pcluster for big pcluster
        erofs: update documentation about data compression
        erofs: fix broken illustration in documentation
      41f035c0
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · a5ce4296
      Linus Torvalds authored
      Pull libnvdimm fixes from Dan Williams:
       "A regression fix for a bootup crash condition introduced in this merge
        window and some other minor fixups:
      
         - Fix regression in ACPI NFIT table handling leading to crashes and
           driver load failures.
      
         - Move the nvdimm mailing list
      
         - Miscellaneous minor fixups"
      
      * tag 'libnvdimm-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        ACPI: NFIT: Fix support for variable 'SPA' structure size
        MAINTAINERS: Move nvdimm mailing list
        tools/testing/nvdimm: Make symbol '__nfit_test_ioremap' static
        libnvdimm: Remove duplicate struct declaration
      a5ce4296
    • Linus Torvalds's avatar
      Merge tag 'dax-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 393f42f1
      Linus Torvalds authored
      Pull dax fixes from Dan Williams:
       "A fix for a hang condition due to missed wakeups in the filesystem-dax
        core when exercised by virtiofs.
      
        This bug has been there from the beginning, but the condition has
        not triggered on other filesystems since they hold a lock over
        invalidation events"
      
      * tag 'dax-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: Wake up all waiters after invalidating dax entry
        dax: Add a wakeup mode parameter to put_unlocked_entry()
        dax: Add an enum for specifying dax wakup mode
      393f42f1
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-05-15' of git://anongit.freedesktop.org/drm/drm · 33f85ca4
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Looks like I wasn't the only one not fully switched on this week. The
        msm pull has a missing tag so I missed it, and i915 team were a bit
        late. In my defence I did have a day with the roof of my home office
        removed, so was sitting at my kids desk.
      
        msm:
         - dsi regression fix
         - dma-buf pinning fix
         - displayport fixes
         - llc fix
      
        i915:
         - Fix active callback alignment annotations and subsequent crashes
         - Retract link training strategy to slow and wide, again
         - Avoid division by zero on gen2
         - Use correct width reads for C0DRB3/C1DRB3 registers
         - Fix double free in pdp allocation failure path
         - Fix HDMI 2.1 PCON downstream caps check"
      
      * tag 'drm-fixes-2021-05-15' of git://anongit.freedesktop.org/drm/drm:
        drm/i915: Use correct downstream caps for check Src-Ctl mode for PCON
        drm/i915/overlay: Fix active retire callback alignment
        drm/i915: Fix crash in auto_retire
        drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp
        drm/i915: Read C0DRB3/C1DRB3 as 16 bits again
        drm/i915: Avoid div-by-zero on gen2
        drm/i915/dp: Use slow and wide link training for everything
        drm/msm/dp: initialize audio_comp when audio starts
        drm/msm/dp: check sink_count before update is_connected status
        drm/msm: fix minor version to indicate MSM_PARAM_SUSPENDS support
        drm/msm/dsi: fix msm_dsi_phy_get_clk_provider return code
        drm/msm/dsi: dsi_phy_28nm_8960: fix uninitialized variable access
        drm/msm: fix LLC not being enabled for mmu500 targets
        drm/msm: Do not unpin/evict exported dma-buf's
      33f85ca4
    • Tetsuo Handa's avatar
      tty: vt: always invoke vc->vc_sw->con_resize callback · ffb324e6
      Tetsuo Handa authored
      
      
      syzbot is reporting OOB write at vga16fb_imageblit() [1], for
      resize_screen() from ioctl(VT_RESIZE) returns 0 without checking whether
      requested rows/columns fit the amount of memory reserved for the graphical
      screen if current mode is KD_GRAPHICS.
      
      ----------
        #include <sys/types.h>
        #include <sys/stat.h>
        #include <fcntl.h>
        #include <sys/ioctl.h>
        #include <linux/kd.h>
        #include <linux/vt.h>
      
        int main(int argc, char *argv[])
        {
              const int fd = open("/dev/char/4:1", O_RDWR);
              struct vt_sizes vt = { 0x4100, 2 };
      
              ioctl(fd, KDSETMODE, KD_GRAPHICS);
              ioctl(fd, VT_RESIZE, &vt);
              ioctl(fd, KDSETMODE, KD_TEXT);
              return 0;
        }
      ----------
      
      Allow framebuffer drivers to return -EINVAL, by moving vc->vc_mode !=
      KD_GRAPHICS check from resize_screen() to fbcon_resize().
      
      Link: https://syzkaller.appspot.com/bug?extid=1f29e126cf461c4de3b3 [1]
      Reported-by: default avatarsyzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Tested-by: default avatarsyzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffb324e6
    • Christophe Leroy's avatar
      mm/ioremap: fix iomap_max_page_shift · 86d0c164
      Christophe Leroy authored
      iomap_max_page_shift is expected to contain a page shift, so it can't be a
      'bool', has to be an 'unsigned int'
      
      And fix the default values: P4D_SHIFT is when huge iomap is allowed.
      
      However, on some architectures (eg: powerpc book3s/64), P4D_SHIFT is not a
      constant so it can't be used to initialise a static variable.  So,
      initialise iomap_max_page_shift with a maximum shift supported by the
      architecture, it is gated by P4D_SHIFT in vmap_try_huge_p4d() anyway.
      
      Link: https://lkml.kernel.org/r/ad2d366015794a9f21320dcbdd0a8eb98979e9df.1620898113.git.christophe.leroy@csgroup.eu
      Fixes: bbc180a5
      
       ("mm: HUGE_VMAP arch support cleanup")
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Reviewed-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      86d0c164
    • Rasmus Villemoes's avatar
      docs: admin-guide: update description for kernel.modprobe sysctl · f4d3f25a
      Rasmus Villemoes authored
      When I added CONFIG_MODPROBE_PATH, I neglected to update Documentation/.
      It's still true that this defaults to /sbin/modprobe, but now via a level
      of indirection.  So document that the kernel might have been built with
      something other than /sbin/modprobe as the initial value.
      
      Link: https://lkml.kernel.org/r/20210420125324.1246826-1-linux@rasmusvillemoes.dk
      Fixes: 17652f42
      
       ("modules: add CONFIG_MODPROBE_PATH")
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jessica Yu <jeyu@kernel.org>
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f4d3f25a
    • Jouni Roivas's avatar
      hfsplus: prevent corruption in shrinking truncate · c3187cf3
      Jouni Roivas authored
      I believe there are some issues introduced by commit 31651c60
      ("hfsplus: avoid deadlock on file truncation")
      
      HFS+ has extent records which always contains 8 extents.  In case the
      first extent record in catalog file gets full, new ones are allocated from
      extents overflow file.
      
      In case shrinking truncate happens to middle of an extent record which
      locates in extents overflow file, the logic in hfsplus_file_truncate() was
      changed so that call to hfs_brec_remove() is not guarded any more.
      
      Right action would be just freeing the extents that exceed the new size
      inside extent record by calling hfsplus_free_extents(), and then check if
      the whole extent record should be removed.  However since the guard
      (blk_cnt > start) is now after the call to hfs_brec_remove(), this has
      unfortunate effect that the last matching extent record is removed
      unconditionally.
      
      To reproduce this issue, create a file which has at least 10 extents, and
      then perform shrinking truncate into middle of the last extent record, so
      that the number of remaining extents is not under or divisible by 8.  This
      causes the last extent record (8 extents) to be removed totally instead of
      truncating into middle of it.  Thus this causes corruption, and lost data.
      
      Fix for this is simply checking if the new truncated end is below the
      start of this extent record, making it safe to remove the full extent
      record.  However call to hfs_brec_remove() can't be moved to it's previous
      place since we're dropping ->tree_lock and it can cause a race condition
      and the cached info being invalidated possibly corrupting the node data.
      
      Another issue is related to this one.  When entering into the block
      (blk_cnt > start) we are not holding the ->tree_lock.  We break out from
      the loop not holding the lock, but hfs_find_exit() does unlock it.  Not
      sure if it's possible for someone else to take the lock under our feet,
      but it can cause hard to debug errors and premature unlocking.  Even if
      there's no real risk of it, the locking should still always be kept in
      balance.  Thus taking the lock now just before the check.
      
      Link: https://lkml.kernel.org/r/20210429165139.3082828-1-jouni.roivas@tuxera.com
      Fixes: 31651c60
      
       ("hfsplus: avoid deadlock on file truncation")
      Signed-off-by: default avatarJouni Roivas <jouni.roivas@tuxera.com>
      Reviewed-by: default avatarAnton Altaparmakov <anton@tuxera.com>
      Cc: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
      Cc: Viacheslav Dubeyko <slava@dubeyko.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c3187cf3
    • Matthew Wilcox (Oracle)'s avatar
      mm/filemap: fix readahead return types · 076171a6
      Matthew Wilcox (Oracle) authored
      A readahead request will not allocate more memory than can be represented
      by a size_t, even on systems that have HIGHMEM available.  Change the
      length functions from returning an loff_t to a size_t.
      
      Link: https://lkml.kernel.org/r/20210510201201.1558972-1-willy@infradead.org
      Fixes: 32c0a6bc
      
       ("btrfs: add and use readahead_batch_length")
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      076171a6
    • Peter Collingbourne's avatar
      kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled · f649dc0e
      Peter Collingbourne authored
      
      
      These tests deliberately access these arrays out of bounds, which will
      cause the dynamic local bounds checks inserted by
      CONFIG_UBSAN_LOCAL_BOUNDS to fail and panic the kernel.  To avoid this
      problem, access the arrays via volatile pointers, which will prevent the
      compiler from being able to determine the array bounds.
      
      These accesses use volatile pointers to char (char *volatile) rather than
      the more conventional pointers to volatile char (volatile char *) because
      we want to prevent the compiler from making inferences about the pointer
      itself (i.e.  its array bounds), not the data that it refers to.
      
      Link: https://lkml.kernel.org/r/20210507025915.1464056-1-pcc@google.com
      Link: https://linux-review.googlesource.com/id/I90b1713fbfa1bf68ff895aef099ea77b98a7c3b9
      Signed-off-by: default avatarPeter Collingbourne <pcc@google.com>
      Tested-by: default avatarAlexander Potapenko <glider@google.com>
      Reviewed-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
      Cc: Peter Collingbourne <pcc@google.com>
      Cc: George Popescu <georgepope@android.com>
      Cc: Elena Petrova <lenaptr@google.com>
      Cc: Evgenii Stepanov <eugenis@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f649dc0e
    • Matthew Wilcox (Oracle)'s avatar
      mm: fix struct page layout on 32-bit systems · 9ddb3c14
      Matthew Wilcox (Oracle) authored
      32-bit architectures which expect 8-byte alignment for 8-byte integers and
      need 64-bit DMA addresses (arm, mips, ppc) had their struct page
      inadvertently expanded in 2019.  When the dma_addr_t was added, it forced
      the alignment of the union to 8 bytes, which inserted a 4 byte gap between
      'flags' and the union.
      
      Fix this by storing the dma_addr_t in one or two adjacent unsigned longs.
      This restores the alignment to that of an unsigned long.  We always
      store the low bits in the first word to prevent the PageTail bit from
      being inadvertently set on a big endian platform.  If that happened,
      get_user_pages_fast() racing against a page which was freed and
      reallocated to the page_pool could dereference a bogus compound_head(),
      which would be hard to trace back to this cause.
      
      Link: https://lkml.kernel.org/r/20210510153211.1504886-1-willy@infradead.org
      Fixes: c25fff71
      
       ("mm: add dma_addr_t to struct page")
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Acked-by: default avatarIlias Apalodimas <ilias.apalodimas@linaro.org>
      Acked-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Tested-by: default avatarMatteo Croce <mcroce@linux.microsoft.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9ddb3c14
    • Hugh Dickins's avatar
      ksm: revert "use GET_KSM_PAGE_NOLOCK to get ksm page in remove_rmap_item_from_tree()" · 62862290
      Hugh Dickins authored
      This reverts commit 3e96b6a2
      
      .  General
      Protection Fault in rmap_walk_ksm() under memory pressure:
      remove_rmap_item_from_tree() needs to take page lock, of course.
      
      Link: https://lkml.kernel.org/r/alpine.LSU.2.11.2105092253500.1127@eggly.anvils
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Miaohe Lin <linmiaohe@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      62862290
    • Axel Rasmussen's avatar
      userfaultfd: release page in error path to avoid BUG_ON · 7ed9d238
      Axel Rasmussen authored
      Consider the following sequence of events:
      
      1. Userspace issues a UFFD ioctl, which ends up calling into
         shmem_mfill_atomic_pte(). We successfully account the blocks, we
         shmem_alloc_page(), but then the copy_from_user() fails. We return
         -ENOENT. We don't release the page we allocated.
      2. Our caller detects this error code, tries the copy_from_user() after
         dropping the mmap_lock, and retries, calling back into
         shmem_mfill_atomic_pte().
      3. Meanwhile, let's say another process filled up the tmpfs being used.
      4. So shmem_mfill_atomic_pte() fails to account blocks this time, and
         immediately returns - without releasing the page.
      
      This triggers a BUG_ON in our caller, which asserts that the page
      should always be consumed, unless -ENOENT is returned.
      
      To fix this, detect if we have such a "dangling" page when accounting
      fails, and if so, release it before returning.
      
      Link: https://lkml.kernel.org/r/20210428230858.348400-1-axelrasmussen@google.com
      Fixes: cb658a45
      
       ("userfaultfd: shmem: avoid leaking blocks and used blocks in UFFDIO_COPY")
      Signed-off-by: default avatarAxel Rasmussen <axelrasmussen@google.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7ed9d238
    • Phillip Lougher's avatar
      squashfs: fix divide error in calculate_skip() · d6e621de
      Phillip Lougher authored
      
      
      Sysbot has reported a "divide error" which has been identified as being
      caused by a corrupted file_size value within the file inode.  This value
      has been corrupted to a much larger value than expected.
      
      Calculate_skip() is passed i_size_read(inode) >> msblk->block_log.  Due to
      the file_size value corruption this overflows the int argument/variable in
      that function, leading to the divide error.
      
      This patch changes the function to use u64.  This will accommodate any
      unexpectedly large values due to corruption.
      
      The value returned from calculate_skip() is clamped to be never more than
      SQUASHFS_CACHED_BLKS - 1, or 7.  So file_size corruption does not lead to
      an unexpectedly large return result here.
      
      Link: https://lkml.kernel.org/r/20210507152618.9447-1-phillip@squashfs.org.uk
      Signed-off-by: default avatarPhillip Lougher <phillip@squashfs.org.uk>
      Reported-by: default avatar <syzbot+e8f781243ce16ac2f962@syzkaller.appspotmail.com>
      Reported-by: default avatar <syzbot+7b98870d4fec9447b951@syzkaller.appspotmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d6e621de
    • Alistair Popple's avatar
      kernel/resource: fix return code check in __request_free_mem_region · eb1f065f
      Alistair Popple authored
      Splitting an earlier version of a patch that allowed calling
      __request_region() while holding the resource lock into a series of
      patches required changing the return code for the newly introduced
      __request_region_locked().
      
      Unfortunately this change was not carried through to a subsequent commit
      56fd9491 ("kernel/resource: fix locking in request_free_mem_region")
      in the series.  This resulted in a use-after-free due to freeing the
      struct resource without properly releasing it.  Fix this by correcting the
      return code check so that the struct is not freed if the request to add it
      was successful.
      
      Link: https://lkml.kernel.org/r/20210512073528.22334-1-apopple@nvidia.com
      Fixes: 56fd9491
      
       ("kernel/resource: fix locking in request_free_mem_region")
      Signed-off-by: default avatarAlistair Popple <apopple@nvidia.com>
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jerome Glisse <jglisse@redhat.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Cc: Muchun Song <smuchun@gmail.com>
      Cc: Oliver Sang <oliver.sang@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eb1f065f
    • Vlastimil Babka's avatar
      mm, slub: move slub_debug static key enabling outside slab_mutex · afe0c26d
      Vlastimil Babka authored
      Paul E.  McKenney reported [1] that commit 1f0723a4 ("mm, slub: enable
      slub_debug static key when creating cache with explicit debug flags")
      results in the lockdep complaint:
      
       ======================================================
       WARNING: possible circular locking dependency detected
       5.12.0+ #15 Not tainted
       ------------------------------------------------------
       rcu_torture_sta/109 is trying to acquire lock:
       ffffffff96063cd0 (cpu_hotplug_lock){++++}-{0:0}, at: static_key_enable+0x9/0x20
      
       but task is already holding lock:
       ffffffff96173c28 (slab_mutex){+.+.}-{3:3}, at: kmem_cache_create_usercopy+0x2d/0x250
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #1 (slab_mutex){+.+.}-{3:3}:
              lock_acquire+0xb9/0x3a0
              __mutex_lock+0x8d/0x920
              slub_cpu_dead+0x15/0xf0
              cpuhp_invoke_callback+0x17a/0x7c0
              cpuhp_invoke_callback_range+0x3b/0x80
              _cpu_down+0xdf/0x2a0
              cpu_down+0x2c/0x50
              device_offline+0x82/0xb0
              remove_cpu+0x1a/0x30
              torture_offline+0x80/0x140
              torture_onoff+0x147/0x260
              kthread+0x10a/0x140
              ret_from_fork+0x22/0x30
      
       -> #0 (cpu_hotplug_lock){++++}-{0:0}:
              check_prev_add+0x8f/0xbf0
              __lock_acquire+0x13f0/0x1d80
              lock_acquire+0xb9/0x3a0
              cpus_read_lock+0x21/0xa0
              static_key_enable+0x9/0x20
              __kmem_cache_create+0x38d/0x430
              kmem_cache_create_usercopy+0x146/0x250
              kmem_cache_create+0xd/0x10
              rcu_torture_stats+0x79/0x280
              kthread+0x10a/0x140
              ret_from_fork+0x22/0x30
      
       other info that might help us debug this:
      
        Possible unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(slab_mutex);
                                      lock(cpu_hotplug_lock);
                                      lock(slab_mutex);
         lock(cpu_hotplug_lock);
      
        *** DEADLOCK ***
      
       1 lock held by rcu_torture_sta/109:
        #0: ffffffff96173c28 (slab_mutex){+.+.}-{3:3}, at: kmem_cache_create_usercopy+0x2d/0x250
      
       stack backtrace:
       CPU: 3 PID: 109 Comm: rcu_torture_sta Not tainted 5.12.0+ #15
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-1ubuntu1.1 04/01/2014
       Call Trace:
        dump_stack+0x6d/0x89
        check_noncircular+0xfe/0x110
        ? lock_is_held_type+0x98/0x110
        check_prev_add+0x8f/0xbf0
        __lock_acquire+0x13f0/0x1d80
        lock_acquire+0xb9/0x3a0
        ? static_key_enable+0x9/0x20
        ? mark_held_locks+0x49/0x70
        cpus_read_lock+0x21/0xa0
        ? static_key_enable+0x9/0x20
        static_key_enable+0x9/0x20
        __kmem_cache_create+0x38d/0x430
        kmem_cache_create_usercopy+0x146/0x250
        ? rcu_torture_stats_print+0xd0/0xd0
        kmem_cache_create+0xd/0x10
        rcu_torture_stats+0x79/0x280
        ? rcu_torture_stats_print+0xd0/0xd0
        kthread+0x10a/0x140
        ? kthread_park+0x80/0x80
        ret_from_fork+0x22/0x30
      
      This is because there's one order of locking from the hotplug callbacks:
      
      lock(cpu_hotplug_lock); // from hotplug machinery itself
      lock(slab_mutex); // in e.g. slab_mem_going_offline_callback()
      
      And commit 1f0723a4 made the reverse sequence possible:
      lock(slab_mutex); // in kmem_cache_create_usercopy()
      lock(cpu_hotplug_lock); // kmem_cache_open() -> static_key_enable()
      
      The simplest fix is to move static_key_enable() to a place before slab_mutex is
      taken. That means kmem_cache_create_usercopy() in mm/slab_common.c which is not
      ideal for SLUB-specific code, but the #ifdef CONFIG_SLUB_DEBUG makes it
      at least self-contained and obvious.
      
      [1] https://lore.kernel.org/lkml/20210502171827.GA3670492@paulmck-ThinkPad-P17-Gen-1/
      
      Link: https://lkml.kernel.org/r/20210504120019.26791-1-vbabka@suse.cz
      Fixes: 1f0723a4
      
       ("mm, slub: enable slub_debug static key when creating cache with explicit debug flags")
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reported-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Tested-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      afe0c26d
    • Peter Xu's avatar
      mm/hugetlb: fix cow where page writtable in child · 84894e1c
      Peter Xu authored
      When rework early cow of pinned hugetlb pages, we moved huge_ptep_get()
      upper but overlooked a side effect that the huge_ptep_get() will fetch the
      pte after wr-protection.  After moving it upwards, we need explicit
      wr-protect of child pte or we will keep the write bit set in the child
      process, which could cause data corrution where the child can write to the
      original page directly.
      
      This issue can also be exposed by "memfd_test hugetlbfs" kselftest.
      
      Link: https://lkml.kernel.org/r/20210503234356.9097-3-peterx@redhat.com
      Fixes: 4eae4efa
      
       ("hugetlb: do early cow when page pinned on src mm")
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      84894e1c
    • Peter Xu's avatar
      mm/hugetlb: fix F_SEAL_FUTURE_WRITE · 22247efd
      Peter Xu authored
      Patch series "mm/hugetlb: Fix issues on file sealing and fork", v2.
      
      Hugh reported issue with F_SEAL_FUTURE_WRITE not applied correctly to
      hugetlbfs, which I can easily verify using the memfd_test program, which
      seems that the program is hardly run with hugetlbfs pages (as by default
      shmem).
      
      Meanwhile I found another probably even more severe issue on that hugetlb
      fork won't wr-protect child cow pages, so child can potentially write to
      parent private pages.  Patch 2 addresses that.
      
      After this series applied, "memfd_test hugetlbfs" should start to pass.
      
      This patch (of 2):
      
      F_SEAL_FUTURE_WRITE is missing for hugetlb starting from the first day.
      There is a test program for that and it fails constantly.
      
      $ ./memfd_test hugetlbfs
      memfd-hugetlb: CREATE
      memfd-hugetlb: BASIC
      memfd-hugetlb: SEAL-WRITE
      memfd-hugetlb: SEAL-FUTURE-WRITE
      mmap() didn't fail as expected
      Aborted (core dumped)
      
      I think it's probably because no one is really running the hugetlbfs test.
      
      Fix it by checking FUTURE_WRITE also in hugetlbfs_file_mmap() as what we
      do in shmem_mmap().  Generalize a helper for that.
      
      Link: https://lkml.kernel.org/r/20210503234356.9097-1-peterx@redhat.com
      Link: https://lkml.kernel.org/r/20210503234356.9097-2-peterx@redhat.com
      Fixes: ab3948f5
      
       ("mm/memfd: add an F_SEAL_FUTURE_WRITE seal to memfd")
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      22247efd
    • Dave Airlie's avatar
      Merge tag 'drm-msm-fixes-2021-05-09' of https://gitlab.freedesktop.org/drm/msm into drm-fixes · 5dce58de
      Dave Airlie authored
      
      
      - dsi regression fix
      - dma-buf pinning fix
      - displayport fixes
      - llc fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Rob Clark <robdclark@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGuqLZDAEJwUFKb6m+h3kyxgjDEKa3DPA1fHA69vxbXH=g@mail.gmail.com
      5dce58de
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 25a12987
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix trace_check_vprintf() for %.*s
      
        The sanity check of all strings being read from the ring buffer to
        make sure they are in safe memory space did not account for the %.*s
        notation having another parameter to process (the length).
      
        Add that to the check"
      
      * tag 'trace-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Handle %.*s in trace_check_vprintf()
      25a12987
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2021-05-14' of... · 89cd34a1
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.13-rc2:
      - Fix active callback alignment annotations and subsequent crashes
      - Retract link training strategy to slow and wide, again
      - Avoid division by zero on gen2
      - Use correct width reads for C0DRB3/C1DRB3 registers
      - Fix double free in pdp allocation failure path
      - Fix HDMI 2.1 PCON downstream caps check
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87a6oxu9ao.fsf@intel.com
      89cd34a1
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · bd3c9cdb
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       "Fixes and cpucaps.h automatic generation:
      
         - Generate cpucaps.h at build time rather than carrying lots of
           #defines. Merged at -rc1 to avoid some conflicts during the merge
           window.
      
         - Initialise RGSR_EL1.SEED in __cpu_setup() as it may be left as 0
           out of reset and the IRG instruction would not function as expected
           if only the architected pseudorandom number generator is
           implemented.
      
         - Fix potential race condition in __sync_icache_dcache() where the
           PG_dcache_clean page flag is set before the actual cache
           maintenance.
      
         - Fix header include in BTI kselftests"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache()
        arm64: tools: Add __ASM_CPUCAPS_H to the endif in cpucaps.h
        arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup
        kselftest/arm64: Add missing stddef.h include to BTI tests
        arm64: Generate cpucaps.h
      bd3c9cdb
    • Linus Torvalds's avatar
      Merge tag 'f2fs-5.13-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · ac524ece
      Linus Torvalds authored
      Pull f2fs fixes from Jaegeuk Kim:
       "This fixes some critical bugs such as memory leak in compression
        flows, kernel panic when handling errors, and swapon failure due to
        newly added condition check"
      
      * tag 'f2fs-5.13-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: return EINVAL for hole cases in swap file
        f2fs: avoid swapon failure by giving a warning first
        f2fs: compress: fix to assign cc.cluster_idx correctly
        f2fs: compress: fix race condition of overwrite vs truncate
        f2fs: compress: fix to free compress page correctly
        f2fs: support iflag change given the mask
        f2fs: avoid null pointer access when handling IPU error
      ac524ece
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm · b5304a4f
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Not much here, mostly amdgpu fixes, with a couple of radeon, and a
        cosmetic vc4.
      
        Two MAINTAINERS file updates also.
      
        amdgpu:
         - Fixes for flexible array conversions
         - Fix sysfs attribute init
         - Harvesting fixes
         - VCN CG/PG fixes for Picasso
      
        radeon:
         - Fixes for flexible array conversions
         - Fix for flickering on Oland with multiple 4K displays
      
        vc4:
         - drop unused function"
      
      * tag 'drm-fixes-2021-05-14' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: update vcn1.0 Non-DPG suspend sequence
        drm/amdgpu: set vcn mgcg flag for picasso
        drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
        drm/amdgpu: update the method for harvest IP for specific SKU
        drm/amdgpu: add judgement when add ip blocks (v2)
        drm/amd/display: Initialize attribute for hdcp_srm sysfs file
        drm/amd/pm: Fix out-of-bounds bug
        drm/radeon/si_dpm: Fix SMU power state load
        drm/radeon/ni_dpm: Fix booting bug
        MAINTAINERS: Update address for Emma Anholt
        MAINTAINERS: Update my e-mail
        drm/vc4: remove unused function
        drm/ttm: Do not add non-system domain BO into swap list
      b5304a4f
    • Catalin Marinas's avatar
      arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache() · 588a513d
      Catalin Marinas authored
      
      
      To ensure that instructions are observable in a new mapping, the arm64
      set_pte_at() implementation cleans the D-cache and invalidates the
      I-cache to the PoU. As an optimisation, this is only done on executable
      mappings and the PG_dcache_clean page flag is set to avoid future cache
      maintenance on the same page.
      
      When two different processes map the same page (e.g. private executable
      file or shared mapping) there's a potential race on checking and setting
      PG_dcache_clean via set_pte_at() -> __sync_icache_dcache(). While on the
      fault paths the page is locked (PG_locked), mprotect() does not take the
      page lock. The result is that one process may see the PG_dcache_clean
      flag set but the I/D cache maintenance not yet performed.
      
      Avoid test_and_set_bit(PG_dcache_clean) in favour of separate test_bit()
      and set_bit(). In the rare event of a race, the cache maintenance is
      done twice.
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Cc: <stable@vger.kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Steven Price <steven.price@arm.com>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210514095001.13236-1-catalin.marinas@arm.com
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      588a513d
  3. May 14, 2021
    • Bart Van Assche's avatar
      block/partitions/efi.c: Fix the efi_partition() kernel-doc header · 4bc20823
      Bart Van Assche authored
      
      
      Fix the following kernel-doc warning:
      
      block/partitions/efi.c:685: warning: wrong kernel-doc identifier on line:
       * efi_partition(struct parsed_partitions *state)
      
      Cc: Alexander Viro <viro@math.psu.edu>
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Link: https://lore.kernel.org/r/20210513171708.8391-1-bvanassche@acm.org
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4bc20823
    • Bart Van Assche's avatar
      blk-mq: Swap two calls in blk_mq_exit_queue() · 630ef623
      Bart Van Assche authored
      If a tag set is shared across request queues (e.g. SCSI LUNs) then the
      block layer core keeps track of the number of active request queues in
      tags->active_queues. blk_mq_tag_busy() and blk_mq_tag_idle() update that
      atomic counter if the hctx flag BLK_MQ_F_TAG_QUEUE_SHARED is set. Make
      sure that blk_mq_exit_queue() calls blk_mq_tag_idle() before that flag is
      cleared by blk_mq_del_queue_tag_set().
      
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Ming Lei <ming.lei@redhat.com>
      Cc: Hannes Reinecke <hare@suse.com>
      Fixes: 0d2602ca
      
       ("blk-mq: improve support for shared tags maps")
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Link: https://lore.kernel.org/r/20210513171529.7977-1-bvanassche@acm.org
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      630ef623
    • Ming Lei's avatar
      blk-mq: plug request for shared sbitmap · 03f26d8f
      Ming Lei authored
      In case of shared sbitmap, request won't be held in plug list any more
      sine commit 32bc15af ("blk-mq: Facilitate a shared sbitmap per
      tagset"), this way makes request merge from flush plug list & batching
      submission not possible, so cause performance regression.
      
      Yanhui reports performance regression when running sequential IO
      test(libaio, 16 jobs, 8 depth for each job) in VM, and the VM disk
      is emulated with image stored on xfs/megaraid_sas.
      
      Fix the issue by recovering original behavior to allow to hold request
      in plug list.
      
      Cc: Yanhui Ma <yama@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Bart Van Assche <bvanassche@acm.org>
      Cc: kashyap.desai@broadcom.com
      Fixes: 32bc15af
      
       ("blk-mq: Facilitate a shared sbitmap per tagset")
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Link: https://lore.kernel.org/r/20210514022052.1047665-1-ming.lei@redhat.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      03f26d8f
    • Pavel Begunkov's avatar
      io_uring: increase max number of reg buffers · 489809e2
      Pavel Begunkov authored
      
      
      Since recent changes instead of storing a large array of struct
      io_mapped_ubuf, we store pointers to them, that is 4 times slimmer and
      we should not to so worry about restricting max number of registererd
      buffer slots, increase the limit 4 times.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/d3dee1da37f46da416aa96a16bf9e5094e10584d.1620990371.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      489809e2
    • Pavel Begunkov's avatar
      io_uring: further remove sqpoll limits on opcodes · 2d74d042
      Pavel Begunkov authored
      
      
      There are three types of requests that left disabled for sqpoll, namely
      epoll ctx, statx, and resources update. Since SQPOLL task is now closely
      mimics a userspace thread, remove the restrictions.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/909b52d70c45636d8d7897582474ea5aab5eed34.1620990306.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2d74d042
    • Pavel Begunkov's avatar
      io_uring: fix ltout double free on completion race · 447c19f3
      Pavel Begunkov authored
      Always remove linked timeout on io_link_timeout_fn() from the master
      request link list, otherwise we may get use-after-free when first
      io_link_timeout_fn() puts linked timeout in the fail path, and then
      will be found and put on master's free.
      
      Cc: stable@vger.kernel.org # 5.10+
      Fixes: 90cd7e42
      
       ("io_uring: track link timeout's master explicitly")
      Reported-and-tested-by: default avatar <syzbot+5a864149dd970b546223@syzkaller.appspotmail.com>
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/69c46bf6ce37fec4fdcd98f0882e18eb07ce693a.1620990121.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      447c19f3
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.13-2021-05-13' of... · 08f0cfbf
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.13-2021-05-13' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.13-2021-05-13:
      
      amdgpu:
      - Fixes for flexible array conversions
      - Fix sysfs attribute init
      - Harvesting fixes
      - VCN CG/PG fixes for Picasso
      
      radeon:
      - Fixes for flexible array conversions
      - Fix for flickering on Oland with multiple 4K displays
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210513163228.3963-1-alexander.deucher@amd.com
      08f0cfbf
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-05-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 1db7aa26
      Dave Airlie authored
      
      
      Remove an unused function and a MAINTAINERS update.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210513133617.xq77wwrehpuh7yn2@hendrix
      1db7aa26
    • Linus Torvalds's avatar
      Merge tag 'pm-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 315d9931
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These close a coverage gap in the intel_pstate driver and fix runtime
        PM child count imbalance related to interactions with system-wide
        suspend.
      
        Specifics:
      
         - Make intel_pstate work as expected on systems where the platform
           firmware enables HWP even though the HWP EPP support is not
           advertised (Rafael Wysocki).
      
         - Fix possible runtime PM child count imbalance that may occur if
           other runtime PM functions are called after invoking
           pm_runtime_force_suspend() and before pm_runtime_force_resume()
           is called (Tony Lindgren)"
      
      * tag 'pm-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: runtime: Fix unpaired parent child_count for force_resume
        cpufreq: intel_pstate: Use HWP if enabled by platform firmware
      315d9931
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2df38a8e
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These revert an unnecessary revert of an ACPI power management commit,
        add a missing device ID to one of the lists and fix a possible memory
        leak in an error path.
      
        Specifics:
      
         - Revert a revert of a recent ACPI power management change that does
           not need to be reverted after all (Rafael Wysocki).
      
         - Add missing fan device ID to the list of device IDs for which the
           devices should not be put into the ACPI PM domain (Sumeet
           Pawnikar).
      
         - Fix possible memory leak in an error path in the ACPI device
           enumeration code (Christophe JAILLET)"
      
      * tag 'acpi-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PM: Add ACPI ID of Alder Lake Fan
        ACPI: scan: Fix a memory leak in an error handling path
        Revert "Revert "ACPI: scan: Turn off unused power resources during initialization""
      2df38a8e