1. 20 Feb, 2023 16 commits
    • Linus Torvalds's avatar
      Merge tag 'for-6.3/io_uring-2023-02-16' of git://git.kernel.dk/linux · cce5fe5e
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Cleanup series making the async prep and handling of
         REQ_F_FORCE_ASYNC easier to follow and verify (Dylan)
      
       - Enable specifying specific flags for OP_MSG_RING (Breno)
      
       - Enable use of KASAN with the internal request cache (Breno)
      
       - Split the opcode definition structs into a hot and cold part (Breno)
      
       - OP_MSG_RING fixes (Pavel, me)
      
       - Fix an issue with IOPOLL cancelation and PREEMPT_NONE (me)
      
       - Handle TIF_NOTIFY_RESUME for the io-wq threads that never return to
         userspace (me)
      
       - Add support for using io_uring_register() with a registered ring fd
         (Josh)
      
       - Improve handling of poll on the ring fd (Pavel)
      
       - Series improving the task_work handling (Pavel)
      
       - Misc cleanups, fixes, improvements (Dmitrii, Quanfa, Richard, Pavel,
         me)
      
      * tag 'for-6.3/io_uring-2023-02-16' of git://git.kernel.dk/linux: (51 commits)
        io_uring: Support calling io_uring_register with a registered ring fd
        io_uring,audit: don't log IORING_OP_MADVISE
        io_uring: mark task TASK_RUNNING before handling resume/task work
        io_uring: always go async for unsupported open flags
        io_uring: always go async for unsupported fadvise flags
        io_uring: for requests that require async, force it
        io_uring: if a linked request has REQ_F_FORCE_ASYNC then run it async
        io_uring: add reschedule point to handle_tw_list()
        io_uring: add a conditional reschedule to the IOPOLL cancelation loop
        io_uring: return normal tw run linking optimisation
        io_uring: refactor tctx_task_work
        io_uring: refactor io_put_task helpers
        io_uring: refactor req allocation
        io_uring: improve io_get_sqe
        io_uring: kill outdated comment about overflow flush
        io_uring: use user visible tail in io_uring_poll()
        io_uring: pass in io_issue_def to io_assign_file()
        io_uring: Enable KASAN for request cache
        io_uring: handle TIF_NOTIFY_RESUME when checking for task_work
        io_uring/msg-ring: ensure flags passing works for task_work completions
        ...
      cce5fe5e
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · eca3a04f
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This fixes some races in the lowcomms startup and shutdown code that
        were found by targeted stress testing that quickly and repeatedly
        joins and leaves lockspaces"
      
      * tag 'dlm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        fs: dlm: remove unnecessary waker_up() calls
        fs: dlm: move state change into else branch
        fs: dlm: remove newline in log_print
        fs: dlm: reduce the shutdown timeout to 5 secs
        fs: dlm: make dlm sequence id more robust
        fs: dlm: wait until all midcomms nodes detect version
        fs: dlm: ignore unexpected non dlm opts msgs
        fs: dlm: bring back previous shutdown handling
        fs: dlm: send FIN ack back in right cases
        fs: dlm: move sending fin message into state change handling
        fs: dlm: don't set stop rx flag after node reset
        fs: dlm: fix race setting stop tx flag
        fs: dlm: be sure to call dlm_send_queue_flush()
        fs: dlm: fix use after free in midcomms commit
        fs: dlm: start midcomms before scand
        fs/dlm: Remove "select SRCU"
        fs: dlm: fix return value check in dlm_memory_init()
      eca3a04f
    • Linus Torvalds's avatar
      Merge tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 885ce487
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "The usual mix of performance improvements and new features.
      
        The core change is reworking how checksums are processed, with
        followup cleanups and simplifications. There are two minor changes in
        block layer and iomap code.
      
        Features:
      
         - block group allocation class heuristics:
            - pack files by size (up to 128k, up to 8M, more) to avoid
              fragmentation in block groups, assuming that file size and life
              time is correlated, in particular this may help during balance
            - with tracepoints and extensible in the future
      
        Performance:
      
         - send: cache directory utimes and only emit the command when
           necessary
            - speedup up to 10x
            - smaller final stream produced (no redundant utimes commands
              issued)
            - compatibility not affected
      
         - fiemap: skip backref checks for shared leaves
            - speedup 3x on sample filesystem with all leaves shared (e.g. on
              snapshots)
      
         - micro optimized b-tree key lookup, speedup in metadata operations
           (sample benchmark: fs_mark +10% of files/sec)
      
        Core changes:
      
         - change where checksumming is done in the io path:
            - checksum and read repair does verification at lower layer
            - cascaded cleanups and simplifications
      
         - raid56 refactoring and cleanups
      
        Fixes:
      
         - sysfs: make sure that a run-time change of a feature is correctly
           tracked by the feature files
      
         - scrub: better reporting of tree block errors
      
        Other:
      
         - locally enable -Wmaybe-uninitialized after fixing all warnings
      
         - misc cleanups, spelling fixes
      
        Other code:
      
         - block: export bio_split_rw
      
         - iomap: remove IOMAP_F_ZONE_APPEND"
      
      * tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (109 commits)
        btrfs: make kobj_type structures constant
        btrfs: remove the bdev argument to btrfs_rmap_block
        btrfs: don't rely on unchanging ->bi_bdev for zone append remaps
        btrfs: never return true for reads in btrfs_use_zone_append
        btrfs: pass a btrfs_bio to btrfs_use_append
        btrfs: set bbio->file_offset in alloc_new_bio
        btrfs: use file_offset to limit bios size in calc_bio_boundaries
        btrfs: do unsigned integer division in the extent buffer binary search loop
        btrfs: eliminate extra call when doing binary search on extent buffer
        btrfs: raid56: handle endio in scrub_rbio
        btrfs: raid56: handle endio in recover_rbio
        btrfs: raid56: handle endio in rmw_rbio
        btrfs: raid56: submit the read bios from scrub_assemble_read_bios
        btrfs: raid56: fold rmw_read_wait_recover into rmw_read_bios
        btrfs: raid56: fold recover_assemble_read_bios into recover_rbio
        btrfs: raid56: add a bio_list_put helper
        btrfs: raid56: wait for I/O completion in submit_read_bios
        btrfs: raid56: simplify code flow in rmw_rbio
        btrfs: raid56: simplify error handling and code flow in raid56_parity_write
        btrfs: replace btrfs_wait_tree_block_writeback by wait_on_extent_buffer_writeback
        ...
      885ce487
    • Linus Torvalds's avatar
      Merge tag 'fixes_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 274978f1
      Linus Torvalds authored
      Pull UDF and ext2 fixes from Jan Kara:
      
       - Rewrite of udf directory iteration code to address multiple syzbot
         reports
      
       - Fixes to udf extent handling and block mapping code to address
         several syzbot reports and filesystem corruption issues uncovered by
         fsx & fsstress
      
       - Convert udf to kmap_local()
      
       - Add sanity checks when loading udf bitmaps
      
       - Drop old VARCONV support which I've never seen used and which was
         broken for quite some years without anybody noticing
      
       - Finish conversion of ext2 to kmap_local()
      
       - One fix to mpage_writepages() on which other udf fixes depend
      
      * tag 'fixes_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (78 commits)
        udf: Avoid directory type conversion failure due to ENOMEM
        udf: Use unsigned variables for size calculations
        udf: remove reporting loc in debug output
        udf: Check consistency of Space Bitmap Descriptor
        udf: Fix file counting in LVID
        udf: Limit file size to 4TB
        udf: Don't return bh from udf_expand_dir_adinicb()
        udf: Convert udf_expand_file_adinicb() to avoid kmap_atomic()
        udf: Convert udf_adinicb_writepage() to memcpy_to_page()
        udf: Switch udf_adinicb_readpage() to kmap_local_page()
        udf: Move udf_adinicb_readpage() to inode.c
        udf: Mark aops implementation static
        udf: Switch to single address_space_operations
        udf: Add handling of in-ICB files to udf_bmap()
        udf: Convert all file types to use udf_write_end()
        udf: Convert in-ICB files to use udf_write_begin()
        udf: Convert in-ICB files to use udf_direct_IO()
        udf: Convert in-ICB files to use udf_writepages()
        udf: Unify .read_folio for normal and in-ICB files
        udf: Fix off-by-one error when discarding preallocation
        ...
      274978f1
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · cd776a43
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "Support for auditing decisions regarding fanotify permission events"
      
      * tag 'fsnotify_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fanotify,audit: Allow audit to use the full permission event response
        fanotify: define struct members to hold response decision context
        fanotify: Ensure consistent variable type for response
      cd776a43
    • 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 16 commits