1. 20 Feb, 2023 11 commits
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux · 6639c3ce
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Fix the longstanding implementation limitation that fsverity was only
        supported when the Merkle tree block size, filesystem block size, and
        PAGE_SIZE were all equal.
      
        Specifically, add support for Merkle tree block sizes less than
        PAGE_SIZE, and make ext4 support fsverity on filesystems where the
        filesystem block size is less than PAGE_SIZE.
      
        Effectively, this means that fsverity can now be used on systems with
        non-4K pages, at least on ext4. These changes have been tested using
        the verity group of xfstests, newly updated to cover the new code
        paths.
      
        Also update fs/verity/ to support verifying data from large folios.
      
        There's also a similar patch for fs/crypto/, to support decrypting
        data from large folios, which I'm including in here to avoid a merge
        conflict between the fscrypt and fsverity branches"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
        fscrypt: support decrypting data from large folios
        fsverity: support verifying data from large folios
        fsverity.rst: update git repo URL for fsverity-utils
        ext4: allow verity with fs block size < PAGE_SIZE
        fs/buffer.c: support fsverity in block_read_full_folio()
        f2fs: simplify f2fs_readpage_limit()
        ext4: simplify ext4_readpage_limit()
        fsverity: support enabling with tree block size < PAGE_SIZE
        fsverity: support verification with tree block size < PAGE_SIZE
        fsverity: replace fsverity_hash_page() with fsverity_hash_block()
        fsverity: use EFBIG for file too large to enable verity
        fsverity: store log2(digest_size) precomputed
        fsverity: simplify Merkle tree readahead size calculation
        fsverity: use unsigned long for level_start
        fsverity: remove debug messages and CONFIG_FS_VERITY_DEBUG
        fsverity: pass pos and size to ->write_merkle_tree_block
        fsverity: optimize fsverity_cleanup_inode() on non-verity files
        fsverity: optimize fsverity_prepare_setattr() on non-verity files
        fsverity: optimize fsverity_file_open() on non-verity files
      6639c3ce
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux · f18f9845
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "Simplify the implementation of the test_dummy_encryption mount option
        by adding the 'test dummy key' on-demand"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
        fscrypt: clean up fscrypt_add_test_dummy_key()
        fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super()
        f2fs: stop calling fscrypt_add_test_dummy_key()
        ext4: stop calling fscrypt_add_test_dummy_key()
        fscrypt: add the test dummy encryption key on-demand
      f18f9845
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · dc483c85
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "The most noticeable feature for this cycle is per-CPU kthread
        decompression since Android use cases need low-latency I/O handling in
        order to ensure the app runtime performance, currently unbounded
        workqueue latencies are not quite good for production on many aarch64
        hardwares and thus we need to introduce a deterministic expectation
        for these. Decompression is CPU-intensive and it is sleepable for
        EROFS, so other alternatives like decompression under softirq contexts
        are not considered. More details are in the corresponding commit
        message.
      
        Others are random cleanups around the whole codebase and we will
        continue to clean up further in the next few months.
      
        Due to Lunar New Year holidays, some other new features were not
        completely reviewed and solidified as expected and we may delay them
        into the next version.
      
        Summary:
      
         - Add per-cpu kthreads for low-latency decompression for Android use
           cases
      
         - Get rid of tagged pointer helpers since they are rarely used now
      
         - Several code cleanups to reduce codebase
      
         - Documentation and MAINTAINERS updates"
      
      * tag 'erofs-for-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs: (21 commits)
        erofs: fix an error code in z_erofs_init_zip_subsystem()
        erofs: unify anonymous inodes for blob
        erofs: relinquish volume with mutex held
        erofs: maintain cookies of share domain in self-contained list
        erofs: remove unused device mapping in meta routine
        MAINTAINERS: erofs: Add Documentation/ABI/testing/sysfs-fs-erofs
        Documentation/ABI: sysfs-fs-erofs: update supported features
        erofs: remove unused EROFS_GET_BLOCKS_RAW flag
        erofs: update print symbols for various flags in trace
        erofs: make kobj_type structures constant
        erofs: add per-cpu threads for decompression as an option
        erofs: tidy up internal.h
        erofs: get rid of z_erofs_do_map_blocks() forward declaration
        erofs: move zdata.h into zdata.c
        erofs: remove tagged pointer helpers
        erofs: avoid tagged pointers to mark sync decompression
        erofs: get rid of erofs_inode_datablocks()
        erofs: simplify iloc()
        erofs: get rid of debug_one_dentry()
        erofs: remove linux/buffer_head.h dependency
        ...
      dc483c85
    • Linus Torvalds's avatar
      Merge tag 'fs.acl.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · 91bc559d
      Linus Torvalds authored
      Pull vfs acl update from Christian Brauner:
       "This contains a single update to the internal get acl method and
        replaces an open-coded cmpxchg() comparison with with try_cmpxchg().
      
        It's clearer and also beneficial on some architectures"
      
      * tag 'fs.acl.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping:
        posix_acl: Use try_cmpxchg in get_acl
      91bc559d
    • Linus Torvalds's avatar
      Merge tag 'fs.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · ea5aac6f
      Linus Torvalds authored
      Pull vfs hardening update from Christian Brauner:
       "Jan pointed out that during shutdown both filp_close() and super block
        destruction will use basic printk logging when bugs are detected. This
        causes issues in a few scenarios:
      
         - Tools like syzkaller cannot figure out that the logged message
           indicates a bug.
      
         - Users that explicitly opt in to have the kernel bug on data
           corruption by selecting CONFIG_BUG_ON_DATA_CORRUPTION should see
           the kernel crash when they did actually select that option.
      
         - When there are busy inodes after the superblock is shut down later
           access to such a busy inodes walks through freed memory. It would
           be better to cleanly crash instead.
      
        All of this can be addressed by using the already existing
        CHECK_DATA_CORRUPTION() macro in these places when kernel bugs are
        detected. Its logging improvement is useful for all users.
      
        Otherwise this only has a meaningful behavioral effect when users do
        select CONFIG_BUG_ON_DATA_CORRUPTION which means this is backward
        compatible for regular users"
      
      * tag 'fs.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping:
        fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected
      ea5aac6f
    • Linus Torvalds's avatar
      Merge tag 'fs.idmapped.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · 05e6295f
      Linus Torvalds authored
      Pull vfs idmapping updates from Christian Brauner:
      
       - Last cycle we introduced the dedicated struct mnt_idmap type for
         mount idmapping and the required infrastucture in 256c8aed ("fs:
         introduce dedicated idmap type for mounts"). As promised in last
         cycle's pull request message this converts everything to rely on
         struct mnt_idmap.
      
         Currently we still pass around the plain namespace that was attached
         to a mount. This is in general pretty convenient but it makes it easy
         to conflate namespaces that are relevant on the filesystem with
         namespaces that are relevant on the mount level. Especially for
         non-vfs developers without detailed knowledge in this area this was a
         potential source for bugs.
      
         This finishes the conversion. Instead of passing the plain namespace
         around this updates all places that currently take a pointer to a
         mnt_userns with a pointer to struct mnt_idmap.
      
         Now that the conversion is done all helpers down to the really
         low-level helpers only accept a struct mnt_idmap argument instead of
         two namespace arguments.
      
         Conflating mount and other idmappings will now cause the compiler to
         complain loudly thus eliminating the possibility of any bugs. This
         makes it impossible for filesystem developers to mix up mount and
         filesystem idmappings as they are two distinct types and require
         distinct helpers that cannot be used interchangeably.
      
         Everything associated with struct mnt_idmap is moved into a single
         separate file. With that change no code can poke around in struct
         mnt_idmap. It can only be interacted with through dedicated helpers.
         That means all filesystems are and all of the vfs is completely
         oblivious to the actual implementation of idmappings.
      
         We are now also able to extend struct mnt_idmap as we see fit. For
         example, we can decouple it completely from namespaces for users that
         don't require or don't want to use them at all. We can also extend
         the concept of idmappings so we can cover filesystem specific
         requirements.
      
         In combination with the vfs{g,u}id_t work we finished in v6.2 this
         makes this feature substantially more robust and thus difficult to
         implement wrong by a given filesystem and also protects the vfs.
      
       - Enable idmapped mounts for tmpfs and fulfill a longstanding request.
      
         A long-standing request from users had been to make it possible to
         create idmapped mounts for tmpfs. For example, to share the host's
         tmpfs mount between multiple sandboxes. This is a prerequisite for
         some advanced Kubernetes cases. Systemd also has a range of use-cases
         to increase service isolation. And there are more users of this.
      
         However, with all of the other work going on this was way down on the
         priority list but luckily someone other than ourselves picked this
         up.
      
         As usual the patch is tiny as all the infrastructure work had been
         done multiple kernel releases ago. In addition to all the tests that
         we already have I requested that Rodrigo add a dedicated tmpfs
         testsuite for idmapped mounts to xfstests. It is to be included into
         xfstests during the v6.3 development cycle. This should add a slew of
         additional tests.
      
      * tag 'fs.idmapped.v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping: (26 commits)
        shmem: support idmapped mounts for tmpfs
        fs: move mnt_idmap
        fs: port vfs{g,u}id helpers to mnt_idmap
        fs: port fs{g,u}id helpers to mnt_idmap
        fs: port i_{g,u}id_into_vfs{g,u}id() to mnt_idmap
        fs: port i_{g,u}id_{needs_}update() to mnt_idmap
        quota: port to mnt_idmap
        fs: port privilege checking helpers to mnt_idmap
        fs: port inode_owner_or_capable() to mnt_idmap
        fs: port inode_init_owner() to mnt_idmap
        fs: port acl to mnt_idmap
        fs: port xattr to mnt_idmap
        fs: port ->permission() to pass mnt_idmap
        fs: port ->fileattr_set() to pass mnt_idmap
        fs: port ->set_acl() to pass mnt_idmap
        fs: port ->get_acl() to pass mnt_idmap
        fs: port ->tmpfile() to pass mnt_idmap
        fs: port ->rename() to pass mnt_idmap
        fs: port ->mknod() to pass mnt_idmap
        fs: port ->mkdir() to pass mnt_idmap
        ...
      05e6295f
    • Linus Torvalds's avatar
      Merge tag 'iversion-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · de630176
      Linus Torvalds authored
      Pull i_version updates from Jeff Layton:
       "This overhauls how we handle i_version queries from nfsd.
      
        Instead of having special routines and grabbing the i_version field
        directly out of the inode in some cases, we've moved most of the
        handling into the various filesystems' getattr operations. As a bonus,
        this makes ceph's change attribute usable by knfsd as well.
      
        This should pave the way for future work to make this value queryable
        by userland, and to make it more resilient against rolling back on a
        crash"
      
      * tag 'iversion-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        nfsd: remove fetch_iversion export operation
        nfsd: use the getattr operation to fetch i_version
        nfsd: move nfsd4_change_attribute to nfsfh.c
        ceph: report the inode version in getattr if requested
        nfs: report the inode version in getattr if requested
        vfs: plumb i_version handling into struct kstat
        fs: clarify when the i_version counter must be updated
        fs: uninline inode_query_iversion
      de630176
    • Linus Torvalds's avatar
      Merge tag 'locks-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 575a7e0f
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "The main change here is that I've broken out most of the file locking
        definitions into a new header file. I also went ahead and completed
        the removal of locks_inode function"
      
      * tag 'locks-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        fs: remove locks_inode
        filelock: move file locking definitions to separate header file
      575a7e0f
    • Linus Torvalds's avatar
      Merge tag 'tpm-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · 219ac97a
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "In additon to bug fixes, these are noteworthy changes:
      
         - In TPM I2C drivers, migrate from probe() to probe_new() (a new
           driver model in I2C).
      
         - TPM CRB: Pluton support
      
         - Add duplicate hash detection to the blacklist keyring in order to
           give more meaningful klog output than e.g. [1]"
      
      Link: https://askubuntu.com/questions/1436856/ubuntu-22-10-blacklist-problem-blacklisting-hash-13-message-on-boot [1]
      
      * tag 'tpm-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: add vendor flag to command code validation
        tpm: Add reserved memory event log
        tpm: Use managed allocation for bios event log
        tpm: tis_i2c: Convert to i2c's .probe_new()
        tpm: tpm_i2c_nuvoton: Convert to i2c's .probe_new()
        tpm: tpm_i2c_infineon: Convert to i2c's .probe_new()
        tpm: tpm_i2c_atmel: Convert to i2c's .probe_new()
        tpm: st33zp24: Convert to i2c's .probe_new()
        KEYS: asymmetric: Fix ECDSA use via keyctl uapi
        certs: don't try to update blacklist keys
        KEYS: Add new function key_create()
        certs: make blacklisted hash available in klog
        tpm_crb: Add support for CRB devices based on Pluton
        crypto: certs: fix FIPS selftest dependency
      219ac97a
    • Linus Torvalds's avatar
      Merge tag 'rust-6.3' of https://github.com/Rust-for-Linux/linux · 69adb0bc
      Linus Torvalds authored
      Pull Rust updates from Miguel Ojeda:
       "More core additions, getting closer to a point where the first Rust
        modules can be upstreamed. The major ones being:
      
         - Sync: new types 'Arc', 'ArcBorrow' and 'UniqueArc'.
      
         - Types: new trait 'ForeignOwnable' and new type 'ScopeGuard'.
      
        There is also a substantial removal in terms of lines:
      
         - 'alloc' crate: remove the 'borrow' module (type 'Cow' and trait
           'ToOwned')"
      
      * tag 'rust-6.3' of https://github.com/Rust-for-Linux/linux:
        rust: delete rust-project.json when running make clean
        rust: MAINTAINERS: Add the zulip link
        rust: types: implement `ForeignOwnable` for `Arc<T>`
        rust: types: implement `ForeignOwnable` for the unit type
        rust: types: implement `ForeignOwnable` for `Box<T>`
        rust: types: introduce `ForeignOwnable`
        rust: types: introduce `ScopeGuard`
        rust: prelude: prevent doc inline of external imports
        rust: sync: add support for dispatching on Arc and ArcBorrow.
        rust: sync: introduce `UniqueArc`
        rust: sync: allow type of `self` to be `ArcBorrow<T>`
        rust: sync: introduce `ArcBorrow`
        rust: sync: allow coercion from `Arc<T>` to `Arc<U>`
        rust: sync: allow type of `self` to be `Arc<T>` or variants
        rust: sync: add `Arc` for ref-counted allocations
        rust: compiler_builtins: make stubs non-global
        rust: alloc: remove the `borrow` module (`ToOwned`, `Cow`)
      69adb0bc
    • Linus Torvalds's avatar
      Merge tag 'remove-get_kernel_pages-for-6.3' of... · d644c670
      Linus Torvalds authored
      Merge tag 'remove-get_kernel_pages-for-6.3' of https://git.linaro.org/people/jens.wiklander/linux-tee
      
      Pull TEE update from Jens Wiklander:
       "Remove get_kernel_pages()
      
        Vmalloc page support is removed from shm_get_kernel_pages() and the
        get_kernel_pages() call is replaced by calls to get_page(). With no
        remaining callers of get_kernel_pages() the function is removed"
      
      [ This looks like it's just some random 'tee' cleanup, but the bigger
        picture impetus for this is really to to to remove historical
        confusion with mixed use of kernel virtual addresses and 'struct page'
        pointers.
      
        Kernel virtual pointers in the vmalloc space is then particularly
        confusing - both for looking up a page pointer (when trying to then
        unify a "virtual address or page" interface) and _particularly_ when
        mixed with HIGHMEM support and the kmap*() family of remapping.
      
        This is particularly true with HIGHMEM getting much less test coverage
        with 32-bit architectures being increasingly legacy targets.
      
        So we actively wanted to remove get_kernel_pages() to make sure nobody
        else used it too, and thus the 'tee' part is "finally remove last
        user".
      
        See also commit 6647e76a ("v4l2: don't fall back to follow_pfn()
        if pin_user_pages_fast() fails") for a totally different version of a
        conceptually similar "let's stop this confusion of different ways of
        referring to memory".   - Linus ]
      
      * tag 'remove-get_kernel_pages-for-6.3' of https://git.linaro.org/people/jens.wiklander/linux-tee:
        mm: Remove get_kernel_pages()
        tee: Remove call to get_kernel_pages()
        tee: Remove vmalloc page support
        highmem: Enhance is_kmap_addr() to check kmap_local_page() mappings
      d644c670
  2. 19 Feb, 2023 4 commits
  3. 18 Feb, 2023 4 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 5e725d11
      Linus Torvalds authored
      Pull kvm/x86 fixes from Paolo Bonzini:
      
       - zero all padding for KVM_GET_DEBUGREGS
      
       - fix rST warning
      
       - disable vPMU support on hybrid CPUs
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: initialize all of the kvm_debugregs structure before sending it to userspace
        perf/x86: Refuse to export capabilities for hybrid PMUs
        KVM: x86/pmu: Disable vPMU support on hybrid CPUs (host PMUs)
        Documentation/hw-vuln: Fix rST warning
      5e725d11
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0c2822b1
      Linus Torvalds authored
      Pull arm64 regression fix from Will Deacon:
       "Apologies for the _extremely_ late pull request here, but we had a
        'perf' (i.e. CPU PMU) regression on the Apple M1 reported on Wednesday
        [1] which was introduced by bd275681 ("perf: Rewrite core context
        handling") during the merge window.
      
        Mark and I looked into this and noticed an additional problem caused
        by the same patch, where the 'CHAIN' event (used to combine two
        adjacent 32-bit counters into a single 64-bit counter) was not being
        filtered correctly. Mark posted a series on Thursday [2] which
        addresses both of these regressions and I queued it the same day.
      
        The changes are small, self-contained and have been confirmed to fix
        the original regression.
      
        Summary:
      
         - Fix 'perf' regression for non-standard CPU PMU hardware (i.e. Apple
           M1)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: perf: reject CHAIN events at creation time
        arm_pmu: fix event CPU filtering
      0c2822b1
    • Linus Torvalds's avatar
      Merge tag 'block-6.2-2023-02-17' of git://git.kernel.dk/linux · 0e9fd589
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "I guess this is what can happen when you prep things early for going
        away, something else comes in last minute. This one fixes another
        regression in 6.2 for NVMe, from this release, and hence we should
        probably get it submitted for 6.2.
      
        Still waiting for the original reporter (see bugzilla linked in the
        commit) to test this, but Keith managed to setup and recreate the
        issue and tested the patch that way"
      
      * tag 'block-6.2-2023-02-17' of git://git.kernel.dk/linux:
        nvme-pci: refresh visible attrs for cmb attributes
      0e9fd589
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of... · 38f8ccde
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "Six hotfixes. Five are cc:stable: four for MM, one for nilfs2.
      
        Also a MAINTAINERS update"
      
      * tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        nilfs2: fix underflow in second superblock position calculations
        hugetlb: check for undefined shift on 32 bit architectures
        mm/migrate: fix wrongly apply write bit after mkdirty on sparc64
        MAINTAINERS: update FPU EMULATOR web page
        mm/MADV_COLLAPSE: set EAGAIN on unexpected page refcount
        mm/filemap: fix page end in filemap_get_read_batch
      38f8ccde
  4. 17 Feb, 2023 20 commits
  5. 16 Feb, 2023 1 commit