1. 10 Apr, 2020 12 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 93f3321f
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is a batch of changes that didn't make it in the initial pull
        request because the lpfc series had to be rebased to redo an incorrect
        split.
      
        It's basically driver updates to lpfc, target, bnx2fc and ufs with the
        rest being minor updates except the sr_block_release one which fixes a
        use after free introduced by the removal of the global mutex in the
        first patch set"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (35 commits)
        scsi: core: Add DID_ALLOC_FAILURE and DID_MEDIUM_ERROR to hostbyte_table
        scsi: ufs: Use ufshcd_config_pwr_mode() when scaling gear
        scsi: bnx2fc: fix boolreturn.cocci warnings
        scsi: zfcp: use fallthrough;
        scsi: aacraid: do not overwrite retval in aac_reset_adapter()
        scsi: sr: Fix sr_block_release()
        scsi: aic7xxx: Remove more FreeBSD-specific code
        scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
        scsi: ufs: set device as active power mode after resetting device
        scsi: iscsi: Report unbind session event when the target has been removed
        scsi: lpfc: Change default SCSI LUN QD to 64
        scsi: libfc: rport state move to PLOGI if all PRLI retry exhausted
        scsi: libfc: If PRLI rejected, move rport to PLOGI state
        scsi: bnx2fc: Update the driver version to 2.12.13
        scsi: bnx2fc: Fix SCSI command completion after cleanup is posted
        scsi: bnx2fc: Process the RQE with CQE in interrupt context
        scsi: target: use the stack for XCOPY passthrough cmds
        scsi: target: increase XCOPY I/O size
        scsi: target: avoid per-loop XCOPY buffer allocations
        scsi: target: drop xcopy DISK BLOCK LENGTH debug
        ...
      93f3321f
    • Linus Torvalds's avatar
      Merge tag 'libata-5.7-2020-04-09' of git://git.kernel.dk/linux-block · f8693b3e
      Linus Torvalds authored
      Pull libata fixes from Jens Axboe:
       "A few followup changes/fixes for libata:
      
         - PMP removal fix (Kai-Heng)
      
         - Add remapped NVMe device attribute to sysfs (Kai-Heng)
      
         - Remove redundant assignment (Colin)
      
         - Add yet another Comet Lake ID (Jian-Hong)"
      
      * tag 'libata-5.7-2020-04-09' of git://git.kernel.dk/linux-block:
        ahci: Add Intel Comet Lake PCH RAID PCI ID
        ata: ahci: Add sysfs attribute to show remapped NVMe device count
        ata: ahci-imx: remove redundant assignment to ret
        libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
      f8693b3e
    • Linus Torvalds's avatar
      Merge tag 'block-5.7-2020-04-10' of git://git.kernel.dk/linux-block · 8df2a0a6
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Here's a set of fixes that should go into this merge window. This
        contains:
      
         - NVMe pull request from Christoph with various fixes
      
         - Better discard support for loop (Evan)
      
         - Only call ->commit_rqs() if we have queued IO (Keith)
      
         - blkcg offlining fixes (Tejun)
      
         - fix (and fix the fix) for busy partitions"
      
      * tag 'block-5.7-2020-04-10' of git://git.kernel.dk/linux-block:
        block: fix busy device checking in blk_drop_partitions again
        block: fix busy device checking in blk_drop_partitions
        nvmet-rdma: fix double free of rdma queue
        blk-mq: don't commit_rqs() if none were queued
        nvme-fc: Revert "add module to ops template to allow module references"
        nvme: fix deadlock caused by ANA update wrong locking
        nvmet-rdma: fix bonding failover possible NULL deref
        loop: Better discard support for block devices
        loop: Report EOPNOTSUPP properly
        nvmet: fix NULL dereference when removing a referral
        nvme: inherit stable pages constraint in the mpath stack device
        blkcg: don't offline parent blkcg first
        blkcg: rename blkcg->cgwb_refcnt to ->online_pin and always use it
        nvme-tcp: fix possible crash in recv error flow
        nvme-tcp: don't poll a non-live queue
        nvme-tcp: fix possible crash in write_zeroes processing
        nvmet-fc: fix typo in comment
        nvme-rdma: Replace comma with a semicolon
        nvme-fcloop: fix deallocation of working context
        nvme: fix compat address handling in several ioctls
      8df2a0a6
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.7-2020-04-09' of git://git.kernel.dk/linux-block · 172edde9
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Here's a set of fixes that either weren't quite ready for the first,
        or came about from some intensive testing on memcached with 350K+
        sockets.
      
        Summary:
      
         - Fixes for races or deadlocks around poll handling
      
         - Don't double account fixed files against RLIMIT_NOFILE
      
         - IORING_OP_OPENAT LFS fix
      
         - Poll retry handling (Bijan)
      
         - Missing finish_wait() for SQPOLL (Hillf)
      
         - Cleanup/split of io_kiocb alloc vs ctx references (Pavel)
      
         - Fixed file unregistration and init fixes (Xiaoguang)
      
         - Various little fixes (Xiaoguang, Pavel, Colin)"
      
      * tag 'io_uring-5.7-2020-04-09' of git://git.kernel.dk/linux-block:
        io_uring: punt final io_ring_ctx wait-and-free to workqueue
        io_uring: fix fs cleanup on cqe overflow
        io_uring: don't read user-shared sqe flags twice
        io_uring: remove req init from io_get_req()
        io_uring: alloc req only after getting sqe
        io_uring: simplify io_get_sqring
        io_uring: do not always copy iovec in io_req_map_rw()
        io_uring: ensure openat sets O_LARGEFILE if needed
        io_uring: initialize fixed_file_data lock
        io_uring: remove redundant variable pointer nxt and io_wq_assign_next call
        io_uring: fix ctx refcounting in io_submit_sqes()
        io_uring: process requests completed with -EAGAIN on poll list
        io_uring: remove bogus RLIMIT_NOFILE check in file registration
        io_uring: use io-wq manager as backup task if task is exiting
        io_uring: grab task reference for poll requests
        io_uring: retry poll if we got woken with non-matching mask
        io_uring: add missing finish_wait() in io_sq_thread()
        io_uring: refactor file register/unregister/update handling
      172edde9
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.7-merge-12' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 8c3c0743
      Linus Torvalds authored
      Pull more xfs updates from Darrick Wong:
       "As promised last week, this batch changes how xfs interacts with
        memory reclaim; how the log batches and throttles log items; how hard
        writes near ENOSPC will try to squeeze more space out of the
        filesystem; and hopefully fix the last of the umount hangs after a
        catastrophic failure.
      
        Summary:
      
         - Validate the realtime geometry in the superblock when mounting
      
         - Refactor a bunch of tricky flag handling in the log code
      
         - Flush the CIL more judiciously so that we don't wait until there
           are millions of log items consuming a lot of memory.
      
         - Throttle transaction commits to prevent the xfs frontend from
           flooding the CIL with too many log items.
      
         - Account metadata buffers correctly for memory reclaim.
      
         - Mark slabs properly for memory reclaim. These should help reclaim
           run more effectively when XFS is using a lot of memory.
      
         - Don't write a garbage log record at unmount time if we're trying to
           trigger summary counter recalculation at next mount.
      
         - Don't block the AIL on locked dquot/inode buffers; instead trigger
           its backoff mechanism to give the lock holder a chance to finish
           up.
      
         - Ratelimit writeback flushing when buffered writes encounter ENOSPC.
      
         - Other minor cleanups.
      
         - Make reflink a synchronous operation when the fs is mounted with
           wsync or sync, which means that now we force the log to disk to
           record the changes"
      
      * tag 'xfs-5.7-merge-12' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (26 commits)
        xfs: reflink should force the log out if mounted with wsync
        xfs: factor out a new xfs_log_force_inode helper
        xfs: fix inode number overflow in ifree cluster helper
        xfs: remove redundant variable assignment in xfs_symlink()
        xfs: ratelimit inode flush on buffered write ENOSPC
        xfs: return locked status of inode buffer on xfsaild push
        xfs: trylock underlying buffer on dquot flush
        xfs: remove unnecessary ternary from xfs_create
        xfs: don't write a corrupt unmount record to force summary counter recalc
        xfs: factor inode lookup from xfs_ifree_cluster
        xfs: tail updates only need to occur when LSN changes
        xfs: factor common AIL item deletion code
        xfs: correctly acount for reclaimable slabs
        xfs: Improve metadata buffer reclaim accountability
        xfs: don't allow log IO to be throttled
        xfs: Throttle commits on delayed background CIL push
        xfs: Lower CIL flush limit for large logs
        xfs: remove some stale comments from the log code
        xfs: refactor unmount record writing
        xfs: merge xlog_commit_record with xlog_write_done
        ...
      8c3c0743
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.7-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d3e5e977
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These prevent a false-positive static checker warning from triggering
        in the ACPI EC driver (Rafael Wysocki), fix white space in an ACPI
        document (Vilhelm Prytz) and add static annotation to one variable
        (Jason Yan)"
      
      * tag 'acpi-5.7-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI, x86/boot: make acpi_nobgrt static
        Documentation: firmware-guide: ACPI: fix table alignment in namespace.rst
        ACPI: EC: Fix up fast path check in acpi_ec_add()
      d3e5e977
    • Linus Torvalds's avatar
      Merge tag 'pm-5.7-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bbec2a2d
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "Rework compat ioctl handling in the user space hibernation interface
        (Christoph Hellwig) and fix a typo in a function name in the cpuidle
        haltpoll driver (Yihao Wu)"
      
      * tag 'pm-5.7-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle-haltpoll: Fix small typo
        PM / sleep: handle the compat case in snapshot_set_swap_area()
        PM / sleep: move SNAPSHOT_SET_SWAP_AREA handling into a helper
      bbec2a2d
    • Linus Torvalds's avatar
      Merge tag 's390-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 523a05fc
      Linus Torvalds authored
      Pull more s390 updates from Vasily Gorbik:
       "Second round of s390 fixes and features for 5.7:
      
         - The rest of fallthrough; annotations conversion
      
         - Couple of fixes for ADD uevents in the common I/O layer
      
         - Minor refactoring of the queued direct I/O code"
      
      * tag 's390-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cio: generate delayed uevent for vfio-ccw subchannels
        s390/cio: avoid duplicated 'ADD' uevents
        s390/qdio: clear DSCI early for polling drivers
        s390/qdio: inline shared_ind()
        s390/qdio: remove cdev from init_data
        s390/qdio: allow for non-contiguous SBAL array in init_data
        zfcp: inline zfcp_qdio_setup_init_data()
        s390/qdio: cleanly split alloc and establish
        s390/mm: use fallthrough;
      523a05fc
    • Christoph Hellwig's avatar
      block: fix busy device checking in blk_drop_partitions again · cb6b771b
      Christoph Hellwig authored
      The previous fix had an off by one in the bd_openers checking, counting
      the callers blkdev_get.
      
      Fixes: d3ef5536 ("block: fix busy device checking in blk_drop_partitions")
      Reported-by: default avatarQian Cai <cai@lca.pw>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarQian Cai <cai@lca.pw>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      cb6b771b
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · a31434bc
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle-haltpoll: Fix small typo
      a31434bc
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-ec' and 'acpi-x86' · 0214da7c
      Rafael J. Wysocki authored
      * acpi-ec:
        ACPI: EC: Fix up fast path check in acpi_ec_add()
      
      * acpi-x86:
        ACPI, x86/boot: make acpi_nobgrt static
      0214da7c
    • Jens Axboe's avatar
      io_uring: punt final io_ring_ctx wait-and-free to workqueue · 85faa7b8
      Jens Axboe authored
      We can't reliably wait in io_ring_ctx_wait_and_kill(), since the
      task_works list isn't ordered (in fact it's LIFO ordered). We could
      either fix this with a separate task_works list for io_uring work, or
      just punt the wait-and-free to async context. This ensures that
      task_work that comes in while we're shutting down is processed
      correctly. If we don't go async, we could have work past the fput()
      work for the ring that depends on work that won't be executed until
      after we're done with the wait-and-free. But as this operation is
      blocking, it'll never get a chance to run.
      
      This was reproduced with hundreds of thousands of sockets running
      memcached, haven't been able to reproduce this synthetically.
      Reported-by: default avatarDan Melnic <dmm@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      85faa7b8
  2. 09 Apr, 2020 15 commits
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · c0cc2711
      Linus Torvalds authored
      Pull module updates from Jessica Yu:
       "Only a small cleanup this time around: a trivial conversion of
        zero-length arrays to flexible arrays"
      
      * tag 'modules-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        kernel: module: Replace zero-length array with flexible-array member
      c0cc2711
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 87ebc45d
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Ensure that the compiler and linker versions are aligned so that ld
         doesn't complain about not understanding a .note.gnu.property section
         (emitted when pointer authentication is enabled).
      
       - Force -mbranch-protection=none when the feature is not enabled, in
         case a compiler may choose a different default value.
      
       - Remove CONFIG_DEBUG_ALIGN_RODATA. It was never in defconfig and
         rarely enabled.
      
       - Fix checking 16-bit Thumb-2 instructions checking mask in the
         emulation of the SETEND instruction (it could match the bottom half
         of a 32-bit Thumb-2 instruction).
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
        arm64: remove CONFIG_DEBUG_ALIGN_RODATA feature
        arm64: Always force a branch protection mode when the compiler has one
        arm64: Kconfig: ptrauth: Add binutils version check to fix mismatch
        init/kconfig: Add LD_VERSION Kconfig
      87ebc45d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · e4da01d8
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
       "The bulk of this is the series to make CONFIG_COMPAT user-selectable,
        it's been around for a long time but was blocked behind the
        syscall-in-C series.
      
        Plus there's also a few fixes and other minor things.
      
        Summary:
      
         - A fix for a crash in machine check handling on pseries (ie. guests)
      
         - A small series to make it possible to disable CONFIG_COMPAT, and
           turn it off by default for ppc64le where it's not used.
      
         - A few other miscellaneous fixes and small improvements.
      
        Thanks to: Alexey Kardashevskiy, Anju T Sudhakar, Arnd Bergmann,
        Christophe Leroy, Dan Carpenter, Ganesh Goudar, Geert Uytterhoeven,
        Geoff Levand, Mahesh Salgaonkar, Markus Elfring, Michal Suchanek,
        Nicholas Piggin, Stephen Boyd, Wen Xiong"
      
      * tag 'powerpc-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc: Always build the tm-poison test 64-bit
        powerpc: Improve ppc_save_regs()
        Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled"
        powerpc/time: Replace <linux/clk-provider.h> by <linux/of_clk.h>
        powerpc/pseries/ddw: Extend upper limit for huge DMA window for persistent memory
        powerpc/perf: split callchain.c by bitness
        powerpc/64: Make COMPAT user-selectable disabled on littleendian by default.
        powerpc/64: make buildable without CONFIG_COMPAT
        powerpc/perf: consolidate valid_user_sp -> invalid_user_sp
        powerpc/perf: consolidate read_user_stack_32
        powerpc: move common register copy functions from signal_32.c to signal.c
        powerpc: Add back __ARCH_WANT_SYS_LLSEEK macro
        powerpc/ps3: Set CONFIG_UEVENT_HELPER=y in ps3_defconfig
        powerpc/ps3: Remove an unneeded NULL check
        powerpc/ps3: Remove duplicate error message
        powerpc/powernv: Re-enable imc trace-mode in kernel
        powerpc/perf: Implement a global lock to avoid races between trace, core and thread imc events.
        powerpc/pseries: Fix MCE handling on pseries
        selftests/eeh: Skip ahci adapters
        powerpc/64s: Fix doorbell wakeup msgclr optimisation
      e4da01d8
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 6cff4821
      Linus Torvalds authored
      Pull m68knommu update from Greg Ungerer:
       "Only a single commit, to remove all use of the obsolete setup_irq()
        calls within the m68knommu architecture code"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: Replace setup_irq() by request_irq()
      6cff4821
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · eab40026
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
       "This contains a handful of new features:
      
         - Partial support for the Kendryte K210.
      
           There are still a few outstanding issues that I have patches for,
           but I don't actually have a board to test them so they're not
           included yet.
      
         - SBI v0.2 support.
      
         - Fixes to support for building with LLVM-based toolchains. The
           resulting images are known not to boot yet.
      
        I don't anticipate a part two, but I'll probably have something early
        in the RCs to finish up the K210 support"
      
      * tag 'riscv-for-linus-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (38 commits)
        riscv: create a loader.bin boot image for Kendryte SoC
        riscv: Kendryte K210 default config
        riscv: Add Kendryte K210 device tree
        riscv: Select required drivers for Kendryte SOC
        riscv: Add Kendryte K210 SoC support
        riscv: Add SOC early init support
        riscv: Unaligned load/store handling for M_MODE
        RISC-V: Support cpu hotplug
        RISC-V: Add supported for ordered booting method using HSM
        RISC-V: Add SBI HSM extension definitions
        RISC-V: Export SBI error to linux error mapping function
        RISC-V: Add cpu_ops and modify default booting method
        RISC-V: Move relocate and few other functions out of __init
        RISC-V: Implement new SBI v0.2 extensions
        RISC-V: Introduce a new config for SBI v0.1
        RISC-V: Add SBI v0.2 extension definitions
        RISC-V: Add basic support for SBI v0.2
        RISC-V: Mark existing SBI as 0.1 SBI.
        riscv: Use macro definition instead of magic number
        riscv: Add support to dump the kernel page tables
        ...
      eab40026
    • Pavel Begunkov's avatar
      io_uring: fix fs cleanup on cqe overflow · c398ecb3
      Pavel Begunkov authored
      If completion queue overflow occurs, __io_cqring_fill_event() will
      update req->cflags, which is in a union with req->work and happens to
      be aliased to req->work.fs. Following io_free_req() ->
      io_req_work_drop_env() may get a bunch of different problems (miscount
      fs->users, segfault, etc) on cleaning @fs.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      c398ecb3
    • Jian-Hong Pan's avatar
      ahci: Add Intel Comet Lake PCH RAID PCI ID · 7667e63c
      Jian-Hong Pan authored
      Intel Comet Lake should use the default LPM policy for mobile chipsets.
      So, add the PCI ID to the driver list of supported devices.
      Signed-off-by: default avatarJian-Hong Pan <jian-hong@endlessm.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7667e63c
    • Linus Torvalds's avatar
      Merge tag '9p-for-5.7-2' of git://github.com/martinetd/linux · 5d30bcac
      Linus Torvalds authored
      Pull 9p documentation update from Dominique Martinet:
       "Document the new O_NONBLOCK short read behavior"
      
      * tag '9p-for-5.7-2' of git://github.com/martinetd/linux:
        9p: document short read behaviour with O_NONBLOCK
      5d30bcac
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.7-rc1' of git://github.com/ceph/ceph-client · fcc95f06
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "The main items are:
      
         - support for asynchronous create and unlink (Jeff Layton).
      
           Creates and unlinks are satisfied locally, without waiting for a
           reply from the MDS, provided the client has been granted
           appropriate caps (new in v15.y.z ("Octopus") release). This can be
           a big help for metadata heavy workloads such as tar and rsync.
           Opt-in with the new nowsync mount option.
      
         - multiple blk-mq queues for rbd (Hannes Reinecke and myself).
      
           When the driver was converted to blk-mq, we settled on a single
           blk-mq queue because of a global lock in libceph and some other
           technical debt. These have since been addressed, so allocate a
           queue per CPU to enhance parallelism.
      
         - don't hold onto caps that aren't actually needed (Zheng Yan).
      
           This has been our long-standing behavior, but it causes issues with
           some active/standby applications (synchronous I/O, stalls if the
           standby goes down, etc).
      
         - .snap directory timestamps consistent with ceph-fuse (Luis
           Henriques)"
      
      * tag 'ceph-for-5.7-rc1' of git://github.com/ceph/ceph-client: (49 commits)
        ceph: fix snapshot directory timestamps
        ceph: wait for async creating inode before requesting new max size
        ceph: don't skip updating wanted caps when cap is stale
        ceph: request new max size only when there is auth cap
        ceph: cleanup return error of try_get_cap_refs()
        ceph: return ceph_mdsc_do_request() errors from __get_parent()
        ceph: check all mds' caps after page writeback
        ceph: update i_requested_max_size only when sending cap msg to auth mds
        ceph: simplify calling of ceph_get_fmode()
        ceph: remove delay check logic from ceph_check_caps()
        ceph: consider inode's last read/write when calculating wanted caps
        ceph: always renew caps if mds_wanted is insufficient
        ceph: update dentry lease for async create
        ceph: attempt to do async create when possible
        ceph: cache layout in parent dir on first sync create
        ceph: add new MDS req field to hold delegated inode number
        ceph: decode interval_sets for delegated inos
        ceph: make ceph_fill_inode non-static
        ceph: perform asynchronous unlink if we have sufficient caps
        ceph: don't take refs to want mask unless we have all bits
        ...
      fcc95f06
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · c6b80eb8
      Linus Torvalds authored
      Pull overlayfs update from Miklos Szeredi:
      
       - Fix failure to copy-up files from certain NFSv4 mounts
      
       - Sort out inconsistencies between st_ino and i_ino (used in /proc/locks)
      
       - Allow consistent (POSIX-y) inode numbering in more cases
      
       - Allow virtiofs to be used as upper layer
      
       - Miscellaneous cleanups and fixes
      
      * tag 'ovl-update-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: document xino expected behavior
        ovl: enable xino automatically in more cases
        ovl: avoid possible inode number collisions with xino=on
        ovl: use a private non-persistent ino pool
        ovl: fix WARN_ON nlink drop to zero
        ovl: fix a typo in comment
        ovl: replace zero-length array with flexible-array member
        ovl: ovl_obtain_alias(): don't call d_instantiate_anon() for old
        ovl: strict upper fs requirements for remote upper fs
        ovl: check if upper fs supports RENAME_WHITEOUT
        ovl: allow remote upper
        ovl: decide if revalidate needed on a per-dentry basis
        ovl: separate detection of remote upper layer from stacked overlay
        ovl: restructure dentry revalidation
        ovl: ignore failure to copy up unknown xattrs
        ovl: document permission model
        ovl: simplify i_ino initialization
        ovl: factor out helper ovl_get_root()
        ovl: fix out of date comment and unreachable code
        ovl: fix value of i_ino for lower hardlink corner case
      c6b80eb8
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.7-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 9744b923
      Linus Torvalds authored
      Pull iomap fix from Darrick Wong:
       "Fix a problem in readahead where we can crash if we can't allocate a
        full bio due to GFP_NORETRY"
      
      * tag 'iomap-5.7-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: Handle memory allocation failure in readahead
      9744b923
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · d8fc9cde
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a Kconfig dependency for hisilicon as well as a double free
        in marvell/octeontx"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: marvell/octeontx - fix double free of ptr
        crypto: hisilicon - Fix build error
      d8fc9cde
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-5.7-rc1' of git://www.linux-watchdog.org/linux-watchdog · 5602b0af
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - add TI K3 RTI watchdog
      
       - add stop_on_reboot parameter to control reboot policy
      
       - wm831x_wdt: Remove GPIO handling
      
       - several small fixes, improvements and clean-ups
      
      * tag 'linux-watchdog-5.7-rc1' of git://www.linux-watchdog.org/linux-watchdog:
        watchdog: Add K3 RTI watchdog support
        dt-bindings: watchdog: Add support for TI K3 RTI watchdog
        watchdog: ziirave_wdt: change name to be more specific
        watchdog: orion: use 0 for unset heartbeat
        watchdog: npcm: remove whitespaces
        watchdog: reset last_hw_keepalive time at start
        watchdog: imx2_wdt: Drop .remove callback
        watchdog: Add stop_on_reboot parameter to control reboot policy
        watchdog: wm831x_wdt: Remove GPIO handling
        watchdog: imx7ulp: Remove unused include of init.h
        watchdog: imx_sc_wdt: Remove unused includes
        watchdog: qcom: Use irq flags from firmware
        watchdog: pm8916_wdt: Add system sleep callbacks
        watchdog: qcom-wdt: disable pretimeout on timer platform
      5602b0af
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.7' of... · 413a103c
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
      
        cros-usbpd-notify and cros_ec_typec:
         - Add a new notification driver that handles and dispatches USB PD
           related events to other drivers.
         - Add a Type C connector class driver for cros_ec
      
        CrOS EC:
         - Introduce a new cros_ec_cmd_xfer_status helper
      
        Sensors/iio:
         - A series from Gwendal that adds Cros EC sensor hub FIFO support
      
        Wilco EC:
         - Fix a build warning.
         - Platform data shouldn't include kernel.h
      
        Misc:
         - i2c api conversion complete, with i2c_new_client_device instead of
           i2c_new_device in chromeos_laptop.
         - Replace zero-length array with flexible-array member in
           cros_ec_chardev and wilco_ec
         - Update new structure for SPI transfer delays in cros_ec_spi
      
      * tag 'tag-chrome-platform-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux: (34 commits)
        platform/chrome: cros_ec_spi: Wait for USECS, not NSECS
        iio: cros_ec: Use Hertz as unit for sampling frequency
        iio: cros_ec: Report hwfifo_watermark_max
        iio: cros_ec: Expose hwfifo_timeout
        iio: cros_ec: Remove pm function
        iio: cros_ec: Register to cros_ec_sensorhub when EC supports FIFO
        iio: expose iio_device_set_clock
        iio: cros_ec: Move function description to .c file
        platform/chrome: cros_ec_sensorhub: Add median filter
        platform/chrome: cros_ec_sensorhub: Add code to spread timestmap
        platform/chrome: cros_ec_sensorhub: Add FIFO support
        platform/chrome: cros_ec_sensorhub: Add the number of sensors in sensorhub
        platform/chrome: chromeos_laptop: make I2C API conversion complete
        platform/chrome: wilco_ec: event: Replace zero-length array with flexible-array member
        platform/chrome: cros_ec_chardev: Replace zero-length array with flexible-array member
        platform/chrome: cros_ec_typec: Update port info from EC
        platform/chrome: Add Type C connector class driver
        platform/chrome: cros_usbpd_notify: Pull PD_HOST_EVENT status
        platform/chrome: cros_usbpd_notify: Amend ACPI driver to plat
        platform/chrome: cros_usbpd_notify: Add driver data struct
        ...
      413a103c
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 9b06860d
      Linus Torvalds authored
      Pull libnvdimm and dax updates from Dan Williams:
       "There were multiple touches outside of drivers/nvdimm/ this round to
        add cross arch compatibility to the devm_memremap_pages() interface,
        enhance numa information for persistent memory ranges, and add a
        zero_page_range() dax operation.
      
        This cycle I switched from the patchwork api to Konstantin's b4 script
        for collecting tags (from x86, PowerPC, filesystem, and device-mapper
        folks), and everything looks to have gone ok there. This has all
        appeared in -next with no reported issues.
      
        Summary:
      
         - Add support for region alignment configuration and enforcement to
           fix compatibility across architectures and PowerPC page size
           configurations.
      
         - Introduce 'zero_page_range' as a dax operation. This facilitates
           filesystem-dax operation without a block-device.
      
         - Introduce phys_to_target_node() to facilitate drivers that want to
           know resulting numa node if a given reserved address range was
           onlined.
      
         - Advertise a persistence-domain for of_pmem and papr_scm. The
           persistence domain indicates where cpu-store cycles need to reach
           in the platform-memory subsystem before the platform will consider
           them power-fail protected.
      
         - Promote numa_map_to_online_node() to a cross-kernel generic
           facility.
      
         - Save x86 numa information to allow for node-id lookups for reserved
           memory ranges, deploy that capability for the e820-pmem driver.
      
         - Pick up some miscellaneous minor fixes, that missed v5.6-final,
           including a some smatch reports in the ioctl path and some unit
           test compilation fixups.
      
         - Fixup some flexible-array declarations"
      
      * tag 'libnvdimm-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (29 commits)
        dax: Move mandatory ->zero_page_range() check in alloc_dax()
        dax,iomap: Add helper dax_iomap_zero() to zero a range
        dax: Use new dax zero page method for zeroing a page
        dm,dax: Add dax zero_page_range operation
        s390,dcssblk,dax: Add dax zero_page_range operation to dcssblk driver
        dax, pmem: Add a dax operation zero_page_range
        pmem: Add functions for reading/writing page to/from pmem
        libnvdimm: Update persistence domain value for of_pmem and papr_scm device
        tools/test/nvdimm: Fix out of tree build
        libnvdimm/region: Fix build error
        libnvdimm/region: Replace zero-length array with flexible-array member
        libnvdimm/label: Replace zero-length array with flexible-array member
        ACPI: NFIT: Replace zero-length array with flexible-array member
        libnvdimm/region: Introduce an 'align' attribute
        libnvdimm/region: Introduce NDD_LABELING
        libnvdimm/namespace: Enforce memremap_compat_align()
        libnvdimm/pfn: Prevent raw mode fallback if pfn-infoblock valid
        libnvdimm: Out of bounds read in __nd_ioctl()
        acpi/nfit: improve bounds checking for 'func'
        mm/memremap_pages: Introduce memremap_compat_align()
        ...
      9b06860d
  3. 08 Apr, 2020 13 commits
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 0906d8b9
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - ARM-SMMU support for the TLB range invalidation command in SMMUv3.2
      
       - ARM-SMMU introduction of command batching helpers to batch up CD and
         ATC invalidation
      
       - ARM-SMMU support for PCI PASID, along with necessary PCI symbol
         exports
      
       - Introduce a generic (actually rename an existing) IOMMU related
         pointer in struct device and reduce the IOMMU related pointers
      
       - Some fixes for the OMAP IOMMU driver to make it build on 64bit
         architectures
      
       - Various smaller fixes and improvements
      
      * tag 'iommu-updates-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (39 commits)
        iommu: Move fwspec->iommu_priv to struct dev_iommu
        iommu/virtio: Use accessor functions for iommu private data
        iommu/qcom: Use accessor functions for iommu private data
        iommu/mediatek: Use accessor functions for iommu private data
        iommu/renesas: Use accessor functions for iommu private data
        iommu/arm-smmu: Use accessor functions for iommu private data
        iommu/arm-smmu: Refactor master_cfg/fwspec usage
        iommu/arm-smmu-v3: Use accessor functions for iommu private data
        iommu: Introduce accessors for iommu private data
        iommu/arm-smmu: Fix uninitilized variable warning
        iommu: Move iommu_fwspec to struct dev_iommu
        iommu: Rename struct iommu_param to dev_iommu
        iommu/tegra-gart: Remove direct access of dev->iommu_fwspec
        drm/msm/mdp5: Remove direct access of dev->iommu_fwspec
        ACPI/IORT: Remove direct access of dev->iommu_fwspec
        iommu: Define dev_iommu_fwspec_get() for !CONFIG_IOMMU_API
        iommu/virtio: Reject IOMMU page granule larger than PAGE_SIZE
        iommu/virtio: Fix freeing of incomplete domains
        iommu/virtio: Fix sparse warning
        iommu/vt-d: Add build dependency on IOASID
        ...
      0906d8b9
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 0339eb95
      Linus Torvalds authored
      Pull more kvm updates from Paolo Bonzini:
       "s390:
         - nested virtualization fixes
      
        x86:
         - split svm.c
      
         - miscellaneous fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: VMX: fix crash cleanup when KVM wasn't used
        KVM: X86: Filter out the broadcast dest for IPI fastpath
        KVM: s390: vsie: Fix possible race when shadowing region 3 tables
        KVM: s390: vsie: Fix delivery of addressing exceptions
        KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
        KVM: nVMX: don't clear mtf_pending when nested events are blocked
        KVM: VMX: Remove unnecessary exception trampoline in vmx_vmenter
        KVM: SVM: Split svm_vcpu_run inline assembly to separate file
        KVM: SVM: Move SEV code to separate file
        KVM: SVM: Move AVIC code to separate file
        KVM: SVM: Move Nested SVM Implementation to nested.c
        kVM SVM: Move SVM related files to own sub-directory
      0339eb95
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 9bb71526
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - Some bug fixes
      
       - The new vdpa subsystem with two first drivers
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio-balloon: Revert "virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM"
        vdpa: move to drivers/vdpa
        virtio: Intel IFC VF driver for VDPA
        vdpasim: vDPA device simulator
        vhost: introduce vDPA-based backend
        virtio: introduce a vDPA based transport
        vDPA: introduce vDPA bus
        vringh: IOTLB support
        vhost: factor out IOTLB
        vhost: allow per device message handler
        vhost: refine vhost and vringh kconfig
        virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM
        virtio-net: Introduce hash report feature
        virtio-net: Introduce RSS receive steering feature
        virtio-net: Introduce extended RSC feature
        tools/virtio: option to build an out of tree module
      9bb71526
    • Fredrik Strupe's avatar
      arm64: armv8_deprecated: Fix undef_hook mask for thumb setend · fc226601
      Fredrik Strupe authored
      For thumb instructions, call_undef_hook() in traps.c first reads a u16,
      and if the u16 indicates a T32 instruction (u16 >= 0xe800), a second
      u16 is read, which then makes up the the lower half-word of a T32
      instruction. For T16 instructions, the second u16 is not read,
      which makes the resulting u32 opcode always have the upper half set to
      0.
      
      However, having the upper half of instr_mask in the undef_hook set to 0
      masks out the upper half of all thumb instructions - both T16 and T32.
      This results in trapped T32 instructions with the lower half-word equal
      to the T16 encoding of setend (b650) being matched, even though the upper
      half-word is not 0000 and thus indicates a T32 opcode.
      
      An example of such a T32 instruction is eaa0b650, which should raise a
      SIGILL since T32 instructions with an eaa prefix are unallocated as per
      Arm ARM, but instead works as a SETEND because the second half-word is set
      to b650.
      
      This patch fixes the issue by extending instr_mask to include the
      upper u32 half, which will still match T16 instructions where the upper
      half is 0, but not T32 instructions.
      
      Fixes: 2d888f48 ("arm64: Emulate SETEND for AArch32 tasks")
      Cc: <stable@vger.kernel.org> # 4.0.x-
      Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: default avatarFredrik Strupe <fredrik@strupe.net>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      fc226601
    • Hillf Danton's avatar
      mm/gup: Let __get_user_pages_locked() return -EINTR for fatal signal · ae46d2aa
      Hillf Danton authored
      __get_user_pages_locked() will return 0 instead of -EINTR after commit
      4426e945 ("mm/gup: allow VM_FAULT_RETRY for multiple times") which
      added extra code to allow gup detect fatal signal faster.
      
      Restore the original -EINTR behavior.
      
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Fixes: 4426e945 ("mm/gup: allow VM_FAULT_RETRY for multiple times")
      Reported-by: syzbot+3be1a33f04dc782e9fd5@syzkaller.appspotmail.com
      Signed-off-by: default avatarHillf Danton <hdanton@sina.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae46d2aa
    • Pavel Begunkov's avatar
      io_uring: don't read user-shared sqe flags twice · 9c280f90
      Pavel Begunkov authored
      Don't re-read userspace-shared sqe->flags, it can be exploited.
      sqe->flags are copied into req->flags in io_submit_sqe(), check them
      there instead.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9c280f90
    • Pavel Begunkov's avatar
      io_uring: remove req init from io_get_req() · 0553b8bd
      Pavel Begunkov authored
      io_get_req() do two different things: io_kiocb allocation and
      initialisation. Move init part out of it and rename into
      io_alloc_req(). It's simpler this way and also have better data
      locality.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      0553b8bd
    • Pavel Begunkov's avatar
      io_uring: alloc req only after getting sqe · b1e50e54
      Pavel Begunkov authored
      As io_get_sqe() split into 2 stage get/consume, get an sqe before
      allocating io_kiocb, so no free_req*() for a failure case is needed,
      and inline back __io_req_do_free(), which has only 1 user.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b1e50e54
    • Pavel Begunkov's avatar
      io_uring: simplify io_get_sqring · 709b302f
      Pavel Begunkov authored
      Make io_get_sqring() care only about sqes themselves, not initialising
      the io_kiocb. Also, split it into get + consume, that will be helpful in
      the future.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      709b302f
    • Xiaoguang Wang's avatar
      io_uring: do not always copy iovec in io_req_map_rw() · 45097dae
      Xiaoguang Wang authored
      In io_read_prep() or io_write_prep(), io_req_map_rw() takes
      struct io_async_rw's fast_iov as argument to call io_import_iovec(),
      and if io_import_iovec() uses struct io_async_rw's fast_iov as
      valid iovec array, later indeed io_req_map_rw() does not need
      to do the memcpy operation, because they are same pointers.
      Signed-off-by: default avatarXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      45097dae
    • Jens Axboe's avatar
      io_uring: ensure openat sets O_LARGEFILE if needed · 08a1d26e
      Jens Axboe authored
      OPENAT2 correctly sets O_LARGEFILE if it has to, but that escaped the
      OPENAT opcode. Dmitry reports that his test case that compares openat()
      and IORING_OP_OPENAT sees failures on large files:
      
      *** sync openat
      openat succeeded
      sync write at offset 0
      write succeeded
      sync write at offset 4294967296
      write succeeded
      
      *** sync openat
      openat succeeded
      io_uring write at offset 0
      write succeeded
      io_uring write at offset 4294967296
      write succeeded
      
      *** io_uring openat
      openat succeeded
      sync write at offset 0
      write succeeded
      sync write at offset 4294967296
      write failed: File too large
      
      *** io_uring openat
      openat succeeded
      io_uring write at offset 0
      write succeeded
      io_uring write at offset 4294967296
      write failed: File too large
      
      Ensure we set O_LARGEFILE, if force_o_largefile() is true.
      
      Cc: stable@vger.kernel.org # v5.6
      Fixes: 15b71abe ("io_uring: add support for IORING_OP_OPENAT")
      Reported-by: default avatarDmitry Kadashev <dkadashev@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      08a1d26e
    • Dominique Martinet's avatar
      9p: document short read behaviour with O_NONBLOCK · c6f14141
      Dominique Martinet authored
      Regular files opened with O_NONBLOCK allow read to return after a single
      round-trip with the server instead of trying to fill buffer.
      Add a few lines in 9p documentation to describe that.
      
      Link: http://lkml.kernel.org/r/1586193572-1375-1-git-send-email-asmadeus@codewreck.orgSigned-off-by: default avatarDominique Martinet <dominique.martinet@cea.fr>
      c6f14141
    • Jens Axboe's avatar
      Merge branch 'nvme-5.7' of git://git.infradead.org/nvme into block-5.7 · d9a9755a
      Jens Axboe authored
      Pull NVMe fixes from Christoph.
      
      * 'nvme-5.7' of git://git.infradead.org/nvme:
        nvmet-rdma: fix double free of rdma queue
        nvme-fc: Revert "add module to ops template to allow module references"
        nvme: fix deadlock caused by ANA update wrong locking
        nvmet-rdma: fix bonding failover possible NULL deref
        nvmet: fix NULL dereference when removing a referral
        nvme: inherit stable pages constraint in the mpath stack device
        nvme-tcp: fix possible crash in recv error flow
        nvme-tcp: don't poll a non-live queue
        nvme-tcp: fix possible crash in write_zeroes processing
        nvmet-fc: fix typo in comment
        nvme-rdma: Replace comma with a semicolon
        nvme-fcloop: fix deallocation of working context
        nvme: fix compat address handling in several ioctls
      d9a9755a