1. 03 Aug, 2022 23 commits
    • Linus Torvalds's avatar
      Merge tag 'zonefs-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · a39b5dbd
      Linus Torvalds authored
      Pull zonefs update from Damien Le Moal:
       "A single change for this cycle to simplify handling of the memory page
        used as super block buffer during mount (from Fabio)"
      
      * tag 'zonefs-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: Call page_address() on page acquired with GFP_KERNEL flag
      a39b5dbd
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.20-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · f18d7309
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "The most notable change in this first batch is that we no longer
        schedule pages beyond i_size for writeback, preferring instead to let
        truncate deal with those pages.
      
        Next week, there may be a second pull request to remove
        iomap_writepage from the other two filesystems (gfs2/zonefs) that use
        iomap for buffered IO. This follows in the same vein as the recent
        removal of writepage from XFS, since it hasn't been triggered in a few
        years; it does nothing during direct reclaim; and as far as the people
        who examined the patchset can tell, it's moving the codebase in the
        right direction.
      
        However, as it was a late addition to for-next, I'm holding off on
        that section for another week of testing to see if anyone can come up
        with a solid reason for holding off in the meantime.
      
        Summary:
      
         - Skip writeback for pages that are completely beyond EOF
      
         - Minor code cleanups"
      
      * tag 'iomap-5.20-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        dax: set did_zero to true when zeroing successfully
        iomap: set did_zero to true when zeroing successfully
        iomap: skip pages past eof in iomap_do_writepage()
      f18d7309
    • Linus Torvalds's avatar
      Merge tag 'affs-5.20-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 2e4f8c72
      Linus Torvalds authored
      Pull affs fix from David Sterba:
       "One update to AFFS, switching away from the kmap/kmap_atomic API"
      
      * tag 'affs-5.20-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        affs: use memcpy_to_page and remove replace kmap_atomic()
      2e4f8c72
    • Linus Torvalds's avatar
      Merge tag 'for-5.20-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 353767e4
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "This brings some long awaited changes, the send protocol bump,
        otherwise lots of small improvements and fixes. The main core part is
        reworking bio handling, cleaning up the submission and endio and
        improving error handling.
      
        There are some changes outside of btrfs adding helpers or updating
        API, listed at the end of the changelog.
      
        Features:
      
         - sysfs:
            - export chunk size, in debug mode add tunable for setting its size
            - show zoned among features (was only in debug mode)
            - show commit stats (number, last/max/total duration)
      
         - send protocol updated to 2
            - new commands:
               - ability write larger data chunks than 64K
               - send raw compressed extents (uses the encoded data ioctls),
                 ie. no decompression on send side, no compression needed on
                 receive side if supported
               - send 'otime' (inode creation time) among other timestamps
               - send file attributes (a.k.a file flags and xflags)
            - this is first version bump, backward compatibility on send and
              receive side is provided
            - there are still some known and wanted commands that will be
              implemented in the near future, another version bump will be
              needed, however we want to minimize that to avoid causing
              usability issues
      
         - print checksum type and implementation at mount time
      
         - don't print some messages at mount (mentioned as people asked about
           it), we want to print messages namely for new features so let's
           make some space for that
            - big metadata - this has been supported for a long time and is
              not a feature that's worth mentioning
            - skinny metadata - same reason, set by default by mkfs
      
        Performance improvements:
      
         - reduced amount of reserved metadata for delayed items
            - when inserted items can be batched into one leaf
            - when deleting batched directory index items
            - when deleting delayed items used for deletion
            - overall improved count of files/sec, decreased subvolume lock
              contention
      
         - metadata item access bounds checker micro-optimized, with a few
           percent of improved runtime for metadata-heavy operations
      
         - increase direct io limit for read to 256 sectors, improved
           throughput by 3x on sample workload
      
        Notable fixes:
      
         - raid56
            - reduce parity writes, skip sectors of stripe when there are no
              data updates
            - restore reading from on-disk data instead of using stripe cache,
              this reduces chances to damage correct data due to RMW cycle
      
         - refuse to replay log with unknown incompat read-only feature bit
           set
      
         - zoned
            - fix page locking when COW fails in the middle of allocation
            - improved tracking of active zones, ZNS drives may limit the
              number and there are ENOSPC errors due to that limit and not
              actual lack of space
            - adjust maximum extent size for zone append so it does not cause
              late ENOSPC due to underreservation
      
         - mirror reading error messages show the mirror number
      
         - don't fallback to buffered IO for NOWAIT direct IO writes, we don't
           have the NOWAIT semantics for buffered io yet
      
         - send, fix sending link commands for existing file paths when there
           are deleted and created hardlinks for same files
      
         - repair all mirrors for profiles with more than 1 copy (raid1c34)
      
         - fix repair of compressed extents, unify where error detection and
           repair happen
      
        Core changes:
      
         - bio completion cleanups
            - don't double defer compression bios
            - simplify endio workqueues
            - add more data to btrfs_bio to avoid allocation for read requests
            - rework bio error handling so it's same what block layer does,
              the submission works and errors are consumed in endio
            - when asynchronous bio offload fails fall back to synchronous
              checksum calculation to avoid errors under writeback or memory
              pressure
      
         - new trace points
            - raid56 events
            - ordered extent operations
      
         - super block log_root_transid deprecated (never used)
      
         - mixed_backref and big_metadata sysfs feature files removed, they've
           been default for sufficiently long time, there are no known users
           and mixed_backref could be confused with mixed_groups
      
        Non-btrfs changes, API updates:
      
         - minor highmem API update to cover const arguments
      
         - switch all kmap/kmap_atomic to kmap_local
      
         - remove redundant flush_dcache_page()
      
         - address_space_operations::writepage callback removed
      
         - add bdev_max_segments() helper"
      
      * tag 'for-5.20-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (163 commits)
        btrfs: don't call btrfs_page_set_checked in finish_compressed_bio_read
        btrfs: fix repair of compressed extents
        btrfs: remove the start argument to check_data_csum and export
        btrfs: pass a btrfs_bio to btrfs_repair_one_sector
        btrfs: simplify the pending I/O counting in struct compressed_bio
        btrfs: repair all known bad mirrors
        btrfs: merge btrfs_dev_stat_print_on_error with its only caller
        btrfs: join running log transaction when logging new name
        btrfs: simplify error handling in btrfs_lookup_dentry
        btrfs: send: always use the rbtree based inode ref management infrastructure
        btrfs: send: fix sending link commands for existing file paths
        btrfs: send: introduce recorded_ref_alloc and recorded_ref_free
        btrfs: zoned: wait until zone is finished when allocation didn't progress
        btrfs: zoned: write out partially allocated region
        btrfs: zoned: activate necessary block group
        btrfs: zoned: activate metadata block group on flush_space
        btrfs: zoned: disable metadata overcommit for zoned
        btrfs: zoned: introduce space_info->active_total_bytes
        btrfs: zoned: finish least available block group on data bg allocation
        btrfs: let can_allocate_chunk return error
        ...
      353767e4
    • Linus Torvalds's avatar
      Merge tag 'efi-efivars-removal-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · ab17c0cd
      Linus Torvalds authored
      Pull efivars sysfs interface removal from Ard Biesheuvel:
       "Remove the obsolete 'efivars' sysfs based interface to the EFI
        variable store, now that all users have moved to the efivarfs pseudo
        file system, which was created ~10 years ago to address some
        fundamental shortcomings in the sysfs based driver.
      
        Move the 'business logic' related to which EFI variables are important
        and may affect the boot flow from the efivars support layer into the
        efivarfs pseudo file system, so it is no longer exposed to other parts
        of the kernel"
      
      * tag 'efi-efivars-removal-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi: vars: Move efivar caching layer into efivarfs
        efi: vars: Switch to new wrapper layer
        efi: vars: Remove deprecated 'efivars' sysfs interface
      ab17c0cd
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 97a77ab1
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
      
       - Enable mirrored memory for arm64
      
       - Fix up several abuses of the efivar API
      
       - Refactor the efivar API in preparation for moving the 'business
         logic' part of it into efivarfs
      
       - Enable ACPI PRM on arm64
      
      * tag 'efi-next-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi: (24 commits)
        ACPI: Move PRM config option under the main ACPI config
        ACPI: Enable Platform Runtime Mechanism(PRM) support on ARM64
        ACPI: PRM: Change handler_addr type to void pointer
        efi: Simplify arch_efi_call_virt() macro
        drivers: fix typo in firmware/efi/memmap.c
        efi: vars: Drop __efivar_entry_iter() helper which is no longer used
        efi: vars: Use locking version to iterate over efivars linked lists
        efi: pstore: Omit efivars caching EFI varstore access layer
        efi: vars: Add thin wrapper around EFI get/set variable interface
        efi: vars: Don't drop lock in the middle of efivar_init()
        pstore: Add priv field to pstore_record for backend specific use
        Input: applespi - avoid efivars API and invoke EFI services directly
        selftests/kexec: remove broken EFI_VARS secure boot fallback check
        brcmfmac: Switch to appropriate helper to load EFI variable contents
        iwlwifi: Switch to proper EFI variable store interface
        media: atomisp_gmin_platform: stop abusing efivar API
        efi: efibc: avoid efivar API for setting variables
        efi: avoid efivars layer when loading SSDTs from variables
        efi: Correct comment on efi_memmap_alloc
        memblock: Disable mirror feature if kernelcore is not specified
        ...
      97a77ab1
    • Linus Torvalds's avatar
      Merge tag 'pull-work.9p' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · ff89dd08
      Linus Torvalds authored
      Pull 9p iov_iter fix from Al Viro:
       "net/9p abuses iov_iter primitives - it attempts to copy _from_ a
        destination-only iov_iter when it handles Rerror arriving in reply to
        zero-copy request.   Not hard to fix, fortunately.
      
        This is a prereq for the iov_iter_get_pages() work in the second part
        of iov_iter series, ended up in a separate branch"
      
      * tag 'pull-work.9p' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        9p: handling Rerror without copy_from_iter_full()
      ff89dd08
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · d9b58ab7
      Linus Torvalds authored
      Pull copy_to_iter_mc fix from Al Viro:
       "Backportable fix for copy_to_iter_mc() - the second part of iov_iter
        work will pretty much overwrite this, but would be much harder to
        backport"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix short copy handling in copy_mc_pipe_to_iter()
      d9b58ab7
    • Linus Torvalds's avatar
      Merge tag 'pull-work.iov_iter-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5264406c
      Linus Torvalds authored
      Pull vfs iov_iter updates from Al Viro:
       "Part 1 - isolated cleanups and optimizations.
      
        One of the goals is to reduce the overhead of using ->read_iter() and
        ->write_iter() instead of ->read()/->write().
      
        new_sync_{read,write}() has a surprising amount of overhead, in
        particular inside iocb_flags(). That's the explanation for the
        beginning of the series is in this pile; it's not directly
        iov_iter-related, but it's a part of the same work..."
      
      * tag 'pull-work.iov_iter-base' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        first_iovec_segment(): just return address
        iov_iter: massage calling conventions for first_{iovec,bvec}_segment()
        iov_iter: first_{iovec,bvec}_segment() - simplify a bit
        iov_iter: lift dealing with maxpages out of first_{iovec,bvec}_segment()
        iov_iter_get_pages{,_alloc}(): cap the maxsize with MAX_RW_COUNT
        iov_iter_bvec_advance(): don't bother with bvec_iter
        copy_page_{to,from}_iter(): switch iovec variants to generic
        keep iocb_flags() result cached in struct file
        iocb: delay evaluation of IS_SYNC(...) until we want to check IOCB_DSYNC
        struct file: use anonymous union member for rcuhead and llist
        btrfs: use IOMAP_DIO_NOSYNC
        teach iomap_dio_rw() to suppress dsync
        No need of likely/unlikely on calls of check_copy_size()
      5264406c
    • Linus Torvalds's avatar
      Merge tag 'pull-work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 200e340f
      Linus Torvalds authored
      Pull vfs dcache updates from Al Viro:
       "The main part here is making parallel lookups safe for RT - making
        sure preemption is disabled in start_dir_add()/ end_dir_add() sections
        (on non-RT it's automatic, on RT it needs to to be done explicitly)
        and moving wakeups from __d_lookup_done() inside of such to the end of
        those sections.
      
        Wakeups can be safely delayed for as long as ->d_lock on in-lookup
        dentry is held; proving that has caught a bug in d_add_ci() that
        allows memory corruption when sufficiently bogus ntfs (or
        case-insensitive xfs) image is mounted. Easily fixed, fortunately"
      
      * tag 'pull-work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs/dcache: Move wakeup out of i_seq_dir write held region.
        fs/dcache: Move the wakeup from __d_lookup_done() to the caller.
        fs/dcache: Disable preemption on i_dir_seq write side on PREEMPT_RT
        d_add_ci(): make sure we don't miss d_lookup_done()
      200e340f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.lseek' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · a782e866
      Linus Torvalds authored
      Pull vfs lseek updates from Al Viro:
       "Jason's lseek series.
      
        Saner handling of 'lseek should fail with ESPIPE' - this gets rid of
        the magical no_llseek thing and makes checks consistent.
      
        In particular, the ad-hoc "can we do splice via internal pipe" checks
        got saner (and somewhat more permissive, which is what Jason had been
        after, AFAICT)"
      
      * tag 'pull-work.lseek' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: remove no_llseek
        fs: check FMODE_LSEEK to control internal pipe splicing
        vfio: do not set FMODE_LSEEK flag
        dma-buf: remove useless FMODE_LSEEK flag
        fs: do not compare against ->llseek
        fs: clear or set FMODE_LSEEK based on llseek function
      a782e866
    • Linus Torvalds's avatar
      Merge tag 'pull-work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · d9395512
      Linus Torvalds authored
      Pull vfs namei updates from Al Viro:
       "RCU pathwalk cleanups.
      
        Storing sampled ->d_seq of the next dentry in nameidata simplifies
        life considerably, especially if we delay fetching ->d_inode until
        step_into()"
      
      * tag 'pull-work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        step_into(): move fetching ->d_inode past handle_mounts()
        lookup_fast(): don't bother with inode
        follow_dotdot{,_rcu}(): don't bother with inode
        step_into(): lose inode argument
        namei: stash the sampled ->d_seq into nameidata
        namei: move clearing LOOKUP_RCU towards rcu_read_unlock()
        switch try_to_unlazy_next() to __legitimize_mnt()
        follow_dotdot{,_rcu}(): change calling conventions
        namei: get rid of pointless unlikely(read_seqcount_retry(...))
        __follow_mount_rcu(): verify that mount_lock remains unchanged
      d9395512
    • Linus Torvalds's avatar
      Merge tag 'folio-6.0' of git://git.infradead.org/users/willy/pagecache · f0065400
      Linus Torvalds authored
      Pull folio updates from Matthew Wilcox:
      
       - Fix an accounting bug that made NR_FILE_DIRTY grow without limit
         when running xfstests
      
       - Convert more of mpage to use folios
      
       - Remove add_to_page_cache() and add_to_page_cache_locked()
      
       - Convert find_get_pages_range() to filemap_get_folios()
      
       - Improvements to the read_cache_page() family of functions
      
       - Remove a few unnecessary checks of PageError
      
       - Some straightforward filesystem conversions to use folios
      
       - Split PageMovable users out from address_space_operations into
         their own movable_operations
      
       - Convert aops->migratepage to aops->migrate_folio
      
       - Remove nobh support (Christoph Hellwig)
      
      * tag 'folio-6.0' of git://git.infradead.org/users/willy/pagecache: (78 commits)
        fs: remove the NULL get_block case in mpage_writepages
        fs: don't call ->writepage from __mpage_writepage
        fs: remove the nobh helpers
        jfs: stop using the nobh helper
        ext2: remove nobh support
        ntfs3: refactor ntfs_writepages
        mm/folio-compat: Remove migration compatibility functions
        fs: Remove aops->migratepage()
        secretmem: Convert to migrate_folio
        hugetlb: Convert to migrate_folio
        aio: Convert to migrate_folio
        f2fs: Convert to filemap_migrate_folio()
        ubifs: Convert to filemap_migrate_folio()
        btrfs: Convert btrfs_migratepage to migrate_folio
        mm/migrate: Add filemap_migrate_folio()
        mm/migrate: Convert migrate_page() to migrate_folio()
        nfs: Convert to migrate_folio
        btrfs: Convert btree_migratepage to migrate_folio
        mm/migrate: Convert expected_page_refs() to folio_expected_refs()
        mm/migrate: Convert buffer_migrate_page() to buffer_migrate_folio()
        ...
      f0065400
    • Linus Torvalds's avatar
      Merge tag 'xarray-6.0' of git://git.infradead.org/users/willy/xarray · e087437a
      Linus Torvalds authored
      Pull XArray/IDR updates from Matthew Wilcox:
      
       - Add appropriate might_alloc() annotations to the XArray APIs
      
       - Document that the IDR is deprecated
      
      * tag 'xarray-6.0' of git://git.infradead.org/users/willy/xarray:
        IDR: Note that the IDR API is deprecated
        XArray: Add calls to might_alloc()
      e087437a
    • Linus Torvalds's avatar
      Merge tag 'cgroup-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · b6bb70f9
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Several core optimizations:
      
         - threadgroup_rwsem write locking is skipped when configuring
           controllers in empty subtrees.
      
           Combined with CLONE_INTO_CGROUP, this allows the common static
           usage pattern to not grab threadgroup_rwsem at all (glibc still
           doesn't seem ready for CLONE_INTO_CGROUP unfortunately).
      
         - threadgroup_rwsem used to be put into non-percpu mode by default
           due to latency concerns in specific use cases. There's no reason
           for everyone else to pay for it. Make the behavior optional.
      
         - psi no longer allocates memory when disabled.
      
        ... along with some code cleanups"
      
      * tag 'cgroup-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: Skip subtree root in cgroup_update_dfl_csses()
        cgroup: remove "no" prefixed mount options
        cgroup: Make !percpu threadgroup_rwsem operations optional
        cgroup: Add "no" prefixed mount options
        cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
        cgroup.c: remove redundant check for mixable cgroup in cgroup_migrate_vet_dst
        cgroup.c: add helper __cset_cgroup_from_root to cleanup duplicated codes
        psi: dont alloc memory for psi by default
      b6bb70f9
    • Linus Torvalds's avatar
      Merge tag 'flexible-array-transformations-UAPI-6.0-rc1' of... · e2b54210
      Linus Torvalds authored
      Merge tag 'flexible-array-transformations-UAPI-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull uapi flexible array update from Gustavo Silva:
       "A treewide patch that replaces zero-length arrays with flexible-array
        members in UAPI. This has been baking in linux-next for 5 weeks now.
      
        '-fstrict-flex-arrays=3' is coming and we need to land these changes
        to prevent issues like these in the short future:
      
          fs/minix/dir.c:337:3: warning: 'strcpy' will always overflow; destination buffer has size 0, but the source string has length 2 (including NUL byte) [-Wfortify-source]
      		strcpy(de3->name, ".");
      		^
      
        Since these are all [0] to [] changes, the risk to UAPI is nearly
        zero. If this breaks anything, we can use a union with a new member
        name"
      
      Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101836
      
      * tag 'flexible-array-transformations-UAPI-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        treewide: uapi: Replace zero-length arrays with flexible-array members
      e2b54210
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-5.20-rc1' of... · e05d5b9c
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest updates from Shuah Khan:
      
       - timers test build fixes and cleanups for new tool chains
      
       - removing khdr from kselftest framework and main Makefile
      
       - changes to test output messages to improve reports
      
      * tag 'linux-kselftest-next-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (24 commits)
        Makefile: replace headers_install with headers for kselftest
        selftests/landlock: drop deprecated headers dependency
        selftests: timers: clocksource-switch: adapt to kselftest framework
        selftests: timers: clocksource-switch: add 'runtime' command line parameter
        selftests: timers: clocksource-switch: add command line switch to skip sanity check
        selftests: timers: clocksource-switch: sort includes
        selftests: timers: clocksource-switch: fix passing errors from child
        selftests: timers: inconsistency-check: adapt to kselftest framework
        selftests: timers: nanosleep: adapt to kselftest framework
        selftests: timers: fix declarations of main()
        selftests: timers: valid-adjtimex: build fix for newer toolchains
        Makefile: add headers_install to kselftest targets
        selftests: drop KSFT_KHDR_INSTALL make target
        selftests: stop using KSFT_KHDR_INSTALL
        selftests: drop khdr make target
        selftests: drivers/dma-buf: Improve message in selftest summary
        selftests/kcmp: Make the test output consistent and clear
        selftests:timers: globals don't need initialization to 0
        selftests/drivers/gpu: Add error messages to drm_mm.sh
        selftests/tpm2: increase timeout for kselftests
        ...
      e05d5b9c
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-5.20-rc1' of... · 665fe72a
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit updates from Shuah Khan:
       "This consists of several fixes and an important feature to discourage
        running KUnit tests on production systems. Running tests on a
        production system could leave the system in a bad state.
      
        Summary:
      
         - Add a new taint type, TAINT_TEST to signal that a test has been
           run.
      
           This should discourage people from running these tests on
           production systems, and to make it easier to tell if tests have
           been run accidentally (by loading the wrong configuration, etc)
      
         - Several documentation and tool enhancements and fixes"
      
      * tag 'linux-kselftest-kunit-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (29 commits)
        Documentation: KUnit: Fix example with compilation error
        Documentation: kunit: Add CLI args for kunit_tool
        kcsan: test: Add a .kunitconfig to run KCSAN tests
        kunit: executor: Fix a memory leak on failure in kunit_filter_tests
        clk: explicitly disable CONFIG_UML_PCI_OVER_VIRTIO in .kunitconfig
        mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro
        nitro_enclaves: test: Use kunit_test_suite() macro
        thunderbolt: test: Use kunit_test_suite() macro
        kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites
        kunit: unify module and builtin suite definitions
        selftest: Taint kernel when test module loaded
        module: panic: Taint the kernel when selftest modules load
        Documentation: kunit: fix example run_kunit func to allow spaces in args
        Documentation: kunit: Cleanup run_wrapper, fix x-ref
        kunit: test.h: fix a kernel-doc markup
        kunit: tool: Enable virtio/PCI by default on UML
        kunit: tool: make --kunitconfig repeatable, blindly concat
        kunit: add coverage_uml.config to enable GCOV on UML
        kunit: tool: refactor internal kconfig handling, allow overriding
        kunit: tool: introduce --qemu_args
        ...
      665fe72a
    • Linus Torvalds's avatar
      Merge tag 'docs-6.0' of git://git.lwn.net/linux · aad26f55
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "This was a moderately busy cycle for documentation, but nothing
        all that earth-shaking:
      
         - More Chinese translations, and an update to the Italian
           translations.
      
           The Japanese, Korean, and traditional Chinese translations
           are more-or-less unmaintained at this point, instead.
      
         - Some build-system performance improvements.
      
         - The removal of the archaic submitting-drivers.rst document,
           with the movement of what useful material that remained into
           other docs.
      
         - Improvements to sphinx-pre-install to, hopefully, give more
           useful suggestions.
      
         - A number of build-warning fixes
      
        Plus the usual collection of typo fixes, updates, and more"
      
      * tag 'docs-6.0' of git://git.lwn.net/linux: (92 commits)
        docs: efi-stub: Fix paths for x86 / arm stubs
        Docs/zh_CN: Update the translation of sched-stats to 5.19-rc8
        Docs/zh_CN: Update the translation of pci to 5.19-rc8
        Docs/zh_CN: Update the translation of pci-iov-howto to 5.19-rc8
        Docs/zh_CN: Update the translation of usage to 5.19-rc8
        Docs/zh_CN: Update the translation of testing-overview to 5.19-rc8
        Docs/zh_CN: Update the translation of sparse to 5.19-rc8
        Docs/zh_CN: Update the translation of kasan to 5.19-rc8
        Docs/zh_CN: Update the translation of iio_configfs to 5.19-rc8
        doc:it_IT: align Italian documentation
        docs: Remove spurious tag from admin-guide/mm/overcommit-accounting.rst
        Documentation: process: Update email client instructions for Thunderbird
        docs: ABI: correct QEMU fw_cfg spec path
        doc/zh_CN: remove submitting-driver reference from docs
        docs: zh_TW: align to submitting-drivers removal
        docs: zh_CN: align to submitting-drivers removal
        docs: ko_KR: howto: remove reference to removed submitting-drivers
        docs: ja_JP: howto: remove reference to removed submitting-drivers
        docs: it_IT: align to submitting-drivers removal
        docs: process: remove outdated submitting-drivers.rst
        ...
      aad26f55
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2022.07.27a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · b0691222
      Linus Torvalds authored
      Pull nolibc updates from Paul McKenney:
       "This provides nolibc updates, perhaps most notably improved testing
        via the 'cd tools/include/nolibc; make headers' command. This should
        be considered a smoke test. More thorough testing is in the works"
      
      * tag 'nolibc.2022.07.27a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        tools/nolibc: add a help target to list supported targets
        tools/nolibc: make the default target build the headers
        tools/nolibc: fix the makefile to also work as "make -C tools ..."
        tools/nolibc/stdio: Add format attribute to enable printf warnings
        tools/nolibc/stdlib: Support overflow checking for older compiler versions
      b0691222
    • Linus Torvalds's avatar
      Merge tag 'rcu.2022.07.26a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 7d9d077c
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
      
       - Documentation updates
      
       - Miscellaneous fixes
      
       - Callback-offload updates, perhaps most notably a new
         RCU_NOCB_CPU_DEFAULT_ALL Kconfig option that causes all CPUs to be
         offloaded at boot time, regardless of kernel boot parameters.
      
         This is useful to battery-powered systems such as ChromeOS and
         Android. In addition, a new RCU_NOCB_CPU_CB_BOOST kernel boot
         parameter prevents offloaded callbacks from interfering with
         real-time workloads and with energy-efficiency mechanisms
      
       - Polled grace-period updates, perhaps most notably making these APIs
         account for both normal and expedited grace periods
      
       - Tasks RCU updates, perhaps most notably reducing the CPU overhead of
         RCU tasks trace grace periods by more than a factor of two on a
         system with 15,000 tasks.
      
         The reduction is expected to increase with the number of tasks, so it
         seems reasonable to hypothesize that a system with 150,000 tasks
         might see a 20-fold reduction in CPU overhead
      
       - Torture-test updates
      
       - Updates that merge RCU's dyntick-idle tracking into context tracking,
         thus reducing the overhead of transitioning to kernel mode from
         either idle or nohz_full userspace execution for kernels that track
         context independently of RCU.
      
         This is expected to be helpful primarily for kernels built with
         CONFIG_NO_HZ_FULL=y
      
      * tag 'rcu.2022.07.26a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (98 commits)
        rcu: Add irqs-disabled indicator to expedited RCU CPU stall warnings
        rcu: Diagnose extended sync_rcu_do_polled_gp() loops
        rcu: Put panic_on_rcu_stall() after expedited RCU CPU stall warnings
        rcutorture: Test polled expedited grace-period primitives
        rcu: Add polled expedited grace-period primitives
        rcutorture: Verify that polled GP API sees synchronous grace periods
        rcu: Make Tiny RCU grace periods visible to polled APIs
        rcu: Make polled grace-period API account for expedited grace periods
        rcu: Switch polled grace-period APIs to ->gp_seq_polled
        rcu/nocb: Avoid polling when my_rdp->nocb_head_rdp list is empty
        rcu/nocb: Add option to opt rcuo kthreads out of RT priority
        rcu: Add nocb_cb_kthread check to rcu_is_callbacks_kthread()
        rcu/nocb: Add an option to offload all CPUs on boot
        rcu/nocb: Fix NOCB kthreads spawn failure with rcu_nocb_rdp_deoffload() direct call
        rcu/nocb: Invert rcu_state.barrier_mutex VS hotplug lock locking order
        rcu/nocb: Add/del rdp to iterate from rcuog itself
        rcu/tree: Add comment to describe GP-done condition in fqs loop
        rcu: Initialize first_gp_fqs at declaration in rcu_gp_fqs()
        rcu/kvfree: Remove useless monitor_todo flag
        rcu: Cleanup RCU urgency state for offline CPU
        ...
      7d9d077c
    • Linus Torvalds's avatar
      Merge tag 'v5.20-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · c2a24a7a
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
      "API:
      
         - Make proc files report fips module name and version
      
        Algorithms:
      
         - Move generic SHA1 code into lib/crypto
      
         - Implement Chinese Remainder Theorem for RSA
      
         - Remove blake2s
      
         - Add XCTR with x86/arm64 acceleration
      
         - Add POLYVAL with x86/arm64 acceleration
      
         - Add HCTR2
      
         - Add ARIA
      
        Drivers:
      
         - Add support for new CCP/PSP device ID in ccp"
      
      * tag 'v5.20-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (89 commits)
        crypto: tcrypt - Remove the static variable initialisations to NULL
        crypto: arm64/poly1305 - fix a read out-of-bound
        crypto: hisilicon/zip - Use the bitmap API to allocate bitmaps
        crypto: hisilicon/sec - fix auth key size error
        crypto: ccree - Remove a useless dma_supported() call
        crypto: ccp - Add support for new CCP/PSP device ID
        crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
        crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq
        crypto: testmgr - some more fixes to RSA test vectors
        cyrpto: powerpc/aes - delete the rebundant word "block" in comments
        hwrng: via - Fix comment typo
        crypto: twofish - Fix comment typo
        crypto: rmd160 - fix Kconfig "its" grammar
        crypto: keembay-ocs-ecc - Drop if with an always false condition
        Documentation: qat: rewrite description
        Documentation: qat: Use code block for qat sysfs example
        crypto: lib - add module license to libsha1
        crypto: lib - make the sha1 library optional
        crypto: lib - move lib/sha1.c into lib/crypto/
        crypto: fips - make proc files report fips module name and version
        ...
      c2a24a7a
    • Linus Torvalds's avatar
      Merge tag 'random-6.0-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · a0b09f2d
      Linus Torvalds authored
      Pull random number generator updates from Jason Donenfeld:
       "Though there's been a decent amount of RNG-related development during
        this last cycle, not all of it is coming through this tree, as this
        cycle saw a shift toward tackling early boot time seeding issues,
        which took place in other trees as well.
      
        Here's a summary of the various patches:
      
         - The CONFIG_ARCH_RANDOM .config option and the "nordrand" boot
           option have been removed, as they overlapped with the more widely
           supported and more sensible options, CONFIG_RANDOM_TRUST_CPU and
           "random.trust_cpu". This change allowed simplifying a bit of arch
           code.
      
         - x86's RDRAND boot time test has been made a bit more robust, with
           RDRAND disabled if it's clearly producing bogus results. This would
           be a tip.git commit, technically, but I took it through random.git
           to avoid a large merge conflict.
      
         - The RNG has long since mixed in a timestamp very early in boot, on
           the premise that a computer that does the same things, but does so
           starting at different points in wall time, could be made to still
           produce a different RNG state. Unfortunately, the clock isn't set
           early in boot on all systems, so now we mix in that timestamp when
           the time is actually set.
      
         - User Mode Linux now uses the host OS's getrandom() syscall to
           generate a bootloader RNG seed and later on treats getrandom() as
           the platform's RDRAND-like faculty.
      
         - The arch_get_random_{seed_,}_long() family of functions is now
           arch_get_random_{seed_,}_longs(), which enables certain platforms,
           such as s390, to exploit considerable performance advantages from
           requesting multiple CPU random numbers at once, while at the same
           time compiling down to the same code as before on platforms like
           x86.
      
         - A small cleanup changing a cmpxchg() into a try_cmpxchg(), from
           Uros.
      
         - A comment spelling fix"
      
      More info about other random number changes that come in through various
      architecture trees in the full commentary in the pull request:
      
        https://lore.kernel.org/all/20220731232428.2219258-1-Jason@zx2c4.com/
      
      * tag 'random-6.0-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        random: correct spelling of "overwrites"
        random: handle archrandom with multiple longs
        um: seed rng using host OS rng
        random: use try_cmpxchg in _credit_init_bits
        timekeeping: contribute wall clock to rng on time change
        x86/rdrand: Remove "nordrand" flag in favor of "random.trust_cpu"
        random: remove CONFIG_ARCH_RANDOM
      a0b09f2d
  2. 02 Aug, 2022 17 commits
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 569bede0
      Linus Torvalds authored
      Pull fsverity update from Eric Biggers:
       "Just a small documentation update to mention the btrfs support"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: mention btrfs support
      569bede0
    • Linus Torvalds's avatar
      Merge tag 'integrity-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 04340249
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "Aside from the one EVM cleanup patch, all the other changes are kexec
        related.
      
        On different architectures different keyrings are used to verify the
        kexec'ed kernel image signature. Here are a number of preparatory
        cleanup patches and the patches themselves for making the keyrings -
        builtin_trusted_keyring, .machine, .secondary_trusted_keyring, and
        .platform - consistent across the different architectures"
      
      * tag 'integrity-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
        arm64: kexec_file: use more system keyrings to verify kernel image signature
        kexec, KEYS: make the code in bzImage64_verify_sig generic
        kexec: clean up arch_kexec_kernel_verify_sig
        kexec: drop weak attribute from functions
        kexec_file: drop weak attribute from functions
        evm: Use IS_ENABLED to initialize .enabled
      04340249
    • Linus Torvalds's avatar
      Merge tag 'safesetid-6.0' of https://github.com/micah-morton/linux · 87fe1adb
      Linus Torvalds authored
      Pull SafeSetID updates from Micah Morton:
       "This contains one commit that touches common kernel code, one that
        adds functionality internal to the SafeSetID LSM code, and a few other
        commits that only modify the SafeSetID LSM selftest.
      
        The commit that touches common kernel code simply adds an LSM hook in
        the setgroups() syscall that mirrors what is done for the existing LSM
        hooks in the setuid() and setgid() syscalls. This commit combined with
        the SafeSetID-specific one allow the LSM to filter setgroups() calls
        according to configured rule sets in the same way that is already done
        for setuid() and setgid()"
      
      * tag 'safesetid-6.0' of https://github.com/micah-morton/linux:
        LSM: SafeSetID: add setgroups() testing to selftest
        LSM: SafeSetID: Add setgroups() security policy handling
        security: Add LSM hook to setgroups() syscall
        LSM: SafeSetID: add GID testing to selftest
        LSM: SafeSetID: selftest cleanup and prepare for GIDs
        LSM: SafeSetID: fix userns bug in selftest
      87fe1adb
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-6.0' of https://github.com/cschaufler/smack-next · ea7099d5
      Linus Torvalds authored
      Pull msack updates from Casey Schaufler:
       "Two minor code clean-ups for Smack.
      
        One removes a touch of dead code and the other replaces an instance of
        kzalloc + strncpy with kstrndup"
      
      * tag 'Smack-for-6.0' of https://github.com/cschaufler/smack-next:
        smack: Remove the redundant lsm_inode_alloc
        smack: Replace kzalloc + strncpy with kstrndup
      ea7099d5
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · 1b6cf909
      Linus Torvalds authored
      Pull LSM update from Paul Moore:
       "A maintainer change for the LSM layer: James has asked me to take over
        the day-to-day responsibilities so a single patch to update the
        MAINTAINER info"
      
      * tag 'lsm-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        MAINTAINERS: update the LSM maintainer info
      1b6cf909
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · f42e1e3e
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Two minor audit patches: on marks a function as static, the other
        removes a redundant length check"
      
      * tag 'audit-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: make is_audit_feature_set() static
        audit: remove redundant data_len check
      f42e1e3e
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 79802ada
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "A relatively small set of patches for SELinux this time, eight patches
        in total with really only one significant change.
      
        The highlights are:
      
         - Add support for proper labeling of memfd_secret anonymous inodes.
      
           This will allow LSMs that implement the anonymous inode hooks to
           apply security policy to memfd_secret() fds.
      
         - Various small improvements to memory management: fixed leaks, freed
           memory when needed, boundary checks.
      
         - Hardened the selinux_audit_data struct with __randomize_layout.
      
         - A minor documentation tweak to fix a formatting/style issue"
      
      * tag 'selinux-pr-20220801' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: selinux_add_opt() callers free memory
        selinux: Add boundary check in put_entry()
        selinux: fix memleak in security_read_state_kernel()
        docs: selinux: add '=' signs to kernel boot options
        mm: create security context for memfd_secret inodes
        selinux: fix typos in comments
        selinux: drop unnecessary NULL check
        selinux: add __randomize_layout to selinux_audit_data
      79802ada
    • Linus Torvalds's avatar
      Merge tag 'hardening-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 6991a564
      Linus Torvalds authored
      Pull hardening updates from Kees Cook:
      
       - Fix Sparse warnings with randomizd kstack (GONG, Ruiqi)
      
       - Replace uintptr_t with unsigned long in usercopy (Jason A. Donenfeld)
      
       - Fix Clang -Wforward warning in LKDTM (Justin Stitt)
      
       - Fix comment to correctly refer to STRICT_DEVMEM (Lukas Bulwahn)
      
       - Introduce dm-verity binding logic to LoadPin LSM (Matthias Kaehlcke)
      
       - Clean up warnings and overflow and KASAN tests (Kees Cook)
      
      * tag 'hardening-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        dm: verity-loadpin: Drop use of dm_table_get_num_targets()
        kasan: test: Silence GCC 12 warnings
        drivers: lkdtm: fix clang -Wformat warning
        x86: mm: refer to the intended config STRICT_DEVMEM in a comment
        dm: verity-loadpin: Use CONFIG_SECURITY_LOADPIN_VERITY for conditional compilation
        LoadPin: Enable loading from trusted dm-verity devices
        dm: Add verity helpers for LoadPin
        stack: Declare {randomize_,}kstack_offset to fix Sparse warnings
        lib: overflow: Do not define 64-bit tests on 32-bit
        MAINTAINERS: Add a general "kernel hardening" section
        usercopy: use unsigned long instead of uintptr_t
      6991a564
    • Linus Torvalds's avatar
      Merge tag 'execve-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · d7b767b5
      Linus Torvalds authored
      Pull execve updates from Kees Cook:
      
       - Allow unsharing time namespace on vfork+exec (Andrei Vagin)
      
       - Replace usage of deprecated kmap APIs (Fabio M. De Francesco)
      
       - Fix spelling mistake (Zhang Jiaming)
      
      * tag 'execve-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        exec: Call kmap_local_page() in copy_string_kernel()
        exec: Fix a spelling mistake
        selftests/timens: add a test for vfork+exit
        fs/exec: allow to unshare a time namespace on vfork+exec
      d7b767b5
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 9a8ac9ee
      Linus Torvalds authored
      Pull seccomp update from Kees Cook:
      
       - Fix Clang build warning (YiFei Zhu)
      
      * tag 'seccomp-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        selftests/seccomp: Fix compile warning when CC=clang
      9a8ac9ee
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · ddd1949f
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
      
       - Migrate to modern acomp crypto interface (Ard Biesheuvel)
      
       - Use better return type for "rcnt" (Dan Carpenter)
      
      * tag 'pstore-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/zone: cleanup "rcnt" type
        pstore: migrate to crypto acomp interface
      ddd1949f
    • Linus Torvalds's avatar
      Merge tag 'for-6.0/dm-changes' of... · 8374cfe6
      Linus Torvalds authored
      Merge tag 'for-6.0/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Refactor DM core's mempool allocation so that it clearer by not being
         split acorss files.
      
       - Improve DM core's BLK_STS_DM_REQUEUE and BLK_STS_AGAIN handling.
      
       - Optimize DM core's more common bio splitting by eliminating the use
         of bio cloning with bio_split+bio_chain. Shift that cloning cost to
         the relatively unlikely dm_io requeue case that only occurs during
         error handling. Introduces dm_io_rewind() that will clone a bio that
         reflects the subset of the original bio that must be requeued.
      
       - Remove DM core's dm_table_get_num_targets() wrapper and audit all
         dm_table_get_target() callers.
      
       - Fix potential for OOM with DM writecache target by setting a default
         MAX_WRITEBACK_JOBS (set to 256MiB or 1/16 of total system memory,
         whichever is smaller).
      
       - Fix DM writecache target's stats that are reported through
         DM-specific table info.
      
       - Fix use-after-free crash in dm_sm_register_threshold_callback().
      
       - Refine DM core's Persistent Reservation handling in preparation for
         broader work Mike Christie is doing to add compatibility with
         Microsoft Windows Failover Cluster.
      
       - Fix various KASAN reported bugs in the DM raid target.
      
       - Fix DM raid target crash due to md_handle_request() bio splitting
         that recurses to block core without properly initializing the bio's
         bi_dev.
      
       - Fix some code comment typos and fix some Documentation formatting.
      
      * tag 'for-6.0/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (29 commits)
        dm: fix dm-raid crash if md_handle_request() splits bio
        dm raid: fix address sanitizer warning in raid_resume
        dm raid: fix address sanitizer warning in raid_status
        dm: Start pr_preempt from the same starting path
        dm: Fix PR release handling for non All Registrants
        dm: Start pr_reserve from the same starting path
        dm: Allow dm_call_pr to be used for path searches
        dm: return early from dm_pr_call() if DM device is suspended
        dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
        dm writecache: count number of blocks discarded, not number of discard bios
        dm writecache: count number of blocks written, not number of write bios
        dm writecache: count number of blocks read, not number of read bios
        dm writecache: return void from functions
        dm kcopyd: use __GFP_HIGHMEM when allocating pages
        dm writecache: set a default MAX_WRITEBACK_JOBS
        Documentation: dm writecache: Render status list as list
        Documentation: dm writecache: add blank line before optional parameters
        dm snapshot: fix typo in snapshot_map() comment
        dm raid: remove redundant "the" in parse_raid_params() comment
        dm cache: fix typo in 2 comment blocks
        ...
      8374cfe6
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/block-2022-07-29' of git://git.kernel.dk/linux-block · c013d0af
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - Improve the type checking of request flags (Bart)
      
       - Ensure queue mapping for a single queues always picks the right queue
         (Bart)
      
       - Sanitize the io priority handling (Jan)
      
       - rq-qos race fix (Jinke)
      
       - Reserved tags handling improvements (John)
      
       - Separate memory alignment from file/disk offset aligment for O_DIRECT
         (Keith)
      
       - Add new ublk driver, userspace block driver using io_uring for
         communication with the userspace backend (Ming)
      
       - Use try_cmpxchg() to cleanup the code in various spots (Uros)
      
       - Finally remove bdevname() (Christoph)
      
       - Clean up the zoned device handling (Christoph)
      
       - Clean up independent access range support (Christoph)
      
       - Clean up and improve block sysfs handling (Christoph)
      
       - Clean up and improve teardown of block devices.
      
         This turns the usual two step process into something that is simpler
         to implement and handle in block drivers (Christoph)
      
       - Clean up chunk size handling (Christoph)
      
       - Misc cleanups and fixes (Bart, Bo, Dan, GuoYong, Jason, Keith, Liu,
         Ming, Sebastian, Yang, Ying)
      
      * tag 'for-5.20/block-2022-07-29' of git://git.kernel.dk/linux-block: (178 commits)
        ublk_drv: fix double shift bug
        ublk_drv: make sure that correct flags(features) returned to userspace
        ublk_drv: fix error handling of ublk_add_dev
        ublk_drv: fix lockdep warning
        block: remove __blk_get_queue
        block: call blk_mq_exit_queue from disk_release for never added disks
        blk-mq: fix error handling in __blk_mq_alloc_disk
        ublk: defer disk allocation
        ublk: rewrite ublk_ctrl_get_queue_affinity to not rely on hctx->cpumask
        ublk: fold __ublk_create_dev into ublk_ctrl_add_dev
        ublk: cleanup ublk_ctrl_uring_cmd
        ublk: simplify ublk_ch_open and ublk_ch_release
        ublk: remove the empty open and release block device operations
        ublk: remove UBLK_IO_F_PREFLUSH
        ublk: add a MAINTAINERS entry
        block: don't allow the same type rq_qos add more than once
        mmc: fix disk/queue leak in case of adding disk failure
        ublk_drv: fix an IS_ERR() vs NULL check
        ublk: remove UBLK_IO_F_INTEGRITY
        ublk_drv: remove unneeded semicolon
        ...
      c013d0af
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/io_uring-zerocopy-send-2022-07-29' of git://git.kernel.dk/linux-block · 42df1cbf
      Linus Torvalds authored
      Pull io_uring zerocopy support from Jens Axboe:
       "This adds support for efficient support for zerocopy sends through
        io_uring. Both ipv4 and ipv6 is supported, as well as both TCP and
        UDP.
      
        The core network changes to support this is in a stable branch from
        Jakub that both io_uring and net-next has pulled in, and the io_uring
        changes are layered on top of that.
      
        All of the work has been done by Pavel"
      
      * tag 'for-5.20/io_uring-zerocopy-send-2022-07-29' of git://git.kernel.dk/linux-block: (34 commits)
        io_uring: notification completion optimisation
        io_uring: export req alloc from core
        io_uring/net: use unsigned for flags
        io_uring/net: make page accounting more consistent
        io_uring/net: checks errors of zc mem accounting
        io_uring/net: improve io_get_notif_slot types
        selftests/io_uring: test zerocopy send
        io_uring: enable managed frags with register buffers
        io_uring: add zc notification flush requests
        io_uring: rename IORING_OP_FILES_UPDATE
        io_uring: flush notifiers after sendzc
        io_uring: sendzc with fixed buffers
        io_uring: allow to pass addr into sendzc
        io_uring: account locked pages for non-fixed zc
        io_uring: wire send zc request type
        io_uring: add notification slot registration
        io_uring: add rsrc referencing for notifiers
        io_uring: complete notifiers in tw
        io_uring: cache struct io_notif
        io_uring: add zc notification infrastructure
        ...
      42df1cbf
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/io_uring-buffered-writes-2022-07-29' of git://git.kernel.dk/linux-block · 98e24746
      Linus Torvalds authored
      Pull io_uring buffered writes support from Jens Axboe:
       "This contains support for buffered writes, specifically for XFS. btrfs
        is in progress, will be coming in the next release.
      
        io_uring does support buffered writes on any file type, but since the
        buffered write path just always -EAGAIN (or -EOPNOTSUPP) any attempt
        to do so if IOCB_NOWAIT is set, any buffered write will effectively be
        handled by io-wq offload. This isn't very efficient, and we even have
        specific code in io-wq to serialize buffered writes to the same inode
        to avoid further inefficiencies with thread offload.
      
        This is particularly sad since most buffered writes don't block, they
        simply copy data to a page and dirty it. With this pull request, we
        can handle buffered writes a lot more effiently.
      
        If balance_dirty_pages() needs to block, we back off on writes as
        indicated.
      
        This improves buffered write support by 2-3x.
      
        Jan Kara helped with the mm bits for this, and Stefan handled the
        fs/iomap/xfs/io_uring parts of it"
      
      * tag 'for-5.20/io_uring-buffered-writes-2022-07-29' of git://git.kernel.dk/linux-block:
        mm: honor FGP_NOWAIT for page cache page allocation
        xfs: Add async buffered write support
        xfs: Specify lockmode when calling xfs_ilock_for_iomap()
        io_uring: Add tracepoint for short writes
        io_uring: fix issue with io_write() not always undoing sb_start_write()
        io_uring: Add support for async buffered writes
        fs: Add async write file modification handling.
        fs: Split off inode_needs_update_time and __file_update_time
        fs: add __remove_file_privs() with flags parameter
        fs: add a FMODE_BUF_WASYNC flags for f_mode
        iomap: Return -EAGAIN from iomap_write_iter()
        iomap: Add async buffered write support
        iomap: Add flags parameter to iomap_page_create()
        mm: Add balance_dirty_pages_ratelimited_flags() function
        mm: Move updates of dirty_exceeded into one place
        mm: Move starting of background writeback into the main balancing loop
      98e24746
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/io_uring-2022-07-29' of git://git.kernel.dk/linux-block · b349b118
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - As per (valid) complaint in the last merge window, fs/io_uring.c has
         grown quite large these days. io_uring isn't really tied to fs
         either, as it supports a wide variety of functionality outside of
         that.
      
         Move the code to io_uring/ and split it into files that either
         implement a specific request type, and split some code into helpers
         as well. The code is organized a lot better like this, and io_uring.c
         is now < 4K LOC (me).
      
       - Deprecate the epoll_ctl opcode. It'll still work, just trigger a
         warning once if used. If we don't get any complaints on this, and I
         don't expect any, then we can fully remove it in a future release
         (me).
      
       - Improve the cancel hash locking (Hao)
      
       - kbuf cleanups (Hao)
      
       - Efficiency improvements to the task_work handling (Dylan, Pavel)
      
       - Provided buffer improvements (Dylan)
      
       - Add support for recv/recvmsg multishot support. This is similar to
         the accept (or poll) support for have for multishot, where a single
         SQE can trigger everytime data is received. For applications that
         expect to do more than a few receives on an instantiated socket, this
         greatly improves efficiency (Dylan).
      
       - Efficiency improvements for poll handling (Pavel)
      
       - Poll cancelation improvements (Pavel)
      
       - Allow specifiying a range for direct descriptor allocations (Pavel)
      
       - Cleanup the cqe32 handling (Pavel)
      
       - Move io_uring types to greatly cleanup the tracing (Pavel)
      
       - Tons of great code cleanups and improvements (Pavel)
      
       - Add a way to do sync cancelations rather than through the sqe -> cqe
         interface, as that's a lot easier to use for some use cases (me).
      
       - Add support to IORING_OP_MSG_RING for sending direct descriptors to a
         different ring. This avoids the usually problematic SCM case, as we
         disallow those. (me)
      
       - Make the per-command alloc cache we use for apoll generic, place
         limits on it, and use it for netmsg as well (me).
      
       - Various cleanups (me, Michal, Gustavo, Uros)
      
      * tag 'for-5.20/io_uring-2022-07-29' of git://git.kernel.dk/linux-block: (172 commits)
        io_uring: ensure REQ_F_ISREG is set async offload
        net: fix compat pointer in get_compat_msghdr()
        io_uring: Don't require reinitable percpu_ref
        io_uring: fix types in io_recvmsg_multishot_overflow
        io_uring: Use atomic_long_try_cmpxchg in __io_account_mem
        io_uring: support multishot in recvmsg
        net: copy from user before calling __get_compat_msghdr
        net: copy from user before calling __copy_msghdr
        io_uring: support 0 length iov in buffer select in compat
        io_uring: fix multishot ending when not polled
        io_uring: add netmsg cache
        io_uring: impose max limit on apoll cache
        io_uring: add abstraction around apoll cache
        io_uring: move apoll cache to poll.c
        io_uring: consolidate hash_locked io-wq handling
        io_uring: clear REQ_F_HASH_LOCKED on hash removal
        io_uring: don't race double poll setting REQ_F_ASYNC_DATA
        io_uring: don't miss setting REQ_F_DOUBLE_POLL
        io_uring: disable multishot recvmsg
        io_uring: only trace one of complete or overflow
        ...
      b349b118
    • Linus Torvalds's avatar
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · efb28830
      Linus Torvalds authored
      Pull turbostat updates from Len Brown:
       "Only updating the turbostat tool here, no kernel changes"
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: version 2022.07.28
        tools/power turbostat: do not decode ACC for ICX and SPR
        tools/power turbostat: fix SPR PC6 limits
        tools/power turbostat: cleanup 'automatic_cstate_conversion_probe()'
        tools/power turbostat: separate SPR from ICX
        tools/power turbosstat: fix comment
        tools/power turbostat: Support RAPTORLAKE P
        tools/power turbostat: add support for ALDERLAKE_N
        tools/power turbostat: dump secondary Turbo-Ratio-Limit
        tools/power turbostat: simplify dump_turbo_ratio_limits()
        tools/power turbostat: dump CPUID.7.EDX.Hybrid
        tools/power turbostat: update turbostat.8
        tools/power turbostat: Show uncore frequency
        tools/power turbostat: Fix file pointer leak
        tools/power turbostat: replace strncmp with single character compare
        tools/power turbostat: print the kernel boot commandline
        tools/power turbostat: Introduce support for RaptorLake
      efb28830