1. 04 Oct, 2022 22 commits
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7db99f01
      Linus Torvalds authored
      Pull x86 cpu updates from Borislav Petkov:
      
       - Print the CPU number at segfault time.
      
         The number printed is not always accurate (preemption is enabled at
         that time) but the print string contains "likely" and after a lot of
         back'n'forth on this, this was the consensus that was reached. See
         thread at [1].
      
       - After a *lot* of testing and polishing, finally the clear_user()
         improvements to inline REP; STOSB by default
      
      Link: https://lore.kernel.org/r/5d62c1d0-7425-d5bb-ecb5-1dc3b4d7d245@intel.com [1]
      
      * tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Print likely CPU at segfault time
        x86/clear_user: Make it faster
      7db99f01
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ba94a7a9
      Linus Torvalds authored
      Pull x86 SGX update from Borislav Petkov:
      
       - Improve the documentation of a couple of SGX functions handling
         backing storage
      
      * tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Improve comments for sgx_encl_lookup/alloc_backing()
      ba94a7a9
    • Linus Torvalds's avatar
      Merge tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f8475a67
      Linus Torvalds authored
      Pull x86 RTC cleanups from Borislav Petkov:
      
       - Cleanup x86/rtc.c and delete duplicated functionality in favor of
         using the respective functionality from the RTC library
      
      * tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/rtc: Rename mach_set_rtc_mmss() to mach_set_cmos_time()
        x86/rtc: Rewrite & simplify mach_get_cmos_time() by deleting duplicated functionality
      f8475a67
    • Linus Torvalds's avatar
      Merge tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3339914a
      Linus Torvalds authored
      Pull x86 platform update from Borislav Petkov:
       "A single x86/platform improvement when the kernel is running as an
        ACRN guest:
      
         - Get TSC and CPU frequency from CPUID leaf 0x40000010 when the
           kernel is running as a guest on the ACRN hypervisor"
      
      * tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/acrn: Set up timekeeping
      3339914a
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · bf767625
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Add support for Skylake-S CPUs to ie31200_edac
      
       - Improve error decoding speed of the Intel drivers by avoiding the
         ACPI facilities but doing decoding in the driver itself
      
       - Other misc improvements to the Intel drivers
      
       - The usual cleanups and fixlets all over EDAC land
      
      * tag 'edac_updates_for_v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/i7300: Correct the i7300_exit() function name in comment
        x86/sb_edac: Add row column translation for Broadwell
        EDAC/i10nm: Print an extra register set of retry_rd_err_log
        EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM
        EDAC/skx_common: Add ChipSelect ADXL component
        EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations
        EDAC: Remove obsolete declarations in edac_module.h
        EDAC/i10nm: Add driver decoder for Ice Lake and Tremont CPUs
        EDAC/skx_common: Make output format similar
        EDAC/skx_common: Use driver decoder first
        EDAC/mc: Drop duplicated dimm->nr_pages debug printout
        EDAC/mc: Replace spaces with tabs in memtype flags definition
        EDAC/wq: Remove unneeded flush_workqueue()
        EDAC/ie31200: Add Skylake-S support
      bf767625
    • Borislav Petkov's avatar
      Merge branches 'edac-drivers' and 'edac-misc' into edac-updates-for-v6.1 · c2577956
      Borislav Petkov authored
      Combine all queued EDAC changes for submission into v6.1:
      
      * edac-drivers:
        EDAC/ie31200: Add Skylake-S support
      
      * edac-misc:
        EDAC/i7300: Correct the i7300_exit() function name in comment
        x86/sb_edac: Add row column translation for Broadwell
        EDAC/i10nm: Print an extra register set of retry_rd_err_log
        EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM
        EDAC/skx_common: Add ChipSelect ADXL component
        EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations
        EDAC: Remove obsolete declarations in edac_module.h
        EDAC/i10nm: Add driver decoder for Ice Lake and Tremont CPUs
        EDAC/skx_common: Make output format similar
        EDAC/skx_common: Use driver decoder first
        EDAC/mc: Drop duplicated dimm->nr_pages debug printout
        EDAC/mc: Replace spaces with tabs in memtype flags definition
        EDAC/wq: Remove unneeded flush_workqueue()
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      c2577956
    • Linus Torvalds's avatar
      Merge tag 'statx-dioalign-for-linus' of... · 725737e7
      Linus Torvalds authored
      Merge tag 'statx-dioalign-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux
      
      Pull STATX_DIOALIGN support from Eric Biggers:
       "Make statx() support reporting direct I/O (DIO) alignment information.
      
        This provides a generic interface for userspace programs to determine
        whether a file supports DIO, and if so with what alignment
        restrictions. Specifically, STATX_DIOALIGN works on block devices, and
        on regular files when their containing filesystem has implemented
        support.
      
        An interface like this has been requested for years, since the
        conditions for when DIO is supported in Linux have gotten increasingly
        complex over time. Today, DIO support and alignment requirements can
        be affected by various filesystem features such as multi-device
        support, data journalling, inline data, encryption, verity,
        compression, checkpoint disabling, log-structured mode, etc.
      
        Further complicating things, Linux v6.0 relaxed the traditional rule
        of DIO needing to be aligned to the block device's logical block size;
        now user buffers (but not file offsets) only need to be aligned to the
        DMA alignment.
      
        The approach of uplifting the XFS specific ioctl XFS_IOC_DIOINFO was
        discarded in favor of creating a clean new interface with statx().
      
        For more information, see the individual commits and the man page
        update[1]"
      
      Link: https://lore.kernel.org/r/20220722074229.148925-1-ebiggers@kernel.org [1]
      
      * tag 'statx-dioalign-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux:
        xfs: support STATX_DIOALIGN
        f2fs: support STATX_DIOALIGN
        f2fs: simplify f2fs_force_buffered_io()
        f2fs: move f2fs_force_buffered_io() into file.c
        ext4: support STATX_DIOALIGN
        fscrypt: change fscrypt_dio_supported() to prepare for STATX_DIOALIGN
        vfs: support STATX_DIOALIGN on block devices
        statx: add direct I/O alignment information
      725737e7
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 5779aa2d
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Minor changes to convert uses of kmap() to kmap_local_page()"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: use kmap_local_page() instead of kmap()
        fs-verity: use memcpy_from_page()
      5779aa2d
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 438b2cdd
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "This release contains some implementation changes, but no new
        features:
      
         - Rework the implementation of the fscrypt filesystem-level keyring
           to not be as tightly coupled to the keyrings subsystem. This
           resolves several issues.
      
         - Eliminate most direct uses of struct request_queue from fs/crypto/,
           since struct request_queue is considered to be a block layer
           implementation detail.
      
         - Stop using the PG_error flag to track decryption failures. This is
           a prerequisite for freeing up PG_error for other uses"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: work on block_devices instead of request_queues
        fscrypt: stop holding extra request_queue references
        fscrypt: stop using keyrings subsystem for fscrypt_master_key
        fscrypt: stop using PG_error to track error status
        fscrypt: remove fscrypt_set_test_dummy_encryption()
      438b2cdd
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · f4309528
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - Fix a couple races found with a new torture test
      
       - Improve errors when api functions are used incorrectly
      
       - Improve tracing for lock requests from user space
      
       - Fix use after free in recently added tracing cod.
      
       - Small internal code cleanups
      
      * tag 'dlm-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        fs: dlm: fix possible use after free if tracing
        fs: dlm: const void resource name parameter
        fs: dlm: LSFL_CB_DELAY only for kernel lockspaces
        fs: dlm: remove DLM_LSFL_FS from uapi
        fs: dlm: trace user space callbacks
        fs: dlm: change ls_clear_proc_locks to spinlock
        fs: dlm: remove dlm_del_ast prototype
        fs: dlm: handle rcom in else if branch
        fs: dlm: allow lockspaces have zero lvblen
        fs: dlm: fix invalid derefence of sb_lvbptr
        fs: dlm: handle -EINVAL as log_error()
        fs: dlm: use __func__ for function name
        fs: dlm: handle -EBUSY first in unlock validation
        fs: dlm: handle -EBUSY first in lock arg validation
        fs: dlm: fix race between test_bit() and queue_work()
        fs: dlm: fix race in lowcomms
      f4309528
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · f90497a1
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
       "This release is mostly bug fixes, clean-ups, and optimizations.
      
        One notable set of fixes addresses a subtle buffer overflow issue that
        occurs if a small RPC Call message arrives in an oversized RPC record.
        This is only possible on a framed RPC transport such as TCP.
      
        Because NFSD shares the receive and send buffers in one set of pages,
        an oversized RPC record steals pages from the send buffer that will be
        used to construct the RPC Reply message. NFSD must not assume that a
        full-sized buffer is always available to it; otherwise, it will walk
        off the end of the send buffer while constructing its reply.
      
        In this release, we also introduce the ability for the server to wait
        a moment for clients to return delegations before it responds with
        NFS4ERR_DELAY. This saves a retransmit and a network round- trip when
        a delegation recall is needed. This work will be built upon in future
        releases.
      
        The NFS server adds another shrinker to its collection. Because
        courtesy clients can linger for quite some time, they might be
        freeable when the server host comes under memory pressure. A new
        shrinker has been added that releases courtesy client resources during
        low memory scenarios.
      
        Lastly, of note: the maximum number of operations per NFSv4 COMPOUND
        that NFSD can handle is increased from 16 to 50. There are NFSv4
        client implementations that need more than 16 to successfully perform
        a mount operation that uses a pathname with many components"
      
      * tag 'nfsd-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (53 commits)
        nfsd: extra checks when freeing delegation stateids
        nfsd: make nfsd4_run_cb a bool return function
        nfsd: fix comments about spinlock handling with delegations
        nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
        NFSD: fix use-after-free on source server when doing inter-server copy
        NFSD: Cap rsize_bop result based on send buffer size
        NFSD: Rename the fields in copy_stateid_t
        nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops
        nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
        nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
        nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
        nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
        NFSD: Pack struct nfsd4_compoundres
        NFSD: Remove unused nfsd4_compoundargs::cachetype field
        NFSD: Remove "inline" directives on op_rsize_bop helpers
        NFSD: Clean up nfs4svc_encode_compoundres()
        SUNRPC: Fix typo in xdr_buf_subsegment's kdoc comment
        NFSD: Clean up WRITE arg decoders
        NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
        NFSD: Refactor common code out of dirlist helpers
        ...
      f90497a1
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 3497640a
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "In this cycle, for container use cases, fscache-based shared domain is
        introduced [1] so that data blobs in the same domain will be storage
        deduplicated and it will also be used for page cache sharing later.
      
        Also, a special packed inode is now introduced to record inode
        fragments which keep the tail part of files by Yue Hu [2]. You can
        keep arbitary length or (at will) the whole file as a fragment and
        then fragments can be optionally compressed in the packed inode
        together and even deduplicated for smaller image sizes.
      
        In addition to that, global compressed data deduplication by sharing
        partial-referenced pclusters is also supported in this cycle.
      
        Summary:
      
         - Introduce fscache-based domain to share blobs between images
      
         - Support recording fragments in a special packed inode
      
         - Support partial-referenced pclusters for global compressed data
           deduplication
      
         - Fix an order >= MAX_ORDER warning due to crafted negative i_size
      
         - Several cleanups"
      
      Link: https://lore.kernel.org/r/20220916085940.89392-1-zhujia.zj@bytedance.com [1]
      Link: https://lore.kernel.org/r/cover.1663065968.git.huyue2@coolpad.com [2]
      
      * tag 'erofs-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: clean up erofs_iget()
        erofs: clean up unnecessary code and comments
        erofs: fold in z_erofs_reload_indexes()
        erofs: introduce partial-referenced pclusters
        erofs: support on-disk compressed fragments data
        erofs: support interlaced uncompressed data for compressed files
        erofs: clean up .read_folio() and .readahead() in fscache mode
        erofs: introduce 'domain_id' mount option
        erofs: Support sharing cookies in the same domain
        erofs: introduce a pseudo mnt to manage shared cookies
        erofs: introduce fscache-based domain
        erofs: code clean up for fscache
        erofs: use kill_anon_super() to kill super in fscache mode
        erofs: fix order >= MAX_ORDER warning due to crafted negative i_size
      3497640a
    • Linus Torvalds's avatar
      Merge tag 'fs.vfsuid.fat.v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · 8bea8ff3
      Linus Torvalds authored
      Pull fatfs vfsuid conversion from Christian Brauner:
       "Last cycle we introduced the new vfs{g,u}id_t types that we had agreed
        on. The most important parts of the vfs have been converted but there
        are a few more places we need to switch before we can remove the old
        helpers completely.
      
        This cycle we converted all filesystems that called idmapped mount
        helpers directly. The affected filesystems are f2fs, fat, fuse, ksmbd,
        overlayfs, and xfs. We've sent patches for all of them. Looking at
        -next f2fs, ksmbd, overlayfs, and xfs have all picked up these patches
        and they should land in mainline during the v6.1 merge window.
      
        So all filesystems that have a separate tree should send the vfsuid
        conversion themselves. Onle the fat conversion is going through this
        generic fs trees because there is no fat tree.
      
        In order to change time settings on an inode fat checks that the
        caller either is the owner of the inode or the inode's group is in the
        caller's group list. If fat is on an idmapped mount we compare whether
        the inode mapped into the mount is equivalent to the caller's fsuid.
        If it isn't we compare whether the inode's group mapped into the mount
        is in the caller's group list.
      
        We now use the new vfsuid based helpers for that"
      
      * tag 'fs.vfsuid.fat.v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping:
        fat: port to vfs{g,u}id_t and associated helpers
      8bea8ff3
    • Linus Torvalds's avatar
      Merge tag 'fs.acl.rework.prep.v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping · 223b8452
      Linus Torvalds authored
      Pull vfs acl updates from Christian Brauner:
       "These are general fixes and preparatory changes related to the ongoing
        posix acl rework. The actual rework where we build a type safe posix
        acl api wasn't ready for this merge window but we're hopeful for the
        next merge window.
      
        General fixes:
      
         - Some filesystems like 9p and cifs have to implement custom posix
           acl handlers because they require access to the dentry in order to
           set and get posix acls while the set and get inode operations
           currently don't. But the ntfs3 filesystem has no such requirement
           and thus implemented custom posix acl xattr handlers when it really
           didn't have to. So this pr contains patch that just implements set
           and get inode operations for ntfs3 and switches it to rely on the
           generic posix acl xattr handlers. (We would've appreciated reviews
           from the ntfs3 maintainers but we didn't get any. But hey, if we
           really broke it we'll fix it. But fstests for ntfs3 said it's
           fine.)
      
         - The posix_acl_fix_xattr_common() helper has been adapted so it can
           be used by a few more callers and avoiding open-coding the same
           checks over and over.
      
        Other than the two general fixes this series introduces a new helper
        vfs_set_acl_prepare(). The reason for this helper is so that we can
        mitigate one of the source that change {g,u}id values directly in the
        uapi struct. With the vfs_set_acl_prepare() helper we can move the
        idmapped mount fixup into the generic posix acl set handler.
      
        The advantage of this is that it allows us to remove the
        posix_acl_setxattr_idmapped_mnt() helper which so far we had to call
        in vfs_setxattr() to account for idmapped mounts. While semantically
        correct the problem with this approach was that we had to keep the
        value parameter of the generic vfs_setxattr() call as non-const. This
        is rectified in this series.
      
        Ultimately, we will get rid of all the extreme kludges and type
        unsafety once we have merged the posix api - hopefully during the next
        merge window - built solely around get and set inode operations. Which
        incidentally will also improve handling of posix acls in security and
        especially in integrity modesl. While this will come with temporarily
        having two inode operation for posix acls that is nothing compared to
        the problems we have right now and so well worth it. We'll end up with
        something that we can actually reason about instead of needing to
        write novels to explain what's going on"
      
      * tag 'fs.acl.rework.prep.v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping:
        xattr: always us is_posix_acl_xattr() helper
        acl: fix the comments of posix_acl_xattr_set
        xattr: constify value argument in vfs_setxattr()
        ovl: use vfs_set_acl_prepare()
        acl: move idmapping handling into posix_acl_xattr_set()
        acl: add vfs_set_acl_prepare()
        acl: return EOPNOTSUPP in posix_acl_fix_xattr_common()
        ntfs3: rework xattr handlers and switch to POSIX ACL VFS helpers
      223b8452
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · da380aef
      Linus Torvalds authored
      Pull coredump fix from Al Viro:
       "Brown paper bag bug fix for the coredumping fix late in the 6.0
        release cycle"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        [brown paperbag] fix coredump breakage
      da380aef
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · 26b84401
      Linus Torvalds authored
      Pull LSM updates from Paul Moore:
       "Seven patches for the LSM layer and we've got a mix of trivial and
        significant patches. Highlights below, starting with the smaller bits
        first so they don't get lost in the discussion of the larger items:
      
         - Remove some redundant NULL pointer checks in the common LSM audit
           code.
      
         - Ratelimit the lockdown LSM's access denial messages.
      
           With this change there is a chance that the last visible lockdown
           message on the console is outdated/old, but it does help preserve
           the initial series of lockdown denials that started the denial
           message flood and my gut feeling is that these might be the more
           valuable messages.
      
         - Open userfaultfds as readonly instead of read/write.
      
           While this code obviously lives outside the LSM, it does have a
           noticeable impact on the LSMs with Ondrej explaining the situation
           in the commit description. It is worth noting that this patch
           languished on the VFS list for over a year without any comments
           (objections or otherwise) so I took the liberty of pulling it into
           the LSM tree after giving fair notice. It has been in linux-next
           since the end of August without any noticeable problems.
      
         - Add a LSM hook for user namespace creation, with implementations
           for both the BPF LSM and SELinux.
      
           Even though the changes are fairly small, this is the bulk of the
           diffstat as we are also including BPF LSM selftests for the new
           hook.
      
           It's also the most contentious of the changes in this pull request
           with Eric Biederman NACK'ing the LSM hook multiple times during its
           development and discussion upstream. While I've never taken NACK's
           lightly, I'm sending these patches to you because it is my belief
           that they are of good quality, satisfy a long-standing need of
           users and distros, and are in keeping with the existing nature of
           the LSM layer and the Linux Kernel as a whole.
      
           The patches in implement a LSM hook for user namespace creation
           that allows for a granular approach, configurable at runtime, which
           enables both monitoring and control of user namespaces. The general
           consensus has been that this is far preferable to the other
           solutions that have been adopted downstream including outright
           removal from the kernel, disabling via system wide sysctls, or
           various other out-of-tree mechanisms that users have been forced to
           adopt since we haven't been able to provide them an upstream
           solution for their requests. Eric has been steadfast in his
           objections to this LSM hook, explaining that any restrictions on
           the user namespace could have significant impact on userspace.
           While there is the possibility of impacting userspace, it is
           important to note that this solution only impacts userspace when it
           is requested based on the runtime configuration supplied by the
           distro/admin/user. Frederick (the pathset author), the LSM/security
           community, and myself have tried to work with Eric during
           development of this patchset to find a mutually acceptable
           solution, but Eric's approach and unwillingness to engage in a
           meaningful way have made this impossible. I have CC'd Eric directly
           on this pull request so he has a chance to provide his side of the
           story; there have been no objections outside of Eric's"
      
      * tag 'lsm-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        lockdown: ratelimit denial messages
        userfaultfd: open userfaultfds with O_RDONLY
        selinux: Implement userns_create hook
        selftests/bpf: Add tests verifying bpf lsm userns_create hook
        bpf-lsm: Make bpf_lsm_userns_create() sleepable
        security, lsm: Introduce security_create_user_ns()
        lsm: clean up redundant NULL pointer check
      26b84401
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · e816da29
      Linus Torvalds authored
      Pull SELinux updates from Paul Moore:
       "Six SELinux patches, all are simple and easily understood, but a list
        of the highlights is below:
      
         - Use 'grep -E' instead of 'egrep' in the SELinux policy install
           script.
      
           Fun fact, this seems to be GregKH's *second* dedicated SELinux
           patch since we transitioned to git (ignoring merges, the SPDX
           stuff, and a trivial fs reference removal when lustre was yanked);
           the first was back in 2011 when selinuxfs was placed in
           /sys/fs/selinux. Oh, the memories ...
      
         - Convert the SELinux policy boolean values to use signed integer
           types throughout the SELinux kernel code.
      
           Prior to this we were using a mix of signed and unsigned integers
           which was probably okay in this particular case, but it is
           definitely not a good idea in general.
      
         - Remove a reference to the SELinux runtime disable functionality in
           /etc/selinux/config as we are in the process of deprecating that.
      
           See [1] for more background on this if you missed the previous
           notes on the deprecation.
      
         - Minor cleanups: remove unneeded variables and function parameter
           constification"
      
      Link: https://github.com/SELinuxProject/selinux-kernel/wiki/DEPRECATE-runtime-disable [1]
      
      * tag 'selinux-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: remove runtime disable message in the install_policy.sh script
        selinux: use "grep -E" instead of "egrep"
        selinux: remove the unneeded result variable
        selinux: declare read-only parameters const
        selinux: use int arrays for boolean values
        selinux: remove an unneeded variable in sel_make_class_dir_entries()
      e816da29
    • Linus Torvalds's avatar
      Merge tag 'integrity-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · eafb121e
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "Just two bug fixes"
      
      * tag 'integrity-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        efi: Correct Macmini DMI match in uefi cert quirk
        ima: fix blocking of security.ima xattrs of unsupported algorithms
      eafb121e
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-6.1' of https://github.com/cschaufler/smack-next · 74a0f845
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "Two minor code clean-ups: one removes constants left over from the old
        mount API, while the other gets rid of an unneeded variable.
      
        The other change fixes a flaw in handling IPv6 labeling"
      
      * tag 'Smack-for-6.1' of https://github.com/cschaufler/smack-next:
        smack: cleanup obsolete mount option flags
        smack: lsm: remove the unneeded result variable
        SMACK: Add sk_clone_security LSM hook
      74a0f845
    • Al Viro's avatar
      [brown paperbag] fix coredump breakage · 4f526fef
      Al Viro authored
      Let me count the ways in which I'd screwed up:
      
      * when emitting a page, handling of gaps in coredump should happen
      before fetching the current file position.
      * fix for a problem that occurs on rather uncommon setups (and hadn't
      been observed in the wild) had been sent very late in the cycle.
      * ... with badly insufficient testing, introducing an easily
      reproducible breakage.  Without giving it time to soak in -next.
      Fucked-up-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Reported-by: default avatar"J. R. Okajima" <hooanon05g@gmail.com>
      Tested-by: default avatar"J. R. Okajima" <hooanon05g@gmail.com>
      Fixes: 06bbaa6d "[coredump] don't use __kernel_write() on kmap_local_page()"
      Cc: stable@kernel.org	# v6.0-only
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      4f526fef
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · d0989d01
      Linus Torvalds authored
      Pull kernel hardening updates from Kees Cook:
       "Most of the collected changes here are fixes across the tree for
        various hardening features (details noted below).
      
        The most notable new feature here is the addition of the memcpy()
        overflow warning (under CONFIG_FORTIFY_SOURCE), which is the next step
        on the path to killing the common class of "trivially detectable"
        buffer overflow conditions (i.e. on arrays with sizes known at compile
        time) that have resulted in many exploitable vulnerabilities over the
        years (e.g. BleedingTooth).
      
        This feature is expected to still have some undiscovered false
        positives. It's been in -next for a full development cycle and all the
        reported false positives have been fixed in their respective trees.
        All the known-bad code patterns we could find with Coccinelle are also
        either fixed in their respective trees or in flight.
      
        The commit message in commit 54d9469b ("fortify: Add run-time WARN
        for cross-field memcpy()") for the feature has extensive details, but
        I'll repeat here that this is a warning _only_, and is not intended to
        actually block overflows (yet). The many patches fixing array sizes
        and struct members have been landing for several years now, and we're
        finally able to turn this on to find any remaining stragglers.
      
        Summary:
      
        Various fixes across several hardening areas:
      
         - loadpin: Fix verity target enforcement (Matthias Kaehlcke).
      
         - zero-call-used-regs: Add missing clobbers in paravirt (Bill
           Wendling).
      
         - CFI: clean up sparc function pointer type mismatches (Bart Van
           Assche).
      
         - Clang: Adjust compiler flag detection for various Clang changes
           (Sami Tolvanen, Kees Cook).
      
         - fortify: Fix warnings in arch-specific code in sh, ARM, and xen.
      
        Improvements to existing features:
      
         - testing: improve overflow KUnit test, introduce fortify KUnit test,
           add more coverage to LKDTM tests (Bart Van Assche, Kees Cook).
      
         - overflow: Relax overflow type checking for wider utility.
      
        New features:
      
         - string: Introduce strtomem() and strtomem_pad() to fill a gap in
           strncpy() replacement needs.
      
         - um: Enable FORTIFY_SOURCE support.
      
         - fortify: Enable run-time struct member memcpy() overflow warning"
      
      * tag 'hardening-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (27 commits)
        Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
        hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero
        sparc: Unbreak the build
        x86/paravirt: add extra clobbers with ZERO_CALL_USED_REGS enabled
        x86/paravirt: clean up typos and grammaros
        fortify: Convert to struct vs member helpers
        fortify: Explicitly check bounds are compile-time constants
        x86/entry: Work around Clang __bdos() bug
        ARM: decompressor: Include .data.rel.ro.local
        fortify: Adjust KUnit test for modular build
        sh: machvec: Use char[] for section boundaries
        kunit/memcpy: Avoid pathological compile-time string size
        lib: Improve the is_signed_type() kunit test
        LoadPin: Require file with verity root digests to have a header
        dm: verity-loadpin: Only trust verity targets with enforcement
        LoadPin: Fix Kconfig doc about format of file with verity digests
        um: Enable FORTIFY_SOURCE
        lkdtm: Update tests for memcpy() run-time warnings
        fortify: Add run-time WARN for cross-field memcpy()
        fortify: Use SIZE_MAX instead of (size_t)-1
        ...
      d0989d01
    • Linus Torvalds's avatar
      Merge tag 'kcfi-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 865dad20
      Linus Torvalds authored
      Pull kcfi updates from Kees Cook:
       "This replaces the prior support for Clang's standard Control Flow
        Integrity (CFI) instrumentation, which has required a lot of special
        conditions (e.g. LTO) and work-arounds.
      
        The new implementation ("Kernel CFI") is specific to C, directly
        designed for the Linux kernel, and takes advantage of architectural
        features like x86's IBT. This series retains arm64 support and adds
        x86 support.
      
        GCC support is expected in the future[1], and additional "generic"
        architectural support is expected soon[2].
      
        Summary:
      
         - treewide: Remove old CFI support details
      
         - arm64: Replace Clang CFI support with Clang KCFI support
      
         - x86: Introduce Clang KCFI support"
      
      Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107048 [1]
      Link: https://github.com/samitolvanen/llvm-project/commits/kcfi_generic [2]
      
      * tag 'kcfi-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (22 commits)
        x86: Add support for CONFIG_CFI_CLANG
        x86/purgatory: Disable CFI
        x86: Add types to indirectly called assembly functions
        x86/tools/relocs: Ignore __kcfi_typeid_ relocations
        kallsyms: Drop CONFIG_CFI_CLANG workarounds
        objtool: Disable CFI warnings
        objtool: Preserve special st_shndx indexes in elf_update_symbol
        treewide: Drop __cficanonical
        treewide: Drop WARN_ON_FUNCTION_MISMATCH
        treewide: Drop function_nocfi
        init: Drop __nocfi from __init
        arm64: Drop unneeded __nocfi attributes
        arm64: Add CFI error handling
        arm64: Add types to indirect called assembly functions
        psci: Fix the function type for psci_initcall_t
        lkdtm: Emit an indirect call for CFI tests
        cfi: Add type helper macros
        cfi: Switch to -fsanitize=kcfi
        cfi: Drop __CFI_ADDRESSABLE
        cfi: Remove CONFIG_CFI_CLANG_SHADOW
        ...
      865dad20
  2. 03 Oct, 2022 18 commits
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 12ed00ba
      Linus Torvalds authored
      Pull execve updates from Kees Cook:
       "This removes a.out support globally; it has been disabled for a while
        now.
      
         - Remove a.out implementation globally (Eric W. Biederman)
      
         - Remove unused linux_binprm::taso member (Lukas Bulwahn)"
      
      * tag 'execve-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        binfmt: remove taso from linux_binprm struct
        a.out: Remove the a.out implementation
      12ed00ba
    • Linus Torvalds's avatar
      Merge tag 'rust-v6.1-rc1' of https://github.com/Rust-for-Linux/linux · 8aebac82
      Linus Torvalds authored
      Pull Rust introductory support from Kees Cook:
       "The tree has a recent base, but has fundamentally been in linux-next
        for a year and a half[1]. It's been updated based on feedback from the
        Kernel Maintainer's Summit, and to gain recent Reviewed-by: tags.
      
        Miguel is the primary maintainer, with me helping where needed/wanted.
        Our plan is for the tree to switch to the standard non-rebasing
        practice once this initial infrastructure series lands.
      
        The contents are the absolute minimum to get Rust code building in the
        kernel, with many more interfaces[2] (and drivers - NVMe[3], 9p[4], M1
        GPU[5]) on the way.
      
        The initial support of Rust-for-Linux comes in roughly 4 areas:
      
         - Kernel internals (kallsyms expansion for Rust symbols, %pA format)
      
         - Kbuild infrastructure (Rust build rules and support scripts)
      
         - Rust crates and bindings for initial minimum viable build
      
         - Rust kernel documentation and samples
      
        Rust support has been in linux-next for a year and a half now, and the
        short log doesn't do justice to the number of people who have
        contributed both to the Linux kernel side but also to the upstream
        Rust side to support the kernel's needs. Thanks to these 173 people,
        and many more, who have been involved in all kinds of ways:
      
        Miguel Ojeda, Wedson Almeida Filho, Alex Gaynor, Boqun Feng, Gary Guo,
        Björn Roy Baron, Andreas Hindborg, Adam Bratschi-Kaye, Benno Lossin,
        Maciej Falkowski, Finn Behrens, Sven Van Asbroeck, Asahi Lina, FUJITA
        Tomonori, John Baublitz, Wei Liu, Geoffrey Thomas, Philip Herron,
        Arthur Cohen, David Faust, Antoni Boucher, Philip Li, Yujie Liu,
        Jonathan Corbet, Greg Kroah-Hartman, Paul E. McKenney, Josh Triplett,
        Kent Overstreet, David Gow, Alice Ryhl, Robin Randhawa, Kees Cook,
        Nick Desaulniers, Matthew Wilcox, Linus Walleij, Joe Perches, Michael
        Ellerman, Petr Mladek, Masahiro Yamada, Arnaldo Carvalho de Melo,
        Andrii Nakryiko, Konstantin Shelekhin, Rasmus Villemoes, Konstantin
        Ryabitsev, Stephen Rothwell, Andy Shevchenko, Sergey Senozhatsky, John
        Paul Adrian Glaubitz, David Laight, Nathan Chancellor, Jonathan
        Cameron, Daniel Latypov, Shuah Khan, Brendan Higgins, Julia Lawall,
        Laurent Pinchart, Geert Uytterhoeven, Akira Yokosawa, Pavel Machek,
        David S. Miller, John Hawley, James Bottomley, Arnd Bergmann,
        Christian Brauner, Dan Robertson, Nicholas Piggin, Zhouyi Zhou, Elena
        Zannoni, Jose E. Marchesi, Leon Romanovsky, Will Deacon, Richard
        Weinberger, Randy Dunlap, Paolo Bonzini, Roland Dreier, Mark Brown,
        Sasha Levin, Ted Ts'o, Steven Rostedt, Jarkko Sakkinen, Michal
        Kubecek, Marco Elver, Al Viro, Keith Busch, Johannes Berg, Jan Kara,
        David Sterba, Connor Kuehl, Andy Lutomirski, Andrew Lunn, Alexandre
        Belloni, Peter Zijlstra, Russell King, Eric W. Biederman, Willy
        Tarreau, Christoph Hellwig, Emilio Cobos Álvarez, Christian Poveda,
        Mark Rousskov, John Ericson, TennyZhuang, Xuanwo, Daniel Paoliello,
        Manish Goregaokar, comex, Josh Stone, Stephan Sokolow, Philipp Krones,
        Guillaume Gomez, Joshua Nelson, Mats Larsen, Marc Poulhiès, Samantha
        Miller, Esteban Blanc, Martin Schmidt, Martin Rodriguez Reboredo,
        Daniel Xu, Viresh Kumar, Bartosz Golaszewski, Vegard Nossum, Milan
        Landaverde, Dariusz Sosnowski, Yuki Okushi, Matthew Bakhtiari, Wu
        XiangCheng, Tiago Lam, Boris-Chengbiao Zhou, Sumera Priyadarsini,
        Viktor Garske, Niklas Mohrin, Nándor István Krácser, Morgan Bartlett,
        Miguel Cano, Léo Lanteri Thauvin, Julian Merkle, Andreas Reindl,
        Jiapeng Chong, Fox Chen, Douglas Su, Antonio Terceiro, SeongJae Park,
        Sergio González Collado, Ngo Iok Ui (Wu Yu Wei), Joshua Abraham,
        Milan, Daniel Kolsoi, ahomescu, Manas, Luis Gerhorst, Li Hongyu,
        Philipp Gesang, Russell Currey, Jalil David Salamé Messina, Jon Olson,
        Raghvender, Angelos, Kaviraj Kanagaraj, Paul Römer, Sladyn Nunes,
        Mauro Baladés, Hsiang-Cheng Yang, Abhik Jain, Hongyu Li, Sean Nash,
        Yuheng Su, Peng Hao, Anhad Singh, Roel Kluin, Sara Saa, Geert
        Stappers, Garrett LeSage, IFo Hancroft, and Linus Torvalds"
      
      Link: https://lwn.net/Articles/849849/ [1]
      Link: https://github.com/Rust-for-Linux/linux/commits/rust [2]
      Link: https://github.com/metaspace/rust-linux/commit/d88c3744d6cbdf11767e08bad56cbfb67c4c96d0 [3]
      Link: https://github.com/wedsonaf/linux/commit/9367032607f7670de0ba1537cf09ab0f4365a338 [4]
      Link: https://github.com/AsahiLinux/linux/commits/gpu/rust-wip [5]
      
      * tag 'rust-v6.1-rc1' of https://github.com/Rust-for-Linux/linux: (27 commits)
        MAINTAINERS: Rust
        samples: add first Rust examples
        x86: enable initial Rust support
        docs: add Rust documentation
        Kbuild: add Rust support
        rust: add `.rustfmt.toml`
        scripts: add `is_rust_module.sh`
        scripts: add `rust_is_available.sh`
        scripts: add `generate_rust_target.rs`
        scripts: add `generate_rust_analyzer.py`
        scripts: decode_stacktrace: demangle Rust symbols
        scripts: checkpatch: enable language-independent checks for Rust
        scripts: checkpatch: diagnose uses of `%pA` in the C side as errors
        vsprintf: add new `%pA` format specifier
        rust: export generated symbols
        rust: add `kernel` crate
        rust: add `bindings` crate
        rust: add `macros` crate
        rust: add `compiler_builtins` crate
        rust: adapt `alloc` crate to the kernel
        ...
      8aebac82
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a5088ee7
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "The most significant part of this update is the thermal control DT
        initialization rework from Daniel Lezcano and the following conversion
        of drivers to use the new API introduced by it
      
        Apart from that, the maximum number of trip points in a thermal zone
        is increased and there are some fixes and code cleanups
      
        Specifics:
      
         - Rework the device tree initialization, convert the drivers to the
           new API and remove the old OF code (Daniel Lezcano)
      
         - Fix return value to -ENODEV when searching for a specific thermal
           zone which does not exist (Daniel Lezcano)
      
         - Fix the return value inspection in of_thermal_zone_find() (Dan
           Carpenter)
      
         - Fix kernel panic when KASAN is enabled as it detects use after free
           when unregistering a thermal zone (Daniel Lezcano)
      
         - Move the set_trip ops inside the therma sysfs code (Daniel Lezcano)
      
         - Remove unnecessary error message as it is already shown in the
           underlying function (Jiapeng Chong)
      
         - Rework the monitoring path and move the locks upper in the call
           stack to fix some potentials race windows (Daniel Lezcano)
      
         - Fix lockdep_assert() warning introduced by the lock rework (Daniel
           Lezcano)
      
         - Do not lock thermal zone mutex in the user space governor (Rafael
           Wysocki)
      
         - Revert the Mellanox 'hotter thermal zone' feature because it is
           already handled in the thermal framework core code (Daniel Lezcano)
      
         - Increase maximum number of trip points in the thermal core (Sumeet
           Pawnikar)
      
         - Replace strlcpy() with unused retval with strscpy() in the core
           thermal control code (Wolfram Sang)
      
         - Use module_pci_driver() macro in the int340x processor_thermal
           driver (Shang XiaoJing)
      
         - Use get_cpu() instead of smp_processor_id() in the intel_powerclamp
           thermal driver to prevent it from crashing and remove unused
           accounting for IRQ wakes from it (Srinivas Pandruvada)
      
         - Consolidate priv->data_vault checks in int340x_thermal (Rafael
           Wysocki)
      
         - Check the policy first in cpufreq_cooling_register() (Xuewen Yan)
      
         - Drop redundant error message from da9062-thermal (zhaoxiao)
      
         - Drop of_match_ptr() from thermal_mmio (Jean Delvare)"
      
      * tag 'thermal-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (55 commits)
        thermal: core: Increase maximum number of trip points
        thermal: int340x: processor_thermal: Use module_pci_driver() macro
        thermal: intel_powerclamp: Remove accounting for IRQ wakes
        thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash
        thermal: int340x_thermal: Consolidate priv->data_vault checks
        thermal: cpufreq_cooling: Check the policy first in cpufreq_cooling_register()
        thermal: Drop duplicate words from comments
        thermal: move from strlcpy() with unused retval to strscpy()
        thermal: da9062-thermal: Drop redundant error message
        thermal/drivers/thermal_mmio: Drop of_match_ptr()
        thermal: gov_user_space: Do not lock thermal zone mutex
        Revert "mlxsw: core: Add the hottest thermal zone detection"
        thermal/core: Fix lockdep_assert() warning
        thermal/core: Move the mutex inside the thermal_zone_device_update() function
        thermal/core: Move the thermal zone lock out of the governors
        thermal/governors: Group the thermal zone lock inside the throttle function
        thermal/core: Rework the monitoring a bit
        thermal/core: Rearm the monitoring only one time
        thermal/drivers/qcom/spmi-adc-tm5: Remove unnecessary print function dev_err()
        thermal/of: Remove old OF code
        ...
      a5088ee7
    • Linus Torvalds's avatar
      Merge tag 'pm-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c79e6fa9
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add support for some new hardware, extend the existing hardware
        support, fix some issues and clean up code
      
        Specifics:
      
         - Add isupport for Tiger Lake in no-HWP mode to intel_pstate (Doug
           Smythies)
      
         - Update the AMD P-state driver (Perry Yuan):
            - Fix wrong lowest perf fetch
            - Map desired perf into pstate scope for powersave governor
            - Update pstate frequency transition delay time
            - Fix initial highest_perf value
            - Clean up
      
         - Move max CPU capacity to sugov_policy in the schedutil cpufreq
           governor (Lukasz Luba)
      
         - Add SM6115 to cpufreq-dt blocklist (Adam Skladowski)
      
         - Add support for Tegra239 and minor cleanups (Sumit Gupta, ye
           xingchen, and Yang Yingliang)
      
         - Add freq qos for qcom cpufreq driver and minor cleanups (Xuewen
           Yan, and Viresh Kumar)
      
         - Minor cleanups around functions called at module_init() (Xiu
           Jianfeng)
      
         - Use module_init and add module_exit for bmips driver (Zhang
           Jianhua)
      
         - Add AlderLake-N support to intel_idle (Zhang Rui)
      
         - Replace strlcpy() with unused retval with strscpy() in intel_idle
           (Wolfram Sang)
      
         - Remove redundant check from cpuidle_switch_governor() (Yu Liao)
      
         - Replace strlcpy() with unused retval with strscpy() in the powernv
           cpuidle driver (Wolfram Sang)
      
         - Drop duplicate word from a comment in the coupled cpuidle driver
           (Jason Wang)
      
         - Make rpm_resume() return -EINPROGRESS if RPM_NOWAIT is passed to it
           in the flags and the device is about to resume (Rafael Wysocki)
      
         - Add extra debugging statement for multiple active IRQs to system
           wakeup handling code (Mario Limonciello)
      
         - Replace strlcpy() with unused retval with strscpy() in the core
           system suspend support code (Wolfram Sang)
      
         - Update the intel_rapl power capping driver:
            - Use standard Energy Unit for SPR Dram RAPL domain (Zhang Rui).
            - Add support for RAPTORLAKE_S (Zhang Rui).
            - Fix UBSAN shift-out-of-bounds issue (Chao Qin)
      
         - Handle -EPROBE_DEFER when regulator is not probed on
           mtk-ci-devfreq.c (AngeloGioacchino Del Regno)
      
         - Fix message typo and use dev_err_probe() in rockchip-dfi.c
           (Christophe JAILLET)"
      
      * tag 'pm-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (29 commits)
        cpufreq: qcom-cpufreq-hw: Add cpufreq qos for LMh
        cpufreq: Add __init annotation to module init funcs
        cpufreq: tegra194: change tegra239_cpufreq_soc to static
        PM / devfreq: rockchip-dfi: Fix an error message
        PM / devfreq: mtk-cci: Handle sram regulator probe deferral
        powercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain
        PM: runtime: Return -EINPROGRESS from rpm_resume() in the RPM_NOWAIT case
        intel_idle: Add AlderLake-N support
        powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
        cpufreq: tegra194: Add support for Tegra239
        cpufreq: qcom-cpufreq-hw: Fix uninitialized throttled_freq warning
        cpufreq: intel_pstate: Add Tigerlake support in no-HWP mode
        powercap: intel_rapl: Add support for RAPTORLAKE_S
        cpufreq: amd-pstate: Fix initial highest_perf value
        cpuidle: Remove redundant check in cpuidle_switch_governor()
        PM: wakeup: Add extra debugging statement for multiple active IRQs
        cpufreq: tegra194: Remove the unneeded result variable
        PM: suspend: move from strlcpy() with unused retval to strscpy()
        intel_idle: move from strlcpy() with unused retval to strscpy()
        cpuidle: powernv: move from strlcpy() with unused retval to strscpy()
        ...
      c79e6fa9
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 9388076b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "ACPI and PNP updates for 6.1-rc1.
      
        These rearrange the ACPI device object initialization code (to get rid
        of a redundant parent pointer from struct acpi_device among other
        things), unify the _UID handling, drop support for some _OSI strings
        that should not be necessary any more, add new IDs to support more
        hardware and some more quirks, fix a few issues and clean up code all
        over.
      
        Specifics:
      
         - Reimplement acpi_get_pci_dev() using the list of physical devices
           associated with the given ACPI device object (Rafael Wysocki)
      
         - Rename ACPI device object reference counting functions (Rafael
           Wysocki)
      
         - Rearrange ACPI device object initialization code (Rafael Wysocki)
      
         - Drop parent field from struct acpi_device (Rafael Wysocki)
      
         - Extend the the int3472-tps68470 driver to support multiple
           consumers of a single TPS68470 along with the requisite
           framework-level support (Daniel Scally)
      
         - Filter out non-memory resources in is_memory(), add a helper
           function to find all memory type resources of an ACPI device object
           and use that function in 3 places (Heikki Krogerus)
      
         - Add IRQ override quirks for Asus Vivobook K3402ZA/K3502ZA and ASUS
           model S5402ZA (Tamim Khan, Kellen Renshaw)
      
         - Fix acpi_dev_state_d0() kerneldoc (Sakari Ailus)
      
         - Fix up suspend-to-idle support on ASUS Rembrandt laptops (Mario
           Limonciello)
      
         - Clean up ACPI platform devices support code (Andy Shevchenko, John
           Garry)
      
         - Clean up ACPI bus management code (Andy Shevchenko, ye xingchen)
      
         - Add support for multiple DMA windows with different offsets to the
           ACPI device enumeration code and use it on LoongArch (Jianmin Lv)
      
         - Clean up the ACPI LPSS (Intel SoC) driver (Andy Shevchenko)
      
         - Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable (Mario
           Limonciello)
      
         - Drop unused dev_fmt() and redundant 'HMAT' prefix from the HMAT
           parsing code (Liu Shixin)
      
         - Make ACPI FPDT parsing code avoid calling acpi_os_map_memory() on
           invalid physical addresses (Hans de Goede)
      
         - Silence missing-declarations warning related to Apple device
           properties management (Lukas Wunner)
      
         - Disable frequency invariance in the CPPC library if registers used
           by cppc_get_perf_ctrs() are accessed via PCC (Jeremy Linton)
      
         - Add ACPI disabled check to acpi_cpc_valid() (Perry Yuan)
      
         - Fix Tx acknowledge in the PCC address space handler (Huisong Li)
      
         - Use wait_for_completion_timeout() for PCC mailbox operations
           (Huisong Li)
      
         - Release resources on PCC address space setup failure path (Rafael
           Mendonca)
      
         - Remove unneeded result variables from APEI code (ye xingchen)
      
         - Print total number of records found during BERT log parsing (Dmitry
           Monakhov)
      
         - Drop support for 3 _OSI strings that should not be necessary any
           more and update documentation on custom _OSI strings so that adding
           new ones is not encouraged any more (Mario Limonciello)
      
         - Drop unneeded result variable from ec_write() (ye xingchen)
      
         - Remove the leftover struct acpi_ac_bl from the ACPI AC driver
           (Hanjun Guo)
      
         - Reorder symbols to get rid of a few forward declarations in the
           ACPI fan driver (Uwe Kleine-König)
      
         - Add Toshiba Satellite/Portege Z830 ACPI backlight quirk (Arvid
           Norlander)
      
         - Add ARM DMA-330 controller to the supported list in the ACPI AMBA
           driver (Vijayenthiran Subramaniam)
      
         - Drop references to non-functional 01.org/linux-acpi web site from
           MAINTAINERS and Kconfig help texts (Rafael Wysocki)
      
         - Replace strlcpy() with unused retval with strscpy() in the ACPI
           support code (Wolfram Sang)
      
         - Do not initialize ret in main() in the pfrut utility (Shi junming)
      
         - Drop useless ACPI DSDT override documentation (Rafael Wysocki)
      
         - Fix a few typos and wording mistakes in the ACPI device enumeration
           documentation (Jean Delvare)
      
         - Introduce acpi_dev_uid_to_integer() to convert a _UID string into
           an integer value (Andy Shevchenko)
      
         - Use acpi_dev_uid_to_integer() in several places to unify _UID
           handling (Andy Shevchenko)
      
         - Drop unused pnpid32_to_pnpid() declaration from PNP code (Gaosheng
           Cui)"
      
      * tag 'acpi-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (79 commits)
        ACPI: LPSS: Deduplicate skipping device in acpi_lpss_create_device()
        ACPI: LPSS: Replace loop with first entry retrieval
        ACPI: x86: s2idle: Add another ID to s2idle_dmi_table
        ACPI: x86: s2idle: Fix a NULL pointer dereference
        MAINTAINERS: Drop records pointing to 01.org/linux-acpi
        ACPI: Kconfig: Drop link to https://01.org/linux-acpi
        ACPI: docs: Drop useless DSDT override documentation
        ACPI: DPTF: Drop stale link from Kconfig help
        ACPI: x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13
        ACPI: x86: s2idle: Add a quirk for Lenovo Slim 7 Pro 14ARH7
        ACPI: x86: s2idle: Add a quirk for ASUS ROG Zephyrus G14
        ACPI: x86: s2idle: Add a quirk for ASUS TUF Gaming A17 FA707RE
        ACPI: x86: s2idle: Add module parameter to prefer Microsoft GUID
        ACPI: x86: s2idle: If a new AMD _HID is missing assume Rembrandt
        ACPI: x86: s2idle: Move _HID handling for AMD systems into structures
        platform/x86: int3472: Add board data for Surface Go2 IR camera
        platform/x86: int3472: Support multiple gpio lookups in board data
        platform/x86: int3472: Support multiple clock consumers
        ACPI: bus: Add iterator for dependent devices
        ACPI: scan: Add acpi_dev_get_next_consumer_dev()
        ...
      9388076b
    • Rafael J. Wysocki's avatar
      Merge branches 'thermal-intel' and 'thermal-drivers' · 2e70ea7f
      Rafael J. Wysocki authored
      Merge thermal control driver changes for 6.1-rc1:
      
       - Use module_pci_driver() macro in the int340x processor_thermal
         driver (Shang XiaoJing).
      
       - Use get_cpu() instead of smp_processor_id() in the intel_powerclamp
         thermal driver to prevent it from crashing and remove unused
         accounting for IRQ wakes from it (Srinivas Pandruvada).
      
       - Consolidate priv->data_vault checks in int340x_thermal (Rafael
         Wysocki).
      
       - Check the policy first in cpufreq_cooling_register() (Xuewen Yan).
      
       - Drop redundant error message from da9062-thermal (zhaoxiao).
      
       - Drop of_match_ptr() from thermal_mmio (Jean Delvare).
      
      * thermal-intel:
        thermal: int340x: processor_thermal: Use module_pci_driver() macro
        thermal: intel_powerclamp: Remove accounting for IRQ wakes
        thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash
        thermal: int340x_thermal: Consolidate priv->data_vault checks
      
      * thermal-drivers:
        thermal: cpufreq_cooling: Check the policy first in cpufreq_cooling_register()
        thermal: da9062-thermal: Drop redundant error message
        thermal/drivers/thermal_mmio: Drop of_match_ptr()
      2e70ea7f
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-core' · a7ae50fc
      Rafael J. Wysocki authored
      Merge core thermal control changes for 6.1-rc1:
      
       - Increase maximum number of trip points in the thermal core (Sumeet
         Pawnikar).
      
       - Replace strlcpy() with unused retval with strscpy() in the core
         thermal control code (Wolfram Sang).
      
       - Do not lock thermal zone mutex in the user space governor (Rafael
         Wysocki)
      
       - Rework the device tree initialization, convert the drivers to the
         new API and remove the old OF code (Daniel Lezcano)
      
       - Fix return value to -ENODEV when searching for a specific thermal
         zone which does not exist (Daniel Lezcano)
      
       - Fix the return value inspection in of_thermal_zone_find() (Dan
         Carpenter)
      
       - Fix kernel panic when KASAN is enabled as it detects use after
         free when unregistering a thermal zone (Daniel Lezcano)
      
       - Move the set_trip ops inside the therma sysfs code (Daniel Lezcano)
      
       - Remove unnecessary error message as it is already showed in the
         underlying function (Jiapeng Chong)
      
       - Rework the monitoring path and move the locks upper in the call
         stack to fix some potentials race windows (Daniel Lezcano)
      
       - Fix lockdep_assert() warning introduced by the lock rework (Daniel
         Lezcano)
      
       - Revert the Mellanox 'hotter thermal zone' feature because it is
         already handled in the thermal framework core code (Daniel Lezcano)
      
      * thermal-core: (47 commits)
        thermal: core: Increase maximum number of trip points
        thermal: move from strlcpy() with unused retval to strscpy()
        thermal: gov_user_space: Do not lock thermal zone mutex
        Revert "mlxsw: core: Add the hottest thermal zone detection"
        thermal/core: Fix lockdep_assert() warning
        thermal/core: Move the mutex inside the thermal_zone_device_update() function
        thermal/core: Move the thermal zone lock out of the governors
        thermal/governors: Group the thermal zone lock inside the throttle function
        thermal/core: Rework the monitoring a bit
        thermal/core: Rearm the monitoring only one time
        thermal/drivers/qcom/spmi-adc-tm5: Remove unnecessary print function dev_err()
        thermal/of: Remove old OF code
        thermal/core: Move set_trip_temp ops to the sysfs code
        thermal/drivers/samsung: Switch to new of thermal API
        regulator/drivers/max8976: Switch to new of thermal API
        Input: sun4i-ts - switch to new of thermal API
        iio/drivers/sun4i_gpadc: Switch to new of thermal API
        hwmon/drivers/core: Switch to new of thermal API
        hwmon: pm_bus: core: Switch to new of thermal API
        ata/drivers/ahci_imx: Switch to new of thermal API
        ...
      a7ae50fc
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle', 'pm-core', 'pm-sleep' and 'powercap' · ac73ce39
      Rafael J. Wysocki authored
      Merge cpuidle changes, PM core changes and power capping changes for
      6.1-rc1:
      
       - Add AlderLake-N support to intel_idle (Zhang Rui).
      
       - Replace strlcpy() with unused retval with strscpy() in intel_idle
         (Wolfram Sang).
      
       - Remove redundant check from cpuidle_switch_governor() (Yu Liao).
      
       - Replace strlcpy() with unused retval with strscpy() in the powernv
         cpuidle driver (Wolfram Sang).
      
       - Drop duplicate word from a comment in the coupled cpuidle driver
         (Jason Wang).
      
       - Make rpm_resume() return -EINPROGRESS if RPM_NOWAIT is passed to it
         in the flags and the device is about to resume (Rafael Wysocki).
      
       - Add extra debugging statement for multiple active IRQs to system
         wakeup handling code (Mario Limonciello).
      
       - Replace strlcpy() with unused retval with strscpy() in the core
         system suspend support code (Wolfram Sang).
      
       - Update the intel_rapl power capping driver:
         * Use standard Energy Unit for SPR Dram RAPL domain (Zhang Rui).
         * Add support for RAPTORLAKE_S (Zhang Rui).
         * Fix UBSAN shift-out-of-bounds issue (Chao Qin).
      
      * pm-cpuidle:
        intel_idle: Add AlderLake-N support
        cpuidle: Remove redundant check in cpuidle_switch_governor()
        intel_idle: move from strlcpy() with unused retval to strscpy()
        cpuidle: powernv: move from strlcpy() with unused retval to strscpy()
        cpuidle: coupled: Drop duplicate word from a comment
      
      * pm-core:
        PM: runtime: Return -EINPROGRESS from rpm_resume() in the RPM_NOWAIT case
      
      * pm-sleep:
        PM: wakeup: Add extra debugging statement for multiple active IRQs
        PM: suspend: move from strlcpy() with unused retval to strscpy()
      
      * powercap:
        powercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain
        powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
        powercap: intel_rapl: Add support for RAPTORLAKE_S
      ac73ce39
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 0766fa2e
      Rafael J. Wysocki authored
      Merge cpufreq changes for 6.1-rc1:
      
       - Add isupport for Tiger Lake in no-HWP mode to intel_pstate (Doug
         Smythies).
      
       - Update the AMD P-state driver (Perry Yuan):
         * Fix wrong lowest perf fetch.
         * Map desired perf into pstate scope for powersave governor.
         * Update pstate frequency transition delay time.
         * Fix initial highest_perf value.
         * Clean up.
      
       - Move max CPU capacity to sugov_policy in the schedutil cpufreq
         governor (Lukasz Luba).
      
       - Add SM6115 to cpufreq-dt blocklist (Adam Skladowski).
      
       - Add support for Tegra239 and minor cleanups (Sumit Gupta, ye xingchen,
         and Yang Yingliang).
      
       - Add freq qos for qcom cpufreq driver and minor cleanups (Xuewen Yan,
         and Viresh Kumar).
      
       - Minor cleanups around functions called at module_init() (Xiu Jianfeng).
      
       - Use module_init and add module_exit for bmips driver (Zhang Jianhua).
      
      * pm-cpufreq:
        cpufreq: qcom-cpufreq-hw: Add cpufreq qos for LMh
        cpufreq: Add __init annotation to module init funcs
        cpufreq: tegra194: change tegra239_cpufreq_soc to static
        cpufreq: tegra194: Add support for Tegra239
        cpufreq: qcom-cpufreq-hw: Fix uninitialized throttled_freq warning
        cpufreq: intel_pstate: Add Tigerlake support in no-HWP mode
        cpufreq: amd-pstate: Fix initial highest_perf value
        cpufreq: tegra194: Remove the unneeded result variable
        cpufreq: amd-pstate: update pstate frequency transition delay time
        cpufreq: amd_pstate: map desired perf into pstate scope for powersave governor
        cpufreq: amd_pstate: fix wrong lowest perf fetch
        cpufreq: amd-pstate: fix white-space
        cpufreq: amd-pstate: simplify cpudata pointer assignment
        cpufreq: bmips-cpufreq: Use module_init and add module_exit
        cpufreq: schedutil: Move max CPU capacity to sugov_policy
        cpufreq: Add SM6115 to cpufreq-dt-platdev blocklist
      0766fa2e
    • Rafael J. Wysocki's avatar
      Merge branch 'pnp' · c8efe77f
      Rafael J. Wysocki authored
      Merge a PNP changes for 6.1-rc1:
      
        - Drop unused pnpid32_to_pnpid() declaration from  PNP code (Gaosheng
          Cui).
      
      * pnp:
        PNPBIOS: remove unused pnpid32_to_pnpid() declaration
      c8efe77f
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-uid' · 4aa497ca
      Rafael J. Wysocki authored
      Merge ACPI _UID handling unification changes for 6.1-rc1:
      
       - Introduce acpi_dev_uid_to_integer() to convert a _UID string into an
         integer value (Andy Shevchenko).
      
       - Use acpi_dev_uid_to_integer() in several places to unify _UID
         handling (Andy Shevchenko).
      
      * acpi-uid:
        efi/dev-path-parser: Refactor _UID handling to use acpi_dev_uid_to_integer()
        spi: pxa2xx: Refactor _UID handling to use acpi_dev_uid_to_integer()
        perf: qcom_l2_pmu: Refactor _UID handling to use acpi_dev_uid_to_integer()
        i2c: mlxbf: Refactor _UID handling to use acpi_dev_uid_to_integer()
        i2c: amd-mp2-plat: Refactor _UID handling to use acpi_dev_uid_to_integer()
        ACPI: x86: Refactor _UID handling to use acpi_dev_uid_to_integer()
        ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer()
        ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID as integer
      4aa497ca
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-misc', 'acpi-tools' and 'acpi-docs' · a7ece531
      Rafael J. Wysocki authored
      Merge miscellaneous ACPI material, ACPI tools changes and ACPI
      documentation updates for 6.1-rc1:
      
       - Drop references to non-functional 01.org/linux-acpi web site from
         MAINTAINERS and Kconfig help texts (Rafael Wysocki).
      
       - Replace strlcpy() with unused retval with strscpy() in the ACPI
         support code (Wolfram Sang).
      
       - Do not initialize ret in main() in the pfrut utility (Shi junming).
      
       - Drop useless ACPI DSDT override documentation (Rafael Wysocki).
      
       - Fix a few typos and wording mistakes in the ACPI device enumeration
         documentation (Jean Delvare).
      
      * acpi-misc:
        MAINTAINERS: Drop records pointing to 01.org/linux-acpi
        ACPI: Kconfig: Drop link to https://01.org/linux-acpi
        ACPI: DPTF: Drop stale link from Kconfig help
        ACPI: move from strlcpy() with unused retval to strscpy()
      
      * acpi-tools:
        ACPI: tools: pfrut: Do not initialize ret in main()
      
      * acpi-docs:
        ACPI: docs: Drop useless DSDT override documentation
        ACPI: docs: enumeration: Fix a few typos and wording mistakes
      a7ece531
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-ec', 'acpi-ac', 'acpi-fan', 'acpi-video' and 'acpi-amba' · 7b4baa39
      Rafael J. Wysocki authored
      Merge EC, AC, fan and backlight driver changes and ACPI AMBA support
      update for 6.1-rc1:
      
       - Drop unneeded result variable from ec_write() (ye xingchen).
      
       - Remove the leftover struct acpi_ac_bl from the ACPI AC driver (Hanjun
         Guo).
      
       - Reorder symbols to get rid of a few forward declarations in the ACPI
         fan driver (Uwe Kleine-König).
      
       - Add Toshiba Satellite/Portege Z830 ACPI backlight quirk (Arvid
         Norlander).
      
       - Add ARM DMA-330 controller to the supported list in the ACPI AMBA
         driver (Vijayenthiran Subramaniam).
      
      * acpi-ec:
        ACPI: EC: Drop unneeded result variable from ec_write()
      
      * acpi-ac:
        ACPI: AC: Remove the leftover struct acpi_ac_bl
      
      * acpi-fan:
        ACPI: fan: Reorder symbols to get rid of a few forward declarations
      
      * acpi-video:
        ACPI: video: Add Toshiba Satellite/Portege Z830 quirk
      
      * acpi-amba:
        ACPI: AMBA: Add ARM DMA-330 controller to the supported list
      7b4baa39
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-cppc', 'acpi-pcc', 'acpi-apei' and 'acpi-osi' · b1d03b7e
      Rafael J. Wysocki authored
      Merge new material related to CPPC, PCC, APEI and OSI strings handling
      for 6.1-rc1:
      
       - Disable frequency invariance in the CPPC library if registers used
         by cppc_get_perf_ctrs() are accessed via PCC (Jeremy Linton).
      
       - Add ACPI disabled check to acpi_cpc_valid() (Perry Yuan).
      
       - Fix Tx acknowledge in the PCC address space handler (Huisong Li).
      
       - Use wait_for_completion_timeout() for PCC mailbox operations (Huisong
         Li).
      
       - Release resources on PCC address space setup failure path (Rafael
         Mendonca).
      
       - Remove unneeded result variables from APEI code (ye xingchen).
      
       - Print total number of records found during BERT log parsing (Dmitry
         Monakhov).
      
       - Drop support for 3 _OSI strings that should not be necessary any
         more and update documentation on custom _OSI strings so that adding
         new ones is not encouraged any more (Mario Limonciello).
      
      * acpi-cppc:
        ACPI: CPPC: Disable FIE if registers in PCC regions
        ACPI: CPPC: Add ACPI disabled check to acpi_cpc_valid()
      
      * acpi-pcc:
        ACPI: PCC: Fix Tx acknowledge in the PCC address space handler
        ACPI: PCC: replace wait_for_completion()
        ACPI: PCC: Release resources on address space setup failure path
      
      * acpi-apei:
        ACPI: APEI: Remove unneeded result variables
        ACPI: APEI: Add BERT error log footer
      
      * acpi-osi:
        ACPI: OSI: Update Documentation on custom _OSI strings
        ACPI: OSI: Remove Linux-HPI-Hybrid-Graphics _OSI string
        ACPI: OSI: Remove Linux-Lenovo-NV-HDMI-Audio _OSI string
        ACPI: OSI: Remove Linux-Dell-Video _OSI string
      b1d03b7e
    • Linus Torvalds's avatar
      Merge tag 'docs-6.1' of git://git.lwn.net/linux · f3dfe925
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "There's not a huge amount of activity in the docs tree this time
        around, but a few significant changes even so:
      
         - A complete rewriting of the top-level index.rst file, which mostly
           reflects itself in a redone top page in the HTML-rendered docs. The
           hope is that the new organization will be a friendlier starting
           point for both users and developers.
      
         - Some math-rendering improvements.
      
         - A coding-style.rst update on the use of BUG() and WARN()
      
         - A big maintainer-PHP guide update.
      
         - Some code-of-conduct updates
      
         - More Chinese translation work
      
        Plus the usual pile of typo fixes, corrections, and updates"
      
      * tag 'docs-6.1' of git://git.lwn.net/linux: (66 commits)
        checkpatch: warn on usage of VM_BUG_ON() and other BUG variants
        coding-style.rst: document BUG() and WARN() rules ("do not crash the kernel")
        Documentation: devres: add missing IO helper
        Documentation: devres: update IRQ helper
        Documentation/mm: modify page_referenced to folio_referenced
        Documentation/CoC: Reflect current CoC interpretation and practices
        docs/doc-guide: Add documentation on SPHINX_IMGMATH
        docs: process/5.Posting.rst: clarify use of Reported-by: tag
        docs, kprobes: Fix the wrong location of Kprobes
        docs: add a man-pages link to the front page
        docs: put atomic*.txt and memory-barriers.txt into the core-api book
        docs: move asm-annotations.rst into core-api
        docs: remove some index.rst cruft
        docs: reconfigure the HTML left column
        docs: Rewrite the front page
        docs: promote the title of process/index.rst
        Documentation: devres: add missing SPI helper
        Documentation: devres: add missing PINCTRL helpers
        docs: hugetlbpage.rst: fix a typo of hugepage size
        docs/zh_CN: Add new translation of admin-guide/bootconfig.rst
        ...
      f3dfe925
    • Linus Torvalds's avatar
      Merge tag 'rcu.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 890f2420
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
      
       - Documentation updates.
      
         This is the first in a series from an ongoing review of the RCU
         documentation. "Why are people thinking -that- about RCU? Oh. Because
         that is an entirely reasonable interpretation of its documentation."
      
       - Miscellaneous fixes.
      
       - Improved memory allocation and heuristics.
      
       - Improve rcu_nocbs diagnostic output.
      
       - Add full-sized polled RCU grace period state values.
      
         These are the same size as an rcu_head structure, which is double
         that of the traditional unsigned long state values that may still be
         obtained from et_state_synchronize_rcu(). The added size avoids
         missing overlapping grace periods. This benefit is that call_rcu()
         can be replaced by polling, which can be attractive in situations
         where RCU-protected data is aged out of memory.
      
         Early in the series, the size of this state value is three unsigned
         longs. Later in the series, the fastpaths in synchronize_rcu() and
         synchronize_rcu_expedited() are reworked to permit the full state to
         be represented by only two unsigned longs. This reworking slows these
         two functions down in SMP kernels running either on single-CPU
         systems or on systems with all but one CPU offlined, but this should
         not be a significant problem. And if it somehow becomes a problem in
         some yet-as-unforeseen situations, three-value state values can be
         provided for only those situations.
      
         Finally, a pair of functions named same_state_synchronize_rcu() and
         same_state_synchronize_rcu_full() allow grace-period state values to
         be compared for equality. This permits users to maintain lists of
         data structures having the same state value, removing the need for
         per-data-structure grace-period state values, thus decreasing memory
         footprint.
      
       - Polled SRCU grace-period updates, including adding tests to
         rcutorture and reducing the incidence of Tiny SRCU grace-period-state
         counter wrap.
      
       - Improve Tasks RCU diagnostics and quiescent-state detection.
      
      * tag 'rcu.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (55 commits)
        rcutorture: Use the barrier operation specified by cur_ops
        rcu-tasks: Make RCU Tasks Trace check for userspace execution
        rcu-tasks: Ensure RCU Tasks Trace loops have quiescent states
        rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE()
        srcu: Make Tiny SRCU use full-sized grace-period counters
        srcu: Make Tiny SRCU poll_state_synchronize_srcu() more precise
        srcu: Add GP and maximum requested GP to Tiny SRCU rcutorture output
        rcutorture: Make "srcud" option also test polled grace-period API
        rcutorture: Limit read-side polling-API testing
        rcu: Add functions to compare grace-period state values
        rcutorture: Expand rcu_torture_write_types() first "if" statement
        rcutorture: Use 1-suffixed variable in rcu_torture_write_types() check
        rcu: Make synchronize_rcu() fastpath update only boot-CPU counters
        rcutorture: Adjust rcu_poll_need_2gp() for rcu_gp_oldstate field removal
        rcu: Remove ->rgos_polled field from rcu_gp_oldstate structure
        rcu: Make synchronize_rcu_expedited() fast path update .expedited_sequence
        rcu: Remove expedited grace-period fast-path forward-progress helper
        rcu: Make synchronize_rcu() fast path update ->gp_seq counters
        rcu-tasks: Remove grace-period fast-path rcu-tasks helper
        rcu: Set rcu_data structures' initial ->gpwrap value to true
        ...
      890f2420
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · b8fb65e1
      Linus Torvalds authored
      Pull LKMM (Linux Kernel Memory Model) updates from Paul McKenney:
       "Several documentation updates"
      
      * tag 'lkmm.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        tools/memory-model: Clarify LKMM's limitations in litmus-tests.txt
        docs/memory-barriers.txt: Fixup long lines
        docs/memory-barriers.txt: Fix confusing name of 'data dependency barrier'
      b8fb65e1
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · dda0ba40
      Linus Torvalds authored
      Pull nolibc updates from Paul McKenney:
       "Most notably greatly improved testing. These tests are located in
        tools/testing/selftests/nolibc. The output of "make help" is as
        follows:
      
          Supported targets under selftests/nolibc:
            all          call the "run" target below
            help         this help
            sysroot      create the nolibc sysroot here (uses $ARCH)
            nolibc-test  build the executable (uses $CC and $CROSS_COMPILE)
            initramfs    prepare the initramfs with nolibc-test
            defconfig    create a fresh new default config (uses $ARCH)
            kernel       (re)build the kernel with the initramfs (uses $ARCH)
            run          runs the kernel in QEMU after building it (uses $ARCH, $TEST)
            rerun        runs a previously prebuilt kernel in QEMU (uses $ARCH, $TEST)
            clean        clean the sysroot, initramfs, build and output files
      
          The output file is "run.out". Test ranges may be passed using $TEST.
      
          Currently using the following variables:
            ARCH          = x86
            CROSS_COMPILE =
            CC            = gcc
            OUTPUT        = /home/git/linux-rcu/tools/testing/selftests/nolibc/
            TEST          =
            QEMU_ARCH     = x86_64 [determined from $ARCH]
            IMAGE_NAME    = bzImage [determined from $ARCH]
      
        The output of a successful x86 "make run" is currently as follows,
        with kernel build output omitted:
      
          $ make run
          71 test(s) passed."
      
      * tag 'nolibc.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        selftests/nolibc: Avoid generated files being committed
        selftests/nolibc: add a "help" target
        selftests/nolibc: "sysroot" target installs a local copy of the sysroot
        selftests/nolibc: add a "run" target to start the kernel in QEMU
        selftests/nolibc: add a "defconfig" target
        selftests/nolibc: add a "kernel" target to build the kernel with the initramfs
        selftests/nolibc: support glibc as well
        selftests/nolibc: condition some tests on /proc existence
        selftests/nolibc: recreate and populate /dev and /proc if missing
        selftests/nolibc: on x86, support exiting with isa-debug-exit
        selftests/nolibc: exit with poweroff on success when getpid() == 1
        selftests/nolibc: add a few tests for some libc functions
        selftests/nolibc: implement a few tests for various syscalls
        selftests/nolibc: support a test definition format
        selftests/nolibc: add basic infrastructure to ease creation of nolibc tests
        tools/nolibc: make sys_mmap() automatically use the right __NR_mmap definition
        tools/nolibc: fix build warning in sys_mmap() when my_syscall6 is not defined
        tools/nolibc: make argc 32-bit in riscv startup code
      dda0ba40