1. 26 Apr, 2023 22 commits
    • Linus Torvalds's avatar
      Merge tag 'for-6.4/io_uring-2023-04-21' of git://git.kernel.dk/linux · 5b9a7bb7
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Cleanup of the io-wq per-node mapping, notably getting rid of it so
         we just have a single io_wq entry per ring (Breno)
      
       - Followup to the above, move accounting to io_wq as well and
         completely drop struct io_wqe (Gabriel)
      
       - Enable KASAN for the internal io_uring caches (Breno)
      
       - Add support for multishot timeouts. Some applications use timeouts to
         wake someone waiting on completion entries, and this makes it a bit
         easier to just have a recurring timer rather than needing to rearm it
         every time (David)
      
       - Support archs that have shared cache coloring between userspace and
         the kernel, and hence have strict address requirements for mmap'ing
         the ring into userspace. This should only be parisc/hppa. (Helge, me)
      
       - XFS has supported O_DIRECT writes without needing to lock the inode
         exclusively for a long time, and ext4 now supports it as well. This
         is true for the common cases of not extending the file size. Flag the
         fs as having that feature, and utilize that to avoid serializing
         those writes in io_uring (me)
      
       - Enable completion batching for uring commands (me)
      
       - Revert patch adding io_uring restriction to what can be GUP mapped or
         not. This does not belong in io_uring, as io_uring isn't really
         special in this regard. Since this is also getting in the way of
         cleanups and improvements to the GUP code, get rid of if (me)
      
       - A few series greatly reducing the complexity of registered resources,
         like buffers or files. Not only does this clean up the code a lot,
         the simplified code is also a LOT more efficient (Pavel)
      
       - Series optimizing how we wait for events and run task_work related to
         it (Pavel)
      
       - Fixes for file/buffer unregistration with DEFER_TASKRUN (Pavel)
      
       - Misc cleanups and improvements (Pavel, me)
      
      * tag 'for-6.4/io_uring-2023-04-21' of git://git.kernel.dk/linux: (71 commits)
        Revert "io_uring/rsrc: disallow multi-source reg buffers"
        io_uring: add support for multishot timeouts
        io_uring/rsrc: disassociate nodes and rsrc_data
        io_uring/rsrc: devirtualise rsrc put callbacks
        io_uring/rsrc: pass node to io_rsrc_put_work()
        io_uring/rsrc: inline io_rsrc_put_work()
        io_uring/rsrc: add empty flag in rsrc_node
        io_uring/rsrc: merge nodes and io_rsrc_put
        io_uring/rsrc: infer node from ctx on io_queue_rsrc_removal
        io_uring/rsrc: remove unused io_rsrc_node::llist
        io_uring/rsrc: refactor io_queue_rsrc_removal
        io_uring/rsrc: simplify single file node switching
        io_uring/rsrc: clean up __io_sqe_buffers_update()
        io_uring/rsrc: inline switch_start fast path
        io_uring/rsrc: remove rsrc_data refs
        io_uring/rsrc: fix DEFER_TASKRUN rsrc quiesce
        io_uring/rsrc: use wq for quiescing
        io_uring/rsrc: refactor io_rsrc_ref_quiesce
        io_uring/rsrc: remove io_rsrc_node::done
        io_uring/rsrc: use nospec'ed indexes
        ...
      5b9a7bb7
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 5c7ecada
      Linus Torvalds authored
      Pull f2fs update from Jaegeuk Kim:
       "In this round, we've mainly modified to support non-power-of-two zone
        size, which is not required for f2fs by design. In order to avoid arch
        dependency, we refactored the messy rb_entry structure shared across
        different extent_cache. In addition to the improvement, we've also
        fixed several subtle bugs and error cases.
      
        Enhancements:
         - support non-power-of-two zone size for zoned device
         - remove sharing the rb_entry structure in extent cache
         - refactor f2fs_gc to call checkpoint in urgent condition
         - support iopoll
      
        Bug fixes:
         - fix potential corruption when moving a directory
         - fix to avoid use-after-free for cached IPU bio
         - fix the folio private usage
         - avoid kernel warnings or panics in the cp_error case
         - fix to recover quota data correctly
         - fix some bugs in atomic operations
         - fix system crash due to lack of free space in LFS
         - fix null pointer panic in tracepoint in __replace_atomic_write_block
         - fix iostat lock protection
         - fix scheduling while atomic in decompression path
         - preserve direct write semantics when buffering is forced
         - fix to call f2fs_wait_on_page_writeback() in f2fs_write_raw_pages()"
      
      * tag 'f2fs-for-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (52 commits)
        f2fs: remove unnessary comment in __may_age_extent_tree
        f2fs: allocate node blocks for atomic write block replacement
        f2fs: use cow inode data when updating atomic write
        f2fs: remove power-of-two limitation of zoned device
        f2fs: allocate trace path buffer from names_cache
        f2fs: add has_enough_free_secs()
        f2fs: relax sanity check if checkpoint is corrupted
        f2fs: refactor f2fs_gc to call checkpoint in urgent condition
        f2fs: remove folio_detach_private() in .invalidate_folio and .release_folio
        f2fs: remove bulk remove_proc_entry() and unnecessary kobject_del()
        f2fs: support iopoll method
        f2fs: remove batched_trim_sections node description
        f2fs: fix to check return value of inc_valid_block_count()
        f2fs: fix to check return value of f2fs_do_truncate_blocks()
        f2fs: fix passing relative address when discard zones
        f2fs: fix potential corruption when moving a directory
        f2fs: add radix_tree_preload_end in error case
        f2fs: fix to recover quota data correctly
        f2fs: fix to check readonly condition correctly
        docs: f2fs: Correct instruction to disable checkpoint
        ...
      5c7ecada
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · fbfaf03e
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - Remove some unused features (related to lock timeouts) that have been
         previously scheduled for removal
      
       - Fix a bug where the pending callback flag would be incorrectly
         cleared, which could potentially result in missing a completion
         callback
      
       - Use an unbound workqueue for dlm socket handling so that socket
         operations can be processed with less delay
      
       - Fix possible lockspace join connection errors with large clusters
         (e.g. over 16 nodes) caused by a small socket backlog setting
      
       - Use atomic bit ops for internal flags to help avoid mistakes copying
         flag values from messages
      
       - Fix recently introduced bug where memory for lvb data could be
         unnecessarily allocated for a lock
      
      * tag 'dlm-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        fs: dlm: stop unnecessarily filling zero ms_extra bytes
        fs: dlm: switch lkb_sbflags to atomic ops
        fs: dlm: rsb hash table flag value to atomic ops
        fs: dlm: move internal flags to atomic ops
        fs: dlm: change dflags to use atomic bits
        fs: dlm: store lkb distributed flags into own value
        fs: dlm: remove DLM_IFL_LOCAL_MS flag
        fs: dlm: rename stub to local message flag
        fs: dlm: remove deprecated code parts
        DLM: increase socket backlog to avoid hangs with 16 nodes
        fs: dlm: add unbound flag to dlm_io workqueue
        fs: dlm: fix DLM_IFL_CB_PENDING gets overwritten
      fbfaf03e
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v6.3-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · e0fcc9c6
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Fix revoke processing at unmount and on read-only remount
      
       - Refuse reading in inodes with an impossible indirect block height
      
       - Various minor cleanups
      
      * tag 'gfs2-v6.3-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: gfs2_ail_empty_gl no log flush on error
        gfs2: Issue message when revokes cannot be written
        gfs2: Perform second log flush in gfs2_make_fs_ro
        gfs2: return errors from gfs2_ail_empty_gl
        gfs2: Move variable assignment behind a null pointer check in inode_go_dump
        gfs2: Use gfs2_holder_initialized for jindex
        gfs2: Eliminate gfs2_trim_blocks
        gfs2: Fix inode height consistency check
        gfs2: Remove ghs[] from gfs2_unlink
        gfs2: Remove ghs[] from gfs2_link
        gfs2: Remove duplicate i_nlink check from gfs2_link()
      e0fcc9c6
    • Linus Torvalds's avatar
      Merge tag 'for-6.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 85d7ab24
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "Mostly core changes and cleanups, some notable fixes and two
        performance improvements in directory logging.
      
        The IO path cleanups are removing or refactoring old code, scrub main
        loop has been completely rewritten also refactoring old code.
      
        There are some changes to non-btrfs code, mostly trivial, the cgroup
        punt bio logic is only moved from generic code.
      
        Performance improvements:
      
         - improve logging changes in a directory during one transaction,
           avoid iterating over items and reduce lock contention (fsync time
           4x lower)
      
         - when logging directory entries during one transaction, reduce
           locking of subvolume trees by checking tree-log instead
           (improvement in throughput and latency for concurrent access to a
           subvolume)
      
        Notable fixes:
      
         - dev-replace:
            - properly honor read mode when requested to avoid reading from
              source device
            - target device won't be used for eventual read repair, this is
              unreliable for NODATASUM files
            - when there are unpaired (and unrepairable) metadata during
              replace, exit early with error and don't try to finish whole
              operation
      
         - scrub ioctl properly rejects unknown flags
      
         - fix global block reserve calculations
      
         - fix partial direct io write when there's a page fault in the
           middle, iomap will try to continue with partial request but the
           btrfs part did not match that, this can lead to zeros written
           instead of data
      
        Core changes:
      
         - io path:
            - continued cleanups and refactoring around bio handling
            - extent io submit path simplifications and cleanups
            - flush write path simplifications and cleanups
            - rework logic of passing sync mode of bio, with further cleanups
      
         - rewrite scrub code flow, restructure how the stripes are enumerated
           and verified in a more unified way
      
         - allow to set lower threshold for block group reclaim in debug mode
           to aid zoned mode testing
      
         - remove obsolete time-based delayed ref throttling logic when
           truncating items
      
         - DREW locks are not using percpu variables anymore
      
         - more warning fixes (-Wmaybe-uninitialized)
      
         - u64 division simplifications
      
         - error handling improvements
      
        Non-btrfs code changes:
      
         - push cgroup punt bio logic to btrfs code (there was no other user
           of that), the functionality can be now selected separately by
           BLK_CGROUP_PUNT_BIO
      
         - crc32c_impl removed after removing last uses in btrfs code
      
         - add btrfs_assertfail() to objtool table"
      
      * tag 'for-6.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (147 commits)
        btrfs: mark btrfs_assertfail() __noreturn
        btrfs: fix uninitialized variable warnings
        btrfs: use log root when iterating over index keys when logging directory
        btrfs: avoid iterating over all indexes when logging directory
        btrfs: dev-replace: error out if we have unrepaired metadata error during
        btrfs: remove pointless loop at btrfs_get_next_valid_item()
        btrfs: scrub: reject unsupported scrub flags
        btrfs: reinterpret async discard iops_limit=0 as no delay
        btrfs: set default discard iops_limit to 1000
        btrfs: remove unused raid56 functions which were dedicated for scrub
        btrfs: scrub: remove scrub_bio structure
        btrfs: scrub: remove scrub_block and scrub_sector structures
        btrfs: scrub: remove the old scrub recheck code
        btrfs: scrub: remove the old writeback infrastructure
        btrfs: scrub: remove scrub_parity structure
        btrfs: scrub: use scrub_stripe to implement RAID56 P/Q scrub
        btrfs: scrub: switch scrub_simple_mirror() to scrub_stripe infrastructure
        btrfs: scrub: introduce helper to queue a stripe for scrub
        btrfs: scrub: introduce error reporting functionality for scrub_stripe
        btrfs: scrub: introduce a writeback helper for scrub_stripe
        ...
      85d7ab24
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 94fc0792
      Linus Torvalds authored
      Pull ext2, reiserfs, udf, and quota updates from Jan Kara:
       "A couple of small fixes and cleanups for ext2, udf, reiserfs, and
        quota.
      
        The biggest change is making CONFIG_PRINT_QUOTA_WARNING depend on
        BROKEN with an outlook for removing it completely in an year or so"
      
      * tag 'fs_for_v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        quota: mark PRINT_QUOTA_WARNING as BROKEN
        quota: update Kconfig comment
        reiserfs: remove unused iter variable
        quota: Use register_sysctl_init() for registering fs_dqstats_table
        reiserfs: remove unused sched_count variable
        ext2: remove redundant assignment to pointer end
        quota: make dquot_set_dqinfo return errors from ->write_info
        quota: fixup *_write_file_info() to return proper error code
        quota: simplify two-level sysctl registration for fs_dqstats_table
        udf: use wrapper i_blocksize() in udf_discard_prealloc()
        udf: Use folios in udf_adinicb_writepage()
        ext2: Check block size validity during mount
        ext2: Correct maximum ext2 filesystem block size
      94fc0792
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 0cfcde1f
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "There are a number of major cleanups in ext4 this cycle:
      
         - The data=journal writepath has been significantly cleaned up and
           simplified, and reduces a large number of data=journal special
           cases by Jan Kara.
      
         - Ojaswin Muhoo has replaced linked list used to track extents that
           have been used for inode preallocation with a red-black tree in the
           multi-block allocator. This improves performance for workloads
           which do a large number of random allocating writes.
      
         - Thanks to Kemeng Shi for a lot of cleanup and bug fixes in the
           multi-block allocator.
      
         - Matthew wilcox has converted the code paths for reading and writing
           ext4 pages to use folios.
      
         - Jason Yan has continued to factor out ext4_fill_super() into
           smaller functions for improve ease of maintenance and
           comprehension.
      
         - Josh Triplett has created an uapi header for ext4 userspace API's"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (105 commits)
        ext4: Add a uapi header for ext4 userspace APIs
        ext4: remove useless conditional branch code
        ext4: remove unneeded check of nr_to_submit
        ext4: move dax and encrypt checking into ext4_check_feature_compatibility()
        ext4: factor out ext4_block_group_meta_init()
        ext4: move s_reserved_gdt_blocks and addressable checking into ext4_check_geometry()
        ext4: rename two functions with 'check'
        ext4: factor out ext4_flex_groups_free()
        ext4: use ext4_group_desc_free() in ext4_put_super() to save some duplicated code
        ext4: factor out ext4_percpu_param_init() and ext4_percpu_param_destroy()
        ext4: factor out ext4_hash_info_init()
        Revert "ext4: Fix warnings when freezing filesystem with journaled data"
        ext4: Update comment in mpage_prepare_extent_to_map()
        ext4: Simplify handling of journalled data in ext4_bmap()
        ext4: Drop special handling of journalled data from ext4_quota_on()
        ext4: Drop special handling of journalled data from ext4_evict_inode()
        ext4: Fix special handling of journalled data from extent zeroing
        ext4: Drop special handling of journalled data from extent shifting operations
        ext4: Drop special handling of journalled data from ext4_sync_file()
        ext4: Commit transaction before writing back pages in data=journal mode
        ...
      0cfcde1f
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux · c3558a6b
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Several cleanups and fixes for fs/verity/, including a couple minor
        fixes to the changes in 6.3 that added support for Merkle tree block
        sizes less than the page size"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
        fsverity: reject FS_IOC_ENABLE_VERITY on mode 3 fds
        fsverity: explicitly check for buffer overflow in build_merkle_tree()
        fsverity: use WARN_ON_ONCE instead of WARN_ON
        fs-verity: simplify sysctls with register_sysctl()
        fs/buffer.c: use b_folio for fsverity work
      c3558a6b
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux · dbe0e78d
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "A few cleanups for fs/crypto/, and another patch to prepare for the
        upcoming CephFS encryption support"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
        fscrypt: optimize fscrypt_initialize()
        fscrypt: use WARN_ON_ONCE instead of WARN_ON
        fscrypt: new helper function - fscrypt_prepare_lookup_partial()
        fs/buffer.c: use b_folio for fscrypt work
      dbe0e78d
    • Linus Torvalds's avatar
      Merge tag 'v6.4-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 733f7e9c
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Total usage stats now include all that returned errors (instead of
           just some)
         - Remove maximum hash statesize limit
         - Add cloning support for hmac and unkeyed hashes
         - Demote BUG_ON in crypto_unregister_alg to a WARN_ON
      
        Algorithms:
         - Use RIP-relative addressing on x86 to prepare for PIE build
         - Add accelerated AES/GCM stitched implementation on powerpc P10
         - Add some test vectors for cmac(camellia)
         - Remove failure case where jent is unavailable outside of FIPS mode
           in drbg
         - Add permanent and intermittent health error checks in jitter RNG
      
        Drivers:
         - Add support for 402xx devices in qat
         - Add support for HiSTB TRNG
         - Fix hash concurrency issues in stm32
         - Add OP-TEE firmware support in caam"
      
      * tag 'v6.4-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (139 commits)
        i2c: designware: Add doorbell support for Mendocino
        i2c: designware: Use PCI PSP driver for communication
        powerpc: Move Power10 feature PPC_MODULE_FEATURE_P10
        crypto: p10-aes-gcm - Remove POWER10_CPU dependency
        crypto: testmgr - Add some test vectors for cmac(camellia)
        crypto: cryptd - Add support for cloning hashes
        crypto: cryptd - Convert hash to use modern init_tfm/exit_tfm
        crypto: hmac - Add support for cloning
        crypto: hash - Add crypto_clone_ahash/shash
        crypto: api - Add crypto_clone_tfm
        crypto: api - Add crypto_tfm_get
        crypto: x86/sha - Use local .L symbols for code
        crypto: x86/crc32 - Use local .L symbols for code
        crypto: x86/aesni - Use local .L symbols for code
        crypto: x86/sha256 - Use RIP-relative addressing
        crypto: x86/ghash - Use RIP-relative addressing
        crypto: x86/des3 - Use RIP-relative addressing
        crypto: x86/crc32c - Use RIP-relative addressing
        crypto: x86/cast6 - Use RIP-relative addressing
        crypto: x86/cast5 - Use RIP-relative addressing
        ...
      733f7e9c
    • Linus Torvalds's avatar
      Merge tag 'flex-array-transformations-6.4-rc1' of... · 98f99e67
      Linus Torvalds authored
      Merge tag 'flex-array-transformations-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull flexible-array updates from Gustavo Silva:
       "Transform more zero-length and one-element arrays into C99
        flexible-array members"
      
      * tag 'flex-array-transformations-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        uapi: net: ipv6: Replace fake flex-array with flex-array member
        drm/vmwgfx: Replace one-element array with flexible-array member
        ASoC: uapi: Replace zero-length arrays with __DECLARE_FLEX_ARRAY() helper
      98f99e67
    • Linus Torvalds's avatar
      Merge tag 'pm-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0cfd8703
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These update several cpufreq drivers and the cpufreq core, add sysfs
        interface for exposing the time really spent in the platform low-power
        state during suspend-to-idle, update devfreq (core and drivers) and
        the pm-graph suite of tools and clean up code.
      
        Specifics:
      
         - Fix the frequency unit in cpufreq_verify_current_freq checks()
           Sanjay Chandrashekara)
      
         - Make mode_state_machine in amd-pstate static (Tom Rix)
      
         - Make the cpufreq core require drivers with target_index() to set
           freq_table (Viresh Kumar)
      
         - Fix typo in the ARM_BRCMSTB_AVS_CPUFREQ Kconfig entry (Jingyu Wang)
      
         - Use of_property_read_bool() for boolean properties in the pmac32
           cpufreq driver (Rob Herring)
      
         - Make the cpufreq sysfs interface return proper error codes on
           obviously invalid input (qinyu)
      
         - Add guided autonomous mode support to the AMD P-state driver (Wyes
           Karny)
      
         - Make the Intel P-state driver enable HWP IO boost on all server
           platforms (Srinivas Pandruvada)
      
         - Add opp and bandwidth support to tegra194 cpufreq driver (Sumit
           Gupta)
      
         - Use of_property_present() for testing DT property presence (Rob
           Herring)
      
         - Remove MODULE_LICENSE in non-modules (Nick Alcock)
      
         - Add SM7225 to cpufreq-dt-platdev blocklist (Luca Weiss)
      
         - Optimizations and fixes for qcom-cpufreq-hw driver (Krzysztof
           Kozlowski, Konrad Dybcio, and Bjorn Andersson)
      
         - DT binding updates for qcom-cpufreq-hw driver (Konrad Dybcio and
           Bartosz Golaszewski)
      
         - Updates and fixes for mediatek driver (Jia-Wei Chang and
           AngeloGioacchino Del Regno)
      
         - Use of_property_present() for testing DT property presence in the
           cpuidle code (Rob Herring)
      
         - Drop unnecessary (void *) conversions from the PM core (Li zeming)
      
         - Add sysfs files to represent time spent in a platform sleep state
           during suspend-to-idle and make AMD and Intel PMC drivers use them
           Mario Limonciello)
      
         - Use of_property_present() for testing DT property presence (Rob
           Herring)
      
         - Add set_required_opps() callback to the 'struct opp_table', to make
           the code paths cleaner (Viresh Kumar)
      
         - Update the pm-graph siute of utilities to v5.11 with the following
           changes:
             * New script which allows users to install the latest pm-graph
               from the upstream github repo.
             * Update all the dmesg suspend/resume PM print formats to be able
               to process recent timelines using dmesg only.
             * Add ethtool output to the log for the system's ethernet device
               if ethtool exists.
             * Make the tool more robustly handle events where mangled dmesg
               or ftrace outputs do not include all the requisite data.
      
         - Make the sleepgraph utility recognize "CPU killed" messages (Xueqin
           Luo)
      
         - Remove unneeded SRCU selection in Kconfig because it's always set
           from devfreq core (Paul E. McKenney)
      
         - Drop of_match_ptr() macro from exynos-bus.c because this driver is
           always using the DT table for driver probe (Krzysztof Kozlowski)
      
         - Use the preferred of_property_present() instead of the low-level
           of_get_property() on exynos-bus.c (Rob Herring)
      
         - Use devm_platform_get_and_ioream_resource() in exyno-ppmu.c (Yang
           Li)"
      
      * tag 'pm-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (44 commits)
        platform/x86/intel/pmc: core: Report duration of time in HW sleep state
        platform/x86/intel/pmc: core: Always capture counters on suspend
        platform/x86/amd: pmc: Report duration of time in hw sleep state
        PM: Add sysfs files to represent time spent in hardware sleep state
        cpufreq: use correct unit when verify cur freq
        cpufreq: tegra194: add OPP support and set bandwidth
        cpufreq: amd-pstate: Make varaiable mode_state_machine static
        PM: core: Remove unnecessary (void *) conversions
        cpufreq: drivers with target_index() must set freq_table
        PM / devfreq: exynos-ppmu: Use devm_platform_get_and_ioremap_resource()
        OPP: Move required opps configuration to specialized callback
        OPP: Handle all genpd cases together in _set_required_opps()
        cpufreq: qcom-cpufreq-hw: Revert adding cpufreq qos
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add QCM2290
        dt-bindings: cpufreq: cpufreq-qcom-hw: Sanitize data per compatible
        dt-bindings: cpufreq: cpufreq-qcom-hw: Allow just 1 frequency domain
        cpufreq: Add SM7225 to cpufreq-dt-platdev blocklist
        cpufreq: qcom-cpufreq-hw: fix double IO unmap and resource release on exit
        cpufreq: mediatek: Raise proc and sram max voltage for MT7622/7623
        cpufreq: mediatek: raise proc/sram max voltage for MT8516
        ...
      0cfd8703
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 793582ff
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to upstream revision
        20230331, fix the ACPI SBS driver and the evaluation of the _PDC
        method on Xen dom0 in the ACPI processor driver, update the ACPI
        driver for Intel SoCs and clean up code in multiple places.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20230331
           including the following changes:
             * Delete bogus node_array array of pointers from AEST table
               (Jessica Clarke)
             * Add support for trace buffer extension in GICC to the ACPI MADT
               parser (Xiongfeng Wang)
             * Add missing macro ACPI_FUNCTION_TRACE() for
               acpi_ns_repair_HID() (Xiongfeng Wang)
             * Add missing tables to astable (Pedro Falcato)
             * Add support for 64 bit loong_arch compilation to ACPICA (Huacai
               Chen)
             * Add support for ASPT table in disassembler to ACPICA (Jeremi
               Piotrowski)
             * Add support for Arm's MPAM ACPI table version 2 (Hesham
               Almatary)
             * Update all copyrights/signons in ACPICA to 2023 (Bob Moore)
             * Add support for ClockInput resource (v6.5) (Niyas Sait)
             * Add RISC-V INTC interrupt controller definition to the list of
               supported interrupt controllers for MADT (Sunil V L)
             * Add structure definitions for the RISC-V RHCT ACPI table (Sunil
               V L)
             * Address several cases in which the ACPICA code might lead to
               undefined behavior (Tamir Duberstein)
             * Make ACPICA code support flexible arrays properly (Kees Cook)
             * Check null return of ACPI_ALLOCATE_ZEROED in
               acpi_db_display_objects() (void0red)
             * Add os specific support for Zephyr RTOS to ACPICA (Najumon)
             * Update version to 20230331 (Bob Moore)
      
         - Fix evaluating the _PDC ACPI control method when running as Xen
           dom0 (Roger Pau Monne)
      
         - Use platform devices to load ACPI PPC and PCC drivers (Petr Pavlu)
      
         - Check for null return of devm_kzalloc() in fch_misc_setup() (Kang
           Chen)
      
         - Log a message if enable_irq_wake() fails for the ACPI SCI (Simon
           Gaiser)
      
         - Initialize the correct IOMMU fwspec while parsing ACPI VIOT
           (Jean-Philippe Brucker)
      
         - Amend indentation and prefix error messages with FW_BUG in the ACPI
           SPCR parsing code (Andy Shevchenko)
      
         - Enable ACPI sysfs support for CCEL records (Kuppuswamy
           Sathyanarayanan)
      
         - Make the APEI error injection code warn on invalid arguments when
           explicitly indicated by platform (Shuai Xue)
      
         - Add CXL error types to the error injection code in APEI (Tony Luck)
      
         - Refactor acpi_data_prop_read_single() (Andy Shevchenko)
      
         - Fix two issues in the ACPI SBS driver (Armin Wolf)
      
         - Replace ternary operator with min_t() in the generic ACPI thermal
           zone driver (Jiangshan Yi)
      
         - Ensure that ACPI notify handlers are not running after removal and
           clean up code in acpi_sb_notify() (Rafael Wysocki)
      
         - Remove register_backlight_delay module option and code and remove
           quirks for false-positive backlight control support advertised on
           desktop boards (Hans de Goede)
      
         - Replace irqdomain.h include with struct declarations in ACPI
           headers and update several pieces of code previously including of.h
           implicitly through those headers (Rob Herring)
      
         - Fix acpi_evaluate_dsm_typed() redefinition error (Kiran K)
      
         - Update the pm_profile sysfs attribute documentation (Rafael
           Wysocki)
      
         - Add 80862289 ACPI _HID for second PWM controller on Cherry Trail to
           the ACPI driver for Intel SoCs (Hans de Goede)"
      
      * tag 'acpi-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits)
        ACPI: LPSS: Add 80862289 ACPI _HID for second PWM controller on Cherry Trail
        ACPI: bus: Ensure that notify handlers are not running after removal
        ACPI: bus: Add missing braces to acpi_sb_notify()
        ACPI: video: Remove desktops without backlight DMI quirks
        ACPI: video: Remove register_backlight_delay module option and code
        ACPI: Replace irqdomain.h include with struct declarations
        fpga: lattice-sysconfig-spi: Add explicit include for of.h
        tpm: atmel: Add explicit include for of.h
        virtio-mmio: Add explicit include for of.h
        pata: ixp4xx: Add explicit include for of.h
        ata: pata_macio: Add explicit include of irqdomain.h
        serial: 8250_tegra: Add explicit include for of.h
        net: rfkill-gpio: Add explicit include for of.h
        staging: iio: resolver: ad2s1210: Add explicit include for of.h
        iio: adc: ad7292: Add explicit include for of.h
        ACPICA: Update version to 20230331
        ACPICA: add os specific support for Zephyr RTOS
        ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects
        ACPICA: acpi_resource_irq: Replace 1-element arrays with flexible array
        ACPICA: acpi_madt_oem_data: Fix flexible array member definition
        ...
      793582ff
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5e0ca0bf
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These mostly continue to prepare the thermal control subsystem for
        using unified representation of trip points, which includes cleanups,
        code refactoring and similar and update several drivers (for other
        reasons), which includes new hardware support.
      
        Specifics:
      
         - Add a thermal zone 'devdata' accessor and modify several drivers to
           use it (Daniel Lezcano)
      
         - Prevent drivers from using the 'device' internal thermal zone
           structure field directly (Daniel Lezcano)
      
         - Clean up the hwmon thermal driver (Daniel Lezcano)
      
         - Add thermal zone id accessor and thermal zone type accessor and
           prevent drivers from using thermal zone fields directly (Daniel
           Lezcano)
      
         - Clean up the acerhdf and tegra thermal drivers (Daniel Lezcano)
      
         - Add lower bound check for sysfs input to the x86_pkg_temp_thermal
           Intel thermal driver (Zhang Rui)
      
         - Add more thermal zone device encapsulation: prevent setting
           structure field directly, access the sensor device instead the
           thermal zone's device for trace, relocate the traces in
           drivers/thermal (Daniel Lezcano)
      
         - Use the generic trip point for the i.MX and remove the
           get_trip_temp ops (Daniel Lezcano)
      
         - Use the devm_platform_ioremap_resource() in the Hisilicon driver
           (Yang Li)
      
         - Remove R-Car H3 ES1.* handling as public has only access to the ES2
           version and the upstream support for the ES1 has been shutdown
           (Wolfram Sang)
      
         - Add a delay after initializing the bank in order to let the time to
           the hardware to initialze itself before reading the temperature
           (Amjad Ouled-Ameur)
      
         - Add MT8365 support (Amjad Ouled-Ameur)
      
         - Preparational cleanup and DT bindings for RK3588 support (Sebastian
           Reichel)
      
         - Add driver support for RK3588 (Finley Xiao)
      
         - Use devm_reset_control_array_get_exclusive() for the Rockchip
           driver (Ye Xingchen)
      
         - Detect power gated thermal zones and return -EAGAIN when reading
           the temperature (Mikko Perttunen)
      
         - Remove thermal_bind_params structure as it is unused (Zhang Rui)
      
         - Drop unneeded quotes in DT bindings allowing to run yamllint (Rob
           Herring)
      
         - Update the power allocator documentation according to the thermal
           trace relocation (Lukas Bulwahn)
      
         - Fix sensor 1 interrupt status bitmask for the Mediatek LVTS sensor
           (Chen-Yu Tsai)
      
         - Use the dev_err_probe() helper in the Amlogic driver (Ye Xingchen)
      
         - Add AP domain support to LVTS thermal controllers for mt8195
           (Balsam CHIHI)
      
         - Remove buggy call to thermal_of_zone_unregister() (Daniel Lezcano)
      
         - Make thermal_of_zone_[un]register() private to the thermal OF code
           (Daniel Lezcano)
      
         - Create a private copy of the thermal zone device parameters
           structure when registering a thermal zone (Daniel Lezcano)
      
         - Fix a kernel NULL pointer dereference in thermal_hwmon (Zhang Rui)
      
         - Revert recent message adjustment in thermal_hwmon (Rafael Wysocki)
      
         - Use of_property_present() for testing DT property presence in
           thermal control code (Rob Herring)
      
         - Clean up thermal_list_lock locking in the thermal core (Rafael
           Wysocki)
      
         - Add DLVR support for RFIM control in the int340x Intel thermal
           driver (Srinivas Pandruvada)"
      
      * tag 'thermal-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (55 commits)
        thermal: intel: int340x: Add DLVR support for RFIM control
        thermal/core: Alloc-copy-free the thermal zone parameters structure
        thermal/of: Unexport unused OF functions
        thermal/drivers/bcm2835: Remove buggy call to thermal_of_zone_unregister
        thermal/drivers/mediatek/lvts_thermal: Add AP domain for mt8195
        dt-bindings: thermal: mediatek: Add AP domain to LVTS thermal controllers for mt8195
        thermal: amlogic: Use dev_err_probe()
        thermal/drivers/mediatek/lvts_thermal: Fix sensor 1 interrupt status bitmask
        MAINTAINERS: adjust entry in THERMAL/POWER_ALLOCATOR after header movement
        dt-bindings: thermal: Drop unneeded quotes
        thermal/core: Remove thermal_bind_params structure
        thermal/drivers/tegra-bpmp: Handle offline zones
        thermal/drivers/rockchip: use devm_reset_control_array_get_exclusive()
        dt-bindings: rockchip-thermal: Support the RK3588 SoC compatible
        thermal/drivers/rockchip: Support RK3588 SoC in the thermal driver
        thermal/drivers/rockchip: Support dynamic sized sensor array
        thermal/drivers/rockchip: Simplify channel id logic
        thermal/drivers/rockchip: Use dev_err_probe
        thermal/drivers/rockchip: Simplify clock logic
        thermal/drivers/rockchip: Simplify getting match data
        ...
      5e0ca0bf
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 4173cf6f
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers
      
         - Driver for Acbel FSB032 power supply
      
         - Driver for StarFive JH71x0 temperature sensor
      
        Added support to existing drivers:
      
         - aquacomputer_d5next: Support for Aquacomputer Aquastream XT
      
         - nct6775: Added various ASUS boards to list of boards supporting WMI
      
         - asus-ec-sensors: ROG STRIX Z390-F GAMING, ProArt B550-Creator,
      
        Notable improvements:
      
         - Regulator event and sysfs notification support for PMBus drivers
      
        Notable cleanup:
      
         - Constified pointers to hwmon_channel_info
      
        .. and various other minor bug fixes and improvements"
      
      * tag 'hwmon-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (131 commits)
        hwmon: lochnagar: Remove the unneeded include <linux/i2c.h>
        hwmon: (pmbus/fsp-3y) Fix functionality bitmask in FSP-3Y YM-2151E
        hwmon: (adt7475) Use device_property APIs when configuring polarity
        hwmon: (aquacomputer_d5next) Add support for Aquacomputer Aquastream XT
        hwmon: (it87) Disable/enable SMBus access for IT8622E chipset
        hwmon: (it87) Add calls to smbus_enable/smbus_disable as required
        hwmon: (it87) Test for error in it87_update_device
        hwmon: (it87) Disable SMBus access for environmental controller registers.
        docs: hwmon: Add documentaion for acbel-fsg032 PSU
        hwmon: (pmbus/acbel-fsg032) Add Acbel power supply
        dt-bindings: trivial-devices: Add acbel,fsg032
        dt-bindings: vendor-prefixes: Add prefix for acbel
        hwmon: (sfctemp) Simplify error message
        hwmon: (pmbus/ibm-cffps) Use default debugfs attributes and lock function
        hwmon: (pmbus/core) Add lock and unlock functions
        hwmon: (pmbus/core) Request threaded interrupt with IRQF_ONESHOT
        hwmon: (nct6775) update ASUS WMI monitoring list A620/B760/W790
        hwmon: ina2xx: add optional regulator support
        dt-bindings: hwmon: ina2xx: add supply property
        dt-bindings: hwmon: pwm-fan: Convert to DT schema
        ...
      4173cf6f
    • Linus Torvalds's avatar
      Merge tag 'rproc-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 3361e9a4
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
      
       - Unnecessary type casts from the 'void *' rproc->priv pointer are
         dropped throughout the subsystem.
      
       - A kernel-doc error is corrected in the Mediatek SCPI IPI
         implementation
      
       - The firmware loading onto the IMX DSP remote processors is reworked
         to avoid non-32bit memory operations. A module parameter is
         introduced to assist development of firmware without communication
         abilities in place. Error paths in imx_dsp_rproc_mbox_alloc() is
         cleaned up
      
       - The cluster configuration handling in the TI K3 R5 driver is
         corrected and support for the single-R5 core found in the TI AM62x
         SoC family is introduced
      
       - The TI PRU driver device- to virtual-address translation is updated
         to avoid compiler warning about the unsigned device-address always
         being larger than 0
      
       - The ST remoteproc driver is transitioned to use of_property_present()
      
       - Issues with kicks arriving after the STM32 remote processor has been
         shut down are mitigated by checking the processor's state before
         handling them.
      
       - Support for mailbox channels for communication with the remote
         processors are added to the Xilinx R5 remoteproc driver. The naming
         of carveouts are corrected and their parsing is reworked. For this a
         couple of fixes targeting the mailbox subsystem are picked up here as
         well.
      
       - Reference counting of of_nodes are corrected in the ST, STM32, RCAR
         and IMX remoteproc drivers
      
      * tag 'rproc-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (24 commits)
        remoteproc: st: Use of_property_present() for testing DT property presence
        dt-bindings: remoteproc: Drop unneeded quotes
        remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning
        remoteproc: imx_dsp_rproc: Improve exception handling in imx_dsp_rproc_mbox_alloc()
        remoteproc: pru: Remove always true check positive unsigned value
        dt-bindings: remoteproc: stm32-rproc: Typo fix
        remoteproc: stm32_rproc: Add mutex protection for workqueue
        remoteproc: Remove unnecessary (void*) conversions
        remoteproc: imx_dsp_rproc: Call of_node_put() on iteration error
        remoteproc: imx_rproc: Call of_node_put() on iteration error
        remoteproc: rcar_rproc: Call of_node_put() on iteration error
        remoteproc: st: Call of_node_put() on iteration error
        remoteproc: stm32: Call of_node_put() on iteration error
        remoteproc: k3-r5: Use separate compatible string for TI AM62x SoC family
        dt-bindings: remoteproc: ti: Add new compatible for AM62 SoC family
        remoteproc: k3-r5: Simplify cluster mode setting usage
        remoteproc/mtk_scpi_ipi: Fix one kernel-doc comment
        remoteproc: xilinx: Add mailbox channels for rpmsg
        drivers: remoteproc: xilinx: Fix carveout names
        mailbox: zynqmp: Fix typo in IPI documentation
        ...
      3361e9a4
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · fe89e9b1
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "The remove functions of the Qualcomm SMD and GLINK RPM platform
        drivers are transitioned to the new void returning prototype. Likewise
        is qcom_smd_unregister_edge() transitioned to void, as it
        unconditionally returned 0.
      
        An assumption about the ordering of the intent request acknowledgement
        and advertisement of a new intent in the GLINK implementation is
        corrected. Faulty error handling is corrected is improved in the TX
        path, and duplicated code, in the same path, is cleaned up"
      
      * tag 'rpmsg-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        rpmsg: glink: Consolidate TX_DATA and TX_DATA_CONT
        rpmsg: glink: Propagate TX failures in intentless mode as well
        rpmsg: glink: Wait for intent, not just request ack
        rpmsg: glink: Transition intent request signaling to wait queue
        rpmsg: qcom_smd: Convert to platform remove callback returning void
        rpmsg: qcom_glink_rpm: Convert to platform remove callback returning void
        rpmsg: qcom_smd: Make qcom_smd_unregister_edge() return void
      fe89e9b1
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · c5c06e27
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Allow an invalid regulator in mmc_regulator_set_ocr()
         - Log about empty non-removable slots
         - Add helpers to enable/disable the vqmmc regulator
      
        MMC host:
         - mtk-sd: Add support for the mt8365 variant
         - renesas_sdhi: Remove support for R-Car H3 ES1.* variants
         - sdhci_am654: Add power management support
         - sdhci-cadence: Add support for eMMC hardware reset
         - sdhci-cadence: Add support for AMD Pensando Elba variant
         - sdhci-msm: Add support for the IPQ5018 variant
         - sdhci-msm: Add support for the QCM2290 variant
         - sdhci-of-arasan: Skip setting clock delay for 400KHz
         - sdhci-of-arasan: Add support for the Xilinx Versal Net variant
         - sdhci-of-arasan: Remove Intel Thunder Bay SOC support
         - sdhci-of-arasan: Add support to request the "gate" clock
         - sdhci-of-dwcmshc: Properly determine max clock on Rockchip
         - sdhci-of-esdhc: Fix quirk to ignore command inhibit for data
         - sdhci-pci-o2micro: Fix SDR50 mode timing issue
      
        MEMSTICK:
         - r592: Fix use-after-free bug in r592_remove due to race condition"
      
      * tag 'mmc-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (40 commits)
        dt-bindings: mmc: sdhci-msm: Document the IPQ5018 compatible
        mmc: vub300: remove unreachable code
        mmc: sdhci-cadence: Support mmc hardware reset
        mmc: sdhci-cadence: Add AMD Pensando Elba SoC support
        mmc: sdhci-cadence: Support device specific init during probe
        mmc: sdhci-cadence: Enable device specific override of writel()
        dt-bindings: mmc: cdns: Add AMD Pensando Elba SoC
        mmc: core: Remove unused macro mmc_req_rel_wr
        mmc: sdhci-of-arasan: Skip setting clock delay for 400KHz
        mmc: sdhci-of-arasan: Add support for eMMC5.1 on Xilinx Versal Net platform
        dt-bindings: mmc: arasan,sdci: Add Xilinx Versal Net compatible
        mmc: sdhci_am654: Add support for PM suspend/resume
        mmc: core: remove unnecessary (void*) conversions
        dt-bindings: mmc: fsl-imx-esdhc: ref sdhci-common.yaml
        mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
        mmc: core: Log about empty non-removable slots
        dt-bindings: mmc: fujitsu: Add Socionext Synquacer
        mmc: sdricoh_cs: remove unused sdricoh_readw function
        dt-bindings: mmc: Remove bindings for Intel Thunder Bay SoC"
        mmc: sdhci-of-arasan: Remove Intel Thunder Bay SOC support
        ...
      c5c06e27
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · eb8322d7
      Linus Torvalds authored
      Pull mtd updates from Miquel Raynal:
       "Core MTD changes:
         - dt-bindings: Drop unneeded quotes
         - mtdblock: Tolerate corrected bit-flips
         - Use of_property_read_bool() for boolean properties
         - Avoid magic values
         - Avoid printing error messages on probe deferrals
         - Prepare mtd_otp_nvmem_add() to handle -EPROBE_DEFER
         - Fix error path for nvmem provider
         - Fix nvmem error reporting
         - Provide unique name for nvmem device
      
        MTD device changes:
         - lpddr_cmds: Remove unused words variable
         - bcm63xxpart: Remove MODULE_LICENSE in non-modules
      
        SPI NOR core changes:
         - Introduce Read While Write support for flashes featuring several
           banks
         - Set the 4-Byte Address Mode method based on SFDP data
         - Allow post_sfdp hook to return errors
         - Parse SCCR MC table and introduce support for multi-chip devices
      
        SPI NOR manufacturer drivers changes:
         - macronix: Add support for mx25uw51245g with RWW
         - spansion:
            - Determine current address mode at runtime as it can be changed
              in a non-volatile way and differ from factory defaults or from
              what SFDP advertises.
            - Enable JFFS2 write buffer mode for few ECC'd NOR flashes:
              S25FS256T, s25hx and s28hx
            - Add support for s25hl02gt and s25hs02gt
      
        Raw NAND core changes:
         - Convert to platform remove callback returning void
         - Fix spelling mistake waifunc() -> waitfunc()
      
        Raw NAND controller driver changes:
         - imx: Remove unused is_imx51_nfc and imx53_nfc functions
         - omap2: Drop obsolete dependency on COMPILE_TEST
         - orion: Use devm_platform_ioremap_resource()
         - qcom:
            - Use of_property_present() for testing DT property presence
            - Use devm_platform_get_and_ioremap_resource()
         - stm32_fmc2: Depends on ARCH_STM32 instead of MACH_STM32MP157
         - tmio: Remove reference to config MTD_NAND_TMIO in the parsers
      
        Raw NAND manufacturer driver changes:
         - hynix: Fix up bit 0 of sdr_timing_mode
      
        SPI-NAND changes:
         - Add support for ESMT F50x1G41LB"
      
      * tag 'mtd/for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (55 commits)
        mtd: nand: Convert to platform remove callback returning void
        mtd: onenand: omap2: Drop obsolete dependency on COMPILE_TEST
        mtd: spi-nor: spansion: Add support for s25hl02gt and s25hs02gt
        mtd: spi-nor: spansion: Add a new ->ready() hook for multi-chip device
        mtd: spi-nor: spansion: Rework cypress_nor_quad_enable_volatile() for multi-chip device support
        mtd: spi-nor: spansion: Rework cypress_nor_get_page_size() for multi-chip device support
        mtd: spi-nor: sfdp: Add support for SCCR map for multi-chip device
        mtd: spi-nor: Extract volatile register offset from SCCR map
        mtd: spi-nor: Allow post_sfdp hook to return errors
        mtd: spi-nor: spansion: Rename method to cypress_nor_get_page_size
        mtd: spi-nor: spansion: Enable JFFS2 write buffer for S25FS256T
        mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s25hx SEMPER flash
        mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash
        mtd: spi-nor: spansion: Determine current address mode
        mtd: spi-nor: core: Introduce spi_nor_set_4byte_addr_mode()
        mtd: spi-nor: core: Update flash's current address mode when changing address mode
        mtd: spi-nor: Stop exporting spi_nor_restore()
        mtd: spi-nor: Set the 4-Byte Address Mode method based on SFDP data
        mtd: spi-nor: core: Make spi_nor_set_4byte_addr_mode_brwr public
        mtd: spi-nor: core: Update name and description of spi_nor_set_4byte_addr_mode
        ...
      eb8322d7
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 2c96606a
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "We have some new drivers, significant refactoring of existing intel
        platforms, lots of improvements all around, mass conversion to using
        immutable irqchips by drivers that had not been converted individually
        yet and some changes in the core library code.
      
        Summary:
      
        New drivers:
         - add a driver for the Loongson GPIO controller
         - add a driver for the fxl6408 I2C GPIO expander
         - add a GPIO module containing code common for Intel Elkhart Lake and
           Merrifield platforms
         - add a driver for the Intel Elkhart Lake platform reusing the code
           from the intel tangier library
      
        GPIOLIB core:
         - GPIO ACPI improvements
         - simplify gpiochip_add_data_with_keys() fwnode handling
         - cleanup header inclusions (remove unneeded ones, order the rest
           alphabetically)
         - remove duplicate code (reuse krealloc() instead of open-coding it,
           drop a duplicated check in gpiod_find_and_request())
         - reshuffle the code to remove unnecessary forward declarations
         - coding style cleanups and improvements
         - add a helper for accessing device fwnodes
         - small updates in docs
      
        Driver improvements:
         - convert all remaining GPIO irqchip drivers to using immutable
           irqchips
         - drop unnecessary of_match_ptr() macro expansions
         - shrink the code in gpio-merrifield significantly by reusing the
           code from gpio-tangier + minor tweaks to the driver code
         - remove MODULE_LICENSE() from drivers that can only be built-in
         - add device-tree support to gpio-loongson1
         - use new regmap features in gpio-104-dio-48e and gpio-pcie-idio-24
         - minor tweaks and fixes to gpio-xra1403, gpio-sim, gpio-tegra194,
           gpio-omap, gpio-aspeed, gpio-raspberrypi-exp
         - shrink code in gpio-ich and gpio-pxa
         - Kconfig tweak for gpio-pmic-eic-sprd"
      
      * tag 'gpio-updates-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (99 commits)
        gpio: gpiolib: Simplify gpiochip_add_data_with_key() fwnode
        gpiolib: Add gpiochip_set_data() helper
        gpiolib: Move gpiochip_get_data() higher in the code
        gpiolib: Check array_info for NULL only once in gpiod_get_array()
        gpiolib: Replace open coded krealloc()
        gpiolib: acpi: Add a ignore wakeup quirk for Clevo NL5xNU
        gpiolib: acpi: Move ACPI device NULL check to acpi_get_driver_gpio_data()
        gpiolib: acpi: use the fwnode in acpi_gpiochip_find()
        gpio: mm-lantiq: Fix typo in the newly added header filename
        sh: mach-x3proto: Add missing #include <linux/gpio/driver.h>
        powerpc/40x: Add missing select OF_GPIO_MM_GPIOCHIP
        gpio: xlp: Convert to immutable irq_chip
        gpio: xilinx: Convert to immutable irq_chip
        gpio: xgs-iproc: Convert to immutable irq_chip
        gpio: visconti: Convert to immutable irq_chip
        gpio: tqmx86: Convert to immutable irq_chip
        gpio: thunderx: Convert to immutable irq_chip
        gpio: stmpe: Convert to immutable irq_chip
        gpio: siox: Convert to immutable irq_chip
        gpio: rda: Convert to immutable irq_chip
        ...
      2c96606a
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d8495579
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A fairly quiet release, there were some cleanup and a couple of new
        devices but the biggest change was converting most of the drivers to
        use asynchronous probe. This allows us to ramp up multiple regulators
        in parallel during boot which can have a noticable impact on modern
        systems.
      
        Summary:
      
         - Update of drivers to PROBE_PREFER_ASYNCHRONOUS to mitigate issues
           with ramp times slowing down boots.
      
         - Convert to void remove callbacks.
      
         - Support for voltage monitoring on DA9063
      
         - Support for Qualcomm PMC8180 and PMM8654au, Richtek RT4803 and
           RT5739, Rockchip RK860x"
      
      * tag 'regulator-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (46 commits)
        regulator: dt-bindings: qcom,rpmh: Combine PM6150L and PM8150L if-then
        regulator: core: Make regulator_lock_two() logic easier to follow
        regulator: dt-bindings: qcom,rpmh: Correct PM8550 family supplies
        regulator: stm32-pwr: fix of_iomap leak
        dt-bindings: mfd: dlg,da9063: document voltage monitoring
        regulator: da9063: implement setter for voltage monitoring
        regulator: da9063: add voltage monitoring registers
        regulator: fan53555: Add support for RK860X
        regulator: fan53555: Use dev_err_probe
        regulator: fan53555: Improve vsel_mask computation
        regulator: fan53555: Make use of the bit macros
        regulator: fan53555: Remove unused *_SLEW_SHIFT definitions
        regulator: dt-bindings: fcs,fan53555: Add support for RK860X
        regulator: qcom_smd: Add MP5496 S1 regulator
        regulator: qcom_smd: Add s1 sub-node to mp5496 regulator
        regulator: qcom,rpmh: add compatible for pmm8654au RPMH
        regulator: qcom-rpmh: add support for pmm8654au regulators
        regulator: core: Avoid lockdep reports when resolving supplies
        regulator: core: Consistently set mutex_owner when using ww_mutex_lock_slow()
        regulator: dt-bindings: qcom,rpmh: Add compatible for PMC8180
        ...
      d8495579
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · f5468bec
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This is a much bigger change for regmap than is normal, the main
        things being the addition of some KUnit coverage and a maple tree
        based register cache which longer term is likely to replace the rbtree
        cache except possibly for very small register maps.
      
        While it's complete overkill for most applications the code for maple
        trees is there and there are some larger, sparser devices where the
        data structure is a better fit.
      
        The maple tree support is still a work in progress but already useful,
        there's some conversions of drivers ready to go after the merge
        window.
      
        Summary:
      
         - Support for shifting register addresses up as well as down, there's
           a use cases with memory mapped MDIO.
      
         - Refactoring of the type configuration in regmap-irq to allow access
           to driver data in the handler, needed by some GPIO devices.
      
         - Some initial KUnit coverage, the bulk of the driver facing API is
           covered but there's holes and things like the data marshalling for
           bytestream buses are just not covered in the slightest.
      
         - Removal of the compressed cache type, it had zero users and was
           getting in the way of KUnit.
      
         - Addition of a maple tree based register cache, there's more work to
           do but it's already useful for some devices with a flatter data
           structure than rbtree and getting to use all the optimisation work
           Liam is doing"
      
      * tag 'regmap-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: allow upshifting register addresses before performing operations
        regmap: Pass irq_drv_data as a parameter for set_type_config()
        regmap: Use mas_walk() instead of mas_find()
        regmap: Fix double unlock in the maple cache
        regmap: Add maple tree based register cache
        regmap: Factor out single value register syncing
        regmap: Add some basic kunit tests
        regmap: Add RAM backed register map
        regmap: Removed compressed cache support
        regmap: Support paging for buses with reg_read()/reg_write()
        regmap: Clarify error for unknown cache types
        regmap: Handle sparse caches in the default sync
        regmap: add a helper to translate the register address
        regmap: cache: Silence checkpatch warning
        regmap: cache: Return error in cache sync operations for REGCACHE_NONE
        regmap-irq: Place kernel doc of struct regmap_irq_chip in order
        regmap-irq: Add no_status support
        regmap: sdw: Remove 8-bit value size restriction
        regmap: sdw: Update misleading comment
      f5468bec
  2. 25 Apr, 2023 18 commits
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.4-1' of... · 088e0c18
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
      
       -  AMD PMC and PMF drivers:
          - Numerous bugfixes
      
       -  Intel Speed Select Technology (ISST):
          - TPMI (Topology Aware Register and PM Capsule Interface) support
            for ISST support on upcoming processor models
          - Various other improvements / new hw support
          - tools/intel-speed-select: TPMI support + other improvements
      
       -  Intel In Field Scan (IFS):
          - Add Array Bist test support
      
       -  New drivers:
          - intel_bytcrc_pwrsrc Crystal Cove PMIC pwrsrc / reset-reason driver
          - lenovo-ymc Yoga Mode Control driver for reporting SW_TABLET_MODE
          - msi-ec Driver for MSI laptop EC features like battery charging limits
      
       -  apple-gmux:
          - Support for new MMIO based models (T2 Macs)
          - Honor acpi_backlight= auto-detect-code + kernel cmdline option
            to switch between gmux and apple_bl backlight drivers and remove
            own custom handling for this
      
       -  x86-android-tablets: Refactor / cleanup + new hw support
      
       -  Miscellaneous other cleanups / fixes
      
      * tag 'platform-drivers-x86-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (178 commits)
        platform/x86: x86-android-tablets: Add accelerometer support for Yoga Tablet 2 1050/830 series
        platform/x86: x86-android-tablets: Add "yogabook-touch-kbd-digitizer-switch" pdev for Lenovo Yoga Book
        platform/x86: x86-android-tablets: Add Wacom digitizer info for Lenovo Yoga Book
        platform/x86: x86-android-tablets: Update Yoga Book HiDeep touchscreen comment
        platform/x86: thinkpad_acpi: Fix Embedded Controller access on X380 Yoga
        platform/x86/intel/sdsi: Change mailbox timeout
        platform/x86/intel/pmt: Ignore uninitialized entries
        platform/x86: amd: pmc: provide user message where s0ix is not supported
        platform/x86/amd: pmc: Fix memory leak in amd_pmc_stb_debugfs_open_v2()
        mlxbf-bootctl: Add sysfs file for BlueField boot fifo
        platform/x86: amd: pmc: Remove __maybe_unused from amd_pmc_suspend_handler()
        platform/x86/intel/pmc/mtl: Put GNA/IPU/VPU devices in D3
        platform/x86/amd: pmc: Move out of BIOS SMN pair for STB init
        platform/x86/amd: pmc: Utilize SMN index 0 for driver probe
        platform/x86/amd: pmc: Move idlemask check into `amd_pmc_idlemask_read`
        platform/x86/amd: pmc: Don't dump data after resume from s0i3 on picasso
        platform/x86/amd: pmc: Hide SMU version and program attributes for Picasso
        platform/x86/amd: pmc: Don't try to read SMU version on Picasso
        platform/x86/amd/pmf: Move out of BIOS SMN pair for driver probe
        platform/x86: intel-uncore-freq: Add client processors
        ...
      088e0c18
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.4' of... · 07d971ab
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "Improvements:
      
         - Replace fake flexible arrays with flexible-array member
      
        Misc:
      
         - Minor cleanups and fixes"
      
      * tag 'tag-chrome-platform-for-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: wilco_ec: remove return value check of debugfs_create_dir()
        platform/chrome: cros_ec_debugfs: fix kernel-doc warning
        platform/chrome: cros_ec: Separate logic for getting panic info
        platform/chrome: cros_typec_switch: Add missing fwnode_handle_put()
        platform/chrome: cros_ec: remove unneeded label and if-condition
        platform/chrome: Replace fake flexible arrays with flexible-array member
      07d971ab
    • Linus Torvalds's avatar
      Merge tag 'media/v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4ea95696
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - Removal of some old unused sensor drivers: ad9389b, m5mols, mt9m032,
         mt9t001, noon010pc30, s5k6aa, sr030pc30 and vs6624
      
       - New i.MX8 image sensor interface driver
      
       - Some new RC keymaps
      
       - lots of cleanups at atomisp driver to make it support standard
         features present on other webcam drivers
      
       - the cx18 and saa7146 now uses VB2
      
       - lots of cleanups and driver improvements
      
      * tag 'media/v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (460 commits)
        media: ov5670: Fix probe on ACPI
        media: nxp: imx8-isi: Remove 300ms sleep after enabling channel
        media: nxp: imx8-isi: Replace udelay() with fsleep()
        media: nxp: imx8-isi: Drop partial support for i.MX8QM and i.MX8QXP
        media: nxp: Add i.MX8 ISI driver
        media: dt-bindings: media: Add i.MX8 ISI DT bindings
        media: atomisp: gmin_platform: Add Lenovo Ideapad Miix 310 gmin_vars
        media: atomisp: gmin_platform: Make DMI quirks take precedence over the _DSM table
        media: atomisp: Remove struct atomisp_sub_device index field
        media: atomisp: Drop support for streaming from 2 sensors at once
        media: atomisp: Remove atomisp_try_fmt() call from atomisp_set_fmt()
        media: atomisp: Remove unused ATOM_ISP_MAX_WIDTH_TMP and ATOM_ISP_MAX_HEIGHT_TMP
        media: atomisp: Remove snr_mbus_fmt local var from atomisp_try_fmt()
        media: atomisp: Remove custom V4L2_CID_FMT_AUTO control
        media: atomisp: Remove continuous mode related code from atomisp_set_fmt()
        media: atomisp: Remove duplicate atomisp_[start|stop]_streaming() prototypes
        media: atomisp: gc0310: Switch over to ACPI powermanagement
        media: atomisp: gc0310: Use devm_kzalloc() for data struct
        media: atomisp: gc0310: Add runtime-pm support
        media: atomisp: gc0310: Delay power-on till streaming is started
        ...
      4ea95696
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2023-04-24' of git://anongit.freedesktop.org/drm/drm · c8cc58e2
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There is a new Qualcomm accel driver for their QAIC, dma-fence got a
        deadline feature added, lots of refactoring around fbdev emulation,
        and the usual pre-release hw enablements from AMD and Intel and fixes
        everywhere.
      
        New drivers:
         - add QAIC acceleration driver
      
        dma-buf:
         - constify kobj_type structs
         - Reject prime DMA-Buf attachment if get_sg_table is missing.
      
        fbdev:
         - cmdline parser fixes
         - implement fbdev emulation for GEM DMA drivers
         - always use shadow buffer in fbdev emulation helpers
      
        dma-fence:
         - add deadline hint to fences
         - signal private stub fence
      
        core:
         - improve DisplayID 2.0 and EDID parsing
         - add gem eviction function + callback
         - prep to convert shmem helper to GEM resv lock
         - move suballocator from radeon/amdgpu to core for Xe
         - HPD polling fixes
         - Documentation improvements
         - Add atomic enable_plane callback
         - use tgid instead of pid for client tracking
         - DP: Add SDP Error Detection Configuration Register
         - Add prime import/export to vram-helper
         - use pci aperture helpers in more drivers
      
        panel:
         - Radxa 8/10HD support
         - Samsung AMD495QA01 support
         - Elida KD50T048A
         - Sony TD4353
         - Novatek NT36523
         - STARRY 2081101QFH032011-53G
         - B133UAN01.0
         - AUO NE135FBM-N41
      
        i915:
         - More MTL enabling
         - fix s/r problems with MEI/PXP
         - Implement fb_dirty for PSR,FBC,DRRS fixes
         - Fix eDP+DSI dual panel systems
         - Fix issue #6333: "list_add corruption" and full system lockup from
           performance monitoring
         - Don't use stolen memory or BAR for ring buffers on LLC platforms
         - Make sure DSM size has correct 1MiB granularity on Gen12+
         - Whitelist COMMON_SLICE_CHICKEN3 for UMD access on Gen12+
         - Add engine TLB invalidation for Meteorlake
         - Fix GSC races on driver load/unload on Meteorlake+
         - Make kobj_type structures constant
         - Move fd_install after last use of fence
         - wm/vblank refactoring
         - display code refactoring
         - Create GSC submission targeting HDCP and PXP usages on MTL+
         - Enable HDCP2.x via GSC CS
         - Fix context runtime accounting on sysfs fdinfo for heavy workloads
         - Use i915 instead of dev_priv insied the file_priv structure
         - Replace fake flex-array with flexible-array member
      
        amdgpu:
         - Make kobj structures const
         - Generalize dmabuf import to work with KFD
         - Add capped/uncapped workload handling for supported APUs
         - Expose additional memory stats via fdinfo
         - Register vga_switcheroo for apple-gmux
         - Initial NBIO7.9, GC 9.4.3, GFXHUB 1.2, MMHUB 1.8 support
         - Initial DC FAM infrastructure
         - Link DC backlight to connector device rather than PCI device
         - Add sysfs nodes for secondary VCN clocks
      
        amdkfd:
         - Make kobj structures const
         - Support for exporting buffers via dmabuf
         - Multi-VMA page migration fixes
         - initial GC 9.4.3 support
      
        radeon:
         - iMac fix
         - convert to client based fbdev emulation
      
        habanalabs:
         - Add opcodes to the CS ioctl to allow user to stall/resume specific
           engines inside Gaudi2.
         - INFO ioctl the amount of device memory that the driver and f/w
           reserve for themselves.
         - INFO ioctl a bit-mask of the available rotator engines
         - INFO ioctl the register's address of the f/w that should be used to
           trigger interrupts
         - INFO ioctl two new opcodes to fetch information on h/w and f/w
           events
         - Enable graceful reset mechanism for compute-reset.
         - Align to the latest firmware specs.
         - Enforce the release order of the compute device and dma-buf.
      
        msm:
         - UBWC decoder programming rework
         - SM8550, SM8450 bindings update
         - uapi C++ fix
         - a3xx and a4xx devfreq support
         - GPU and GEM updates to avoid allocations which could trigger
           reclaim (shrinker) in fence signaling path
         - dma-fence deadline hint support and wait-boost
         - a640/650 speed bin support
      
        cirrus:
         - convert to regular atomic helpers
         - add damage clipping
      
        mediatek:
         - 10-bit overlay support
         - mt8195 support
         - Only trigger DRM HPD events if bridge is attached
         - Change the aux retries times when receiving AUX_DEFER
      
        rockchip:
         - add 4K support
      
        vc4:
         - use drm_gem_objects
      
        virtio:
         - allow KMS support to be disabled
         - add damage clipping
      
        vmwgfx:
         - buffer object lifetime fixes
      
        exynos:
         - move MIPI DSI driver to drm bridge for iMX sharing
         - use kernel fbdev emulation
      
        panfrost:
         - add support for mali MT81xx devices
         - add speed binning support
      
        lima:
         - add usage stats
      
        tegra:
         - fbdev client conversion
      
        vkms:
         - Add primary plane positioning support"
      
      * tag 'drm-next-2023-04-24' of git://anongit.freedesktop.org/drm/drm: (1495 commits)
        drm/i915/dp_mst: Fix active port PLL selection for secondary MST streams
        drm/exynos: Implement fbdev emulation as in-kernel client
        drm/exynos: Initialize fbdev DRM client
        drm/exynos: Remove fb_helper from struct exynos_drm_private
        drm/exynos: Remove struct exynos_drm_fbdev
        drm/exynos: Remove exynos_gem from struct exynos_drm_fbdev
        drm/i915: Fix memory leaks in i915 selftests
        drm/i915: Make intel_get_crtc_new_encoder() less oopsy
        drm/i915/gt: Avoid out-of-bounds access when loading HuC
        drm/amdgpu: add some basic elements for multiple XCD case
        drm/amdgpu: move vmhub out of amdgpu_ring_funcs (v4)
        Revert "drm/amdgpu: enable ras for mp0 v13_0_10 on SRIOV"
        drm/amdgpu: add common ip block for GC 9.4.3
        drm/amd/display: Add logging when DP link training Clock recovery is Successful
        drm/amdgpu: add common early init support for GC 9.4.3
        drm/amdgpu: switch to v9_4_3 gfx_funcs callbacks for GC 9.4.3
        drm/amd/display: Add logging when setting DP sink power state fails
        drm/amdkfd: Add gfx_target_version for GC 9.4.3
        drm/amdkfd: Enable HW_UPDATE_RPTR on GC 9.4.3
        drm/amdgpu: reserve the old gc_11_0_*_mes.bin
        ...
      c8cc58e2
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 736b378b
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
       "The main change is naturally the SLOB removal. Since its deprecation
        in 6.2 I've seen no complaints so hopefully SLUB_(TINY) works well for
        everyone and we can proceed.
      
        Besides the code cleanup, the main immediate benefit will be allowing
        kfree() family of function to work on kmem_cache_alloc() objects,
        which was incompatible with SLOB. This includes kfree_rcu() which had
        no kmem_cache_free_rcu() counterpart yet and now it shouldn't be
        necessary anymore.
      
        Besides that, there are several small code and comment improvements
        from Thomas, Thorsten and Vernon"
      
      * tag 'slab-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab: document kfree() as allowed for kmem_cache_alloc() objects
        mm/slob: remove slob.c
        mm/slab: remove CONFIG_SLOB code from slab common code
        mm, pagemap: remove SLOB and SLQB from comments and documentation
        mm, page_flags: remove PG_slob_free
        mm/slob: remove CONFIG_SLOB
        mm/slub: fix help comment of SLUB_DEBUG
        mm: slub: make kobj_type structure constant
        slab: Adjust comment after refactoring of gfp.h
      736b378b
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.4' of... · 11704531
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching updates from Petr Mladek:
      
       - Code and documentation cleanup
      
      * tag 'livepatching-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Make kobj_type structures constant
        livepatch: fix ELF typos
      11704531
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 7ec85f3e
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Code cleanup and dead code removal
      
      * tag 'printk-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: Remove obsoleted check for non-existent "user" object
        lib/vsprintf: Use isodigit() for the octal number check
        Remove orphaned CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT
      7ec85f3e
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · df45da57
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "ACPI:
      
         - Improve error reporting when failing to manage SDEI on AGDI device
           removal
      
        Assembly routines:
      
         - Improve register constraints so that the compiler can make use of
           the zero register instead of moving an immediate #0 into a GPR
      
         - Allow the compiler to allocate the registers used for CAS
           instructions
      
        CPU features and system registers:
      
         - Cleanups to the way in which CPU features are identified from the
           ID register fields
      
         - Extend system register definition generation to handle Enum types
           when defining shared register fields
      
         - Generate definitions for new _EL2 registers and add new fields for
           ID_AA64PFR1_EL1
      
         - Allow SVE to be disabled separately from SME on the kernel
           command-line
      
        Tracing:
      
         - Support for "direct calls" in ftrace, which enables BPF tracing for
           arm64
      
        Kdump:
      
         - Don't bother unmapping the crashkernel from the linear mapping,
           which then allows us to use huge (block) mappings and reduce TLB
           pressure when a crashkernel is loaded.
      
        Memory management:
      
         - Try again to remove data cache invalidation from the coherent DMA
           allocation path
      
         - Simplify the fixmap code by mapping at page granularity
      
         - Allow the kfence pool to be allocated early, preventing the rest of
           the linear mapping from being forced to page granularity
      
        Perf and PMU:
      
         - Move CPU PMU code out to drivers/perf/ where it can be reused by
           the 32-bit ARM architecture when running on ARMv8 CPUs
      
         - Fix race between CPU PMU probing and pKVM host de-privilege
      
         - Add support for Apple M2 CPU PMU
      
         - Adjust the generic PERF_COUNT_HW_BRANCH_INSTRUCTIONS event
           dynamically, depending on what the CPU actually supports
      
         - Minor fixes and cleanups to system PMU drivers
      
        Stack tracing:
      
         - Use the XPACLRI instruction to strip PAC from pointers, rather than
           rolling our own function in C
      
         - Remove redundant PAC removal for toolchains that handle this in
           their builtins
      
         - Make backtracing more resilient in the face of instrumentation
      
        Miscellaneous:
      
         - Fix single-step with KGDB
      
         - Remove harmless warning when 'nokaslr' is passed on the kernel
           command-line
      
         - Minor fixes and cleanups across the board"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (72 commits)
        KVM: arm64: Ensure CPU PMU probes before pKVM host de-privilege
        arm64: kexec: include reboot.h
        arm64: delete dead code in this_cpu_set_vectors()
        arm64/cpufeature: Use helper macro to specify ID register for capabilites
        drivers/perf: hisi: add NULL check for name
        drivers/perf: hisi: Remove redundant initialized of pmu->name
        arm64/cpufeature: Consistently use symbolic constants for min_field_value
        arm64/cpufeature: Pull out helper for CPUID register definitions
        arm64/sysreg: Convert HFGITR_EL2 to automatic generation
        ACPI: AGDI: Improve error reporting for problems during .remove()
        arm64: kernel: Fix kernel warning when nokaslr is passed to commandline
        perf/arm-cmn: Fix port detection for CMN-700
        arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
        arm64: move PAC masks to <asm/pointer_auth.h>
        arm64: use XPACLRI to strip PAC
        arm64: avoid redundant PAC stripping in __builtin_return_address()
        arm64/sme: Fix some comments of ARM SME
        arm64/signal: Alloc tpidr2 sigframe after checking system_supports_tpidr2()
        arm64/signal: Use system_supports_tpidr2() to check TPIDR2
        arm64/idreg: Don't disable SME when disabling SVE
        ...
      df45da57
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 53b5e72b
      Linus Torvalds authored
      Pull asm-generic updates from Arnd Bergmann:
       "These are various cleanups, fixing a number of uapi header files to no
        longer reference CONFIG_* symbols, and one patch that introduces the
        new CONFIG_HAS_IOPORT symbol for architectures that provide working
        inb()/outb() macros, as a preparation for adding driver dependencies
        on those in the following release"
      
      * tag 'asm-generic-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        Kconfig: introduce HAS_IOPORT option and select it as necessary
        scripts: Update the CONFIG_* ignore list in headers_install.sh
        pktcdvd: Remove CONFIG_CDROM_PKTCDVD_WCACHE from uapi header
        Move bp_type_idx to include/linux/hw_breakpoint.h
        Move ep_take_care_of_epollwakeup() to fs/eventpoll.c
        Move COMPAT_ATM_ADDPARTY to net/atm/svc.c
      53b5e72b
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · d53c3eaa
      Linus Torvalds authored
      Pull ARM SoC devicetree updates from Arnd Bergmann:
       "The devicetree changes overall are again dominated by the Qualcomm
        Snapdragon platform that weighs in at over 300 changesets, but there
        are many updates across other platforms as well, notably Mediatek,
        NXP, Rockchips, Renesas, TI, Samsung and ST Microelectronics. These
        all add new features for existing machines, as well as new machines
        and SoCs.
      
        The newly added SoCs are:
      
         - Allwinner T113-s, an Cortex-A7 based variant of the RISC-V based D1
           chip.
      
         - StarFive JH7110, a RISC-V SoC based on the Sifive U74 core like its
           JH7100 predecessor, but with additional CPU cores and a GPU.
      
         - Apple M2 as used in current Macbook Air/Pro and Mac Mini gets
           added, with comparable support as its M1 predecessor.
      
         - Unisoc UMS512 (Tiger T610) is a midrange smartphone SoC
      
         - Qualcomm IPQ5332 and IPQ9574 are Wi-Fi 7 networking SoCs, based on
           the Cortex-A53 and Cortex-A73 cores, respectively.
      
         - Qualcomm sa8775p is an automotive SoC derived from the Snapdragon
           family.
      
        Including the initial board support for the added SoC platforms, there
        are 52 new machines. The largest group are 19 boards industrial
        embedded boards based on the NXP i.MX6 (32-bit) and i.MX8 (64-bit)
        families.
      
        Others include:
      
         - Two boards based on the Allwinner f1c200s ultra-low-cost chip
      
         - Three 'Banana Pi' variants based on the Amlogic g12b (A311D, S922X)
           SoC.
      
         - The Gl.Inet mv1000 router based on Marvell Armada 3720
      
         - A Wifi/LTE Dongle based on Qualcomm msm8916
      
         - Two robotics boards based on Qualcomm QRB chips
      
         - Three Snapdragon based phones made by Xiaomi
      
         - Five developments boards based on various Rockchip SoCs, including
           the rk3588s-khadas-edge2 and a few NanoPi models
      
         - The AM625 Beagleplay industrial SBC
      
        Another 14 machines get removed: both boards for the obsolete 'oxnas'
        platform, three boards for the Renesas r8a77950 SoC that were only for
        pre-production chips, and various chromebook models based on the
        Qualcomm Sc7180 'trogdor' design that were never part of products"
      
      * tag 'soc-dt-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (836 commits)
        arm64: dts: rockchip: Add support for volume keys to rk3399-pinephone-pro
        arm64: dts: rockchip: Add vdd_cpu_big regulators to rk3588-rock-5b
        arm64: dts: rockchip: Use generic name for es8316 on Pinebook Pro and Rock 5B
        arm64: dts: rockchip: Drop RTC clock-frequency on rk3588-rock-5b
        arm64: dts: apple: t8112: Add PWM controller
        arm64: dts: apple: t600x: Add PWM controller
        arm64: dts: apple: t8103: Add PWM controller
        arm64: dts: rockchip: Add pinctrl gpio-ranges for rk356x
        ARM: dts: nomadik: Replace deprecated spi-gpio properties
        ARM: dts: aspeed-g6: Add UDMA node
        ARM: dts: aspeed: greatlakes: add mctp device
        ARM: dts: aspeed: greatlakes: Add gpio names
        ARM: dts: aspeed: p10bmc: Change power supply info
        arm64: dts: mediatek: mt6795-xperia-m5: Add Bosch BMM050 Magnetometer
        arm64: dts: mediatek: mt6795-xperia-m5: Add Bosch BMA255 Accelerometer
        arm64: dts: mediatek: mt6795: Add tertiary PWM node
        arm64: dts: rockchip: add panel to Anbernic RG353 series
        dt-bindings: arm: Add Data Modul i.MX8M Plus eDM SBC
        dt-bindings: arm: fsl: Add chargebyte Tarragon
        dt-bindings: vendor-prefixes: add chargebyte
        ...
      d53c3eaa
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 672d2dae
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "Most of the changes just enable additional device drivers that were
        added or that are often used on major platforms.
      
        The virtconfig added last time now disables additional drivers to
        shrink kernels for virtual machines.
      
        The obsolete oxnas_v6_defconfig file is removed in turn"
      
      * tag 'soc-defconfig-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (33 commits)
        ARM: config: Update Vexpress defconfig
        arm64: defconfig: enable building the nvmem-reboot-mode module
        arm64: defconfig: Enable TI ADC driver
        arm64: defconfig: Enable TI TSCADC driver
        arm64: defconfig: Enable security accelerator driver for TI K3 SoCs
        arm64: defconfig: Enable crypto test module
        ARM: multi_v7_defconfig: Add OPTEE support
        ARM: configs: Update U8500 defconfig
        ARM: imx_v4_v5_defconfig: Build CONFIG_IMX_SDMA as module
        arm64: defconfig: Enable IPQ9574 SoC base configs
        ARM: imx_v6_v7_defconfig: Enable Tarragon peripheral drivers
        arm64: defconfig: Enable ARM CoreSight PMU driver
        arm64: defconfig: remove duplicate TYPEC_UCSI & QCOM_PMIC_GLINK
        ARM: configs: remove oxnas_v6_defconfig
        arm64: defconfig: Enable audio drivers for AM62-SK
        arm64: defconfig: Enable drivers for BeaglePlay
        ARM: imx_v6_v7_defconfig: Select CONFIG_DRM_I2C_NXP_TDA998X
        arm64: defconfig: Enable Virtio RNG driver as built in
        arm64: defconfig: Enable CAN PHY transceiver driver
        arm64: defconfig: add PMIC GLINK modules
        ...
      672d2dae
    • Linus Torvalds's avatar
      Merge tag 'soc-drivers-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · a9070477
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "The most notable updates this time are for Qualcomm Snapdragon
        platforms. The Inline-Crypto-Engine gets a new DT binding and driver,
        and a number of drivers now support additional Snapdragon variants, in
        particular the rsc, scm, geni, bwm, glink and socinfo, while the llcc
        (edac) and rpm drivers get notable functionality updates.
      
        Updates on other platforms include:
      
         - Various updates to the Mediatek mutex and mmsys drivers, including
           support for the Helio X10 SoC
      
         - Support for unidirectional mailbox channels in Arm SCMI firmware
      
         - Support for per cpu asynchronous notification in OP-TEE firmware
      
         - Minor updates for memory controller drivers.
      
         - Minor updates for Renesas, TI, Amlogic, Apple, Broadcom, Tegra,
           Allwinner, Versatile Express, Canaan, Microchip, Mediatek and i.MX
           SoC drivers, mainly updating the use of MODULE_LICENSE() macros and
           obsolete DT driver interfaces"
      
      * tag 'soc-drivers-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (165 commits)
        soc: ti: smartreflex: Simplify getting the opam_sr pointer
        bus: vexpress-config: Add explicit of_platform.h include
        soc: mediatek: Kconfig: Add MTK_CMDQ dependency to MTK_MMSYS
        memory: mtk-smi: mt8365: Add SMI Support
        dt-bindings: memory-controllers: mediatek,smi-larb: add mt8365
        dt-bindings: memory-controllers: mediatek,smi-common: add mt8365
        memory: tegra: read values from correct device
        dt-bindings: crypto: Add Qualcomm Inline Crypto Engine
        soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver
        dt-bindings: firmware: document Qualcomm QCM2290 SCM
        soc: qcom: rpmh-rsc: Support RSC v3 minor versions
        soc: qcom: smd-rpm: Use GFP_ATOMIC in write path
        soc/tegra: fuse: Remove nvmem root only access
        soc/tegra: cbb: tegra194: Use of_address_count() helper
        soc/tegra: cbb: Remove MODULE_LICENSE in non-modules
        ARM: tegra: Remove MODULE_LICENSE in non-modules
        soc/tegra: flowctrl: Use devm_platform_get_and_ioremap_resource()
        soc: tegra: cbb: Drop empty platform remove function
        firmware: arm_scmi: Add support for unidirectional mailbox channels
        dt-bindings: firmware: arm,scmi: Support mailboxes unidirectional channels
        ...
      a9070477
    • Linus Torvalds's avatar
      Merge tag 'soc-arm-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 18032df5
      Linus Torvalds authored
      Pull ARM SoC updates from Arnd Bergmann:
       "The Oxford Semiconductor OX810/OX820 'Oxnas' platform gets retired
        after the ARM11MPcore processor keeps causing problems in certain
        corner cases. OX820 was the only remaining SoC with this core after
        CNS3xxx got retired, and its driver support was never completely
        merged upstream. The Arm 'Realview' reference platform still supports
        ARM11MPCore in principle, but this was never a product, and the CPU
        support will get cleaned up later on.
      
        Another series updates the mv78xx0 platform, which has been similarly
        neglected for a while, but should work properly again now.
      
        The other changes are minor cleanups across platforms, mostly
        converting code to more modern interfaces for DT nodes and removing
        some more code as a follow-up to the large-scale platform removal in
        linux-6.3"
      
      * tag 'soc-arm-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (28 commits)
        ARM: mv78xx0: fix entries for gpios, buttons and usb ports
        ARM: mv78xx0: add code to enable XOR and CRYPTO engines on mv78xx0
        ARM: mv78xx0: set the correct driver for the i2c RTC
        ARM: mv78xx0: adjust init logic for ts-wxl to reflect single core dev
        soc: fsl: Use of_property_present() for testing DT property presence
        ARM: pxa: Use of_property_read_bool() for boolean properties
        firmware: turris-mox-rwtm: make kobj_type structure constant
        ARM: oxnas: remove OXNAS support
        ARM: sh-mobile: Use of_cpu_node_to_id() to read CPU node 'reg'
        ARM: OMAP2+: hwmod: Use kzalloc for allocating only one element
        ARM: OMAP2+: Remove the unneeded result variable
        ARM: OMAP2+: fix repeated words in comments
        ARM: OMAP2+: remove obsolete config OMAP3_SDRC_AC_TIMING
        ARM: OMAP2+: Use of_address_to_resource()
        ARM: OMAP2+: Use of_property_read_bool() for boolean properties
        ARM: omap1: remove redundant variables err
        ARM: omap1: Kconfig: Fix indentation
        ARM: bcm: Use of_address_to_resource()
        ARM: mstar: remove unused config MACH_MERCURY
        ARM: spear: remove obsolete config MACH_SPEAR600
        ...
      18032df5
    • Linus Torvalds's avatar
      Merge tag 'x86-apic-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de10553f
      Linus Torvalds authored
      Pull x86 APIC updates from Thomas Gleixner:
      
       - Fix the incorrect handling of atomic offset updates in
         reserve_eilvt_offset()
      
         The check for the return value of atomic_cmpxchg() is not compared
         against the old value, it is compared against the new value, which
         makes it two round on success.
      
         Convert it to atomic_try_cmpxchg() which does the right thing.
      
       - Handle IO/APIC less systems correctly
      
         When IO/APIC is not advertised by ACPI then the computation of the
         lower bound for dynamically allocated interrupts like MSI goes wrong.
      
         This lower bound is used to exclude the IO/APIC legacy GSI space as
         that must stay reserved for the legacy interrupts.
      
         In case that the system, e.g. VM, does not advertise an IO/APIC the
         lower bound stays at 0.
      
         0 is an invalid interrupt number except for the legacy timer
         interrupt on x86. The return value is unchecked in the core code, so
         it ends up to allocate interrupt number 0 which is subsequently
         considered to be invalid by the caller, e.g. the MSI allocation code.
      
         A similar problem was already cured for device tree based systems
         years ago, but that missed - or did not envision - the zero IO/APIC
         case.
      
         Consolidate the zero check and return the provided "from" argument to
         the core code call site, which is guaranteed to be greater than 0.
      
       - Simplify the X2APIC cluster CPU mask logic for CPU hotplug
      
         Per cluster CPU masks are required for X2APIC in cluster mode to
         determine the correct cluster for a target CPU when calculating the
         destination for IPIs
      
         These masks are established when CPUs are borught up. The first CPU
         in a cluster must allocate a new cluster CPU mask. As this happens
         during the early startup of a CPU, where memory allocations cannot be
         done, the mask has to be allocated by the control CPU.
      
         The current implementation allocates a clustermask just in case and
         if the to be brought up CPU is the first in a cluster the CPU takes
         over this allocation from a global pointer.
      
         This works nicely in the fully serialized CPU bringup scenario which
         is used today, but would fail completely for parallel bringup of
         CPUs.
      
         The cluster association of a CPU can be computed from the APIC ID
         which is enumerated by ACPI/MADT.
      
         So the cluster CPU masks can be preallocated and associated upfront
         and the upcoming CPUs just need to set their corresponding bit.
      
         Aside of preparing for parallel bringup this is a valuable
         simplification on its own.
      
       - Remove global variables which control the early startup of secondary
         CPUs on 64-bit
      
         The only information which is needed by a starting CPU is the Linux
         CPU number. The CPU number allows it to retrieve the rest of the
         required data from already existing per CPU storage.
      
         So instead of initial_stack, early_gdt_desciptor and initial_gs
         provide a new variable smpboot_control which contains the Linux CPU
         number for now. The starting CPU can retrieve and compute all
         required information for startup from there.
      
         Aside of being a cleanup, this is also preparing for parallel CPU
         bringup, where starting CPUs will look up their Linux CPU number via
         the APIC ID, when smpboot_control has the corresponding control bit
         set.
      
       - Make cc_vendor globally accesible
      
         Subsequent parallel bringup changes require access to cc_vendor
         because confidental computing platforms need special treatment in the
         early startup phase vs. CPUID and APCI ID readouts.
      
         The change makes cc_vendor global and provides stub accessors in case
         that CONFIG_ARCH_HAS_CC_PLATFORM is not set.
      
         This was merged from the x86/cc branch in anticipation of further
         parallel bringup commits which require access to cc_vendor. Due to
         late discoveries of fundamental issue with those patches these
         commits never happened.
      
         The merge commit is unfortunately in the middle of the APIC commits
         so unraveling it would have required a rebase or revert. As the
         parallel bringup seems to be well on its way for 6.5 this would be
         just pointless churn. As the commit does not contain any functional
         change it's not a risk to keep it.
      
      * tag 'x86-apic-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
        x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
        x86/coco: Export cc_vendor
        x86/smpboot: Reference count on smpboot_setup_warm_reset_vector()
        x86/smpboot: Remove initial_gs
        x86/smpboot: Remove early_gdt_descr on 64-bit
        x86/smpboot: Remove initial_stack on 64-bit
        x86/apic/x2apic: Allow CPU cluster_mask to be populated in parallel
      de10553f
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e7989789
      Linus Torvalds authored
      Pull timers and timekeeping updates from Thomas Gleixner:
      
       - Improve the VDSO build time checks to cover all dynamic relocations
      
         VDSO does not allow dynamic relocations, but the build time check is
         incomplete and fragile.
      
         It's based on architectures specifying the relocation types to search
         for and does not handle R_*_NONE relocation entries correctly.
         R_*_NONE relocations are injected by some GNU ld variants if they
         fail to determine the exact .rel[a]/dyn_size to cover trailing zeros.
         R_*_NONE relocations must be ignored by dynamic loaders, so they
         should be ignored in the build time check too.
      
         Remove the architecture specific relocation types to check for and
         validate strictly that no other relocations than R_*_NONE end up in
         the VSDO .so file.
      
       - Prefer signal delivery to the current thread for
         CLOCK_PROCESS_CPUTIME_ID based posix-timers
      
         Such timers prefer to deliver the signal to the main thread of a
         process even if the context in which the timer expires is the current
         task. This has the downside that it might wake up an idle thread.
      
         As there is no requirement or guarantee that the signal has to be
         delivered to the main thread, avoid this by preferring the current
         task if it is part of the thread group which shares sighand.
      
         This not only avoids waking idle threads, it also distributes the
         signal delivery in case of multiple timers firing in the context of
         different threads close to each other better.
      
       - Align the tick period properly (again)
      
         For a long time the tick was starting at CLOCK_MONOTONIC zero, which
         allowed users space applications to either align with the tick or to
         place a periodic computation so that it does not interfere with the
         tick. The alignement of the tick period was more by chance than by
         intention as the tick is set up before a high resolution clocksource
         is installed, i.e. timekeeping is still tick based and the tick
         period advances from there.
      
         The early enablement of sched_clock() broke this alignement as the
         time accumulated by sched_clock() is taken into account when
         timekeeping is initialized. So the base value now(CLOCK_MONOTONIC) is
         not longer a multiple of tick periods, which breaks applications
         which relied on that behaviour.
      
         Cure this by aligning the tick starting point to the next multiple of
         tick periods, i.e 1000ms/CONFIG_HZ.
      
       - A set of NOHZ fixes and enhancements:
      
           * Cure the concurrent writer race for idle and IO sleeptime
             statistics
      
             The statitic values which are exposed via /proc/stat are updated
             from the CPU local idle exit and remotely by cpufreq, but that
             happens without any form of serialization. As a consequence
             sleeptimes can be accounted twice or worse.
      
             Prevent this by restricting the accumulation writeback to the CPU
             local idle exit and let the remote access compute the accumulated
             value.
      
           * Protect idle/iowait sleep time with a sequence count
      
             Reading idle/iowait sleep time, e.g. from /proc/stat, can race
             with idle exit updates. As a consequence the readout may result
             in random and potentially going backwards values.
      
             Protect this by a sequence count, which fixes the idle time
             statistics issue, but cannot fix the iowait time problem because
             iowait time accounting races with remote wake ups decrementing
             the remote runqueues nr_iowait counter. The latter is impossible
             to fix, so the only way to deal with that is to document it
             properly and to remove the assertion in the selftest which
             triggers occasionally due to that.
      
           * Restructure struct tick_sched for better cache layout
      
           * Some small cleanups and a better cache layout for struct
             tick_sched
      
       - Implement the missing timer_wait_running() callback for POSIX CPU
         timers
      
         For unknown reason the introduction of the timer_wait_running()
         callback missed to fixup posix CPU timers, which went unnoticed for
         almost four years.
      
         While initially only targeted to prevent livelocks between a timer
         deletion and the timer expiry function on PREEMPT_RT enabled kernels,
         it turned out that fixing this for mainline is not as trivial as just
         implementing a stub similar to the hrtimer/timer callbacks.
      
         The reason is that for CONFIG_POSIX_CPU_TIMERS_TASK_WORK enabled
         systems there is a livelock issue independent of RT.
      
         CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y moves the expiry of POSIX CPU
         timers out from hard interrupt context to task work, which is handled
         before returning to user space or to a VM. The expiry mechanism moves
         the expired timers to a stack local list head with sighand lock held.
         Once sighand is dropped the task can be preempted and a task which
         wants to delete a timer will spin-wait until the expiry task is
         scheduled back in. In the worst case this will end up in a livelock
         when the preempting task and the expiry task are pinned on the same
         CPU.
      
         The timer wheel has a timer_wait_running() mechanism for RT, which
         uses a per CPU timer-base expiry lock which is held by the expiry
         code and the task waiting for the timer function to complete blocks
         on that lock.
      
         This does not work in the same way for posix CPU timers as there is
         no timer base and expiry for process wide timers can run on any task
         belonging to that process, but the concept of waiting on an expiry
         lock can be used too in a slightly different way.
      
         Add a per task mutex to struct posix_cputimers_work, let the expiry
         task hold it accross the expiry function and let the deleting task
         which waits for the expiry to complete block on the mutex.
      
         In the non-contended case this results in an extra
         mutex_lock()/unlock() pair on both sides.
      
         This avoids spin-waiting on a task which is scheduled out, prevents
         the livelock and cures the problem for RT and !RT systems
      
      * tag 'timers-core-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        posix-cpu-timers: Implement the missing timer_wait_running callback
        selftests/proc: Assert clock_gettime(CLOCK_BOOTTIME) VS /proc/uptime monotonicity
        selftests/proc: Remove idle time monotonicity assertions
        MAINTAINERS: Remove stale email address
        timers/nohz: Remove middle-function __tick_nohz_idle_stop_tick()
        timers/nohz: Add a comment about broken iowait counter update race
        timers/nohz: Protect idle/iowait sleep time under seqcount
        timers/nohz: Only ever update sleeptime from idle exit
        timers/nohz: Restructure and reshuffle struct tick_sched
        tick/common: Align tick period with the HZ tick.
        selftests/timers/posix_timers: Test delivery of signals across threads
        posix-timers: Prefer delivery of signals to the current thread
        vdso: Improve cmd_vdso_check to check all dynamic relocations
      e7989789
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3f614ab5
      Linus Torvalds authored
      Pull interrupt updates from Thomas Gleixner:
       "Core:
      
         - Add tracepoints for tasklet callbacks which makes it possible to
           analyze individual tasklet functions instead of guess working from
           the overall duration of tasklet processing
      
         - Ensure that secondary interrupt threads have their affinity
           adjusted correctly
      
        Drivers:
      
         - A large rework of the RISC-V IPI management to prepare for a new
           RISC-V interrupt architecture
      
         - Small fixes and enhancements all over the place
      
         - Removal of support for various obsolete hardware platforms and the
           related code"
      
      * tag 'irq-core-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        irqchip/st: Remove stih415/stih416 and stid127 platforms support
        irqchip/gic-v3: Add Rockchip 3588001 erratum workaround
        genirq: Update affinity of secondary threads
        softirq: Add trace points for tasklet entry/exit
        irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling
        irqchip/loongson-pch-pic: Fix registration of syscore_ops
        irqchip/loongson-eiointc: Fix registration of syscore_ops
        irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent
        irqchip/loongson-eiointc: Fix returned value on parsing MADT
        irqchip/riscv-intc: Add empty irq_eoi() for chained irq handlers
        RISC-V: Use IPIs for remote icache flush when possible
        RISC-V: Use IPIs for remote TLB flush when possible
        RISC-V: Allow marking IPIs as suitable for remote FENCEs
        RISC-V: Treat IPIs as normal Linux IRQs
        irqchip/riscv-intc: Allow drivers to directly discover INTC hwnode
        RISC-V: Clear SIP bit only when using SBI IPI operations
        irqchip/irq-sifive-plic: Add syscore callbacks for hibernation
        irqchip: Use of_property_read_bool() for boolean properties
        irqchip/bcm-6345-l1: Request memory region
        irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4
        ...
      3f614ab5
    • Linus Torvalds's avatar
      Merge tag 'core-entry-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 15bbeec0
      Linus Torvalds authored
      Pull core entry/ptrace update from Thomas Gleixner:
       "Provide a ptrace set/get interface for syscall user dispatch. The main
        purpose is to enable checkpoint/restore (CRIU) to handle processes
        which utilize syscall user dispatch correctly"
      
      * tag 'core-entry-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        selftest, ptrace: Add selftest for syscall user dispatch config api
        ptrace: Provide set/get interface for syscall user dispatch
        syscall_user_dispatch: Untag selector address before access_ok()
        syscall_user_dispatch: Split up set_syscall_user_dispatch()
      15bbeec0
    • Linus Torvalds's avatar
      Merge tag 'core-debugobjects-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 29e95a4b
      Linus Torvalds authored
      Pull core debugobjects update from Thomas Gleixner:
       "A single update to debugobjects:
      
        Prevent a race vs statically initialized objects. Such objects are
        usually not initialized via an init() function. They are special cased
        and detected on first use under the assumption that they are already
        correctly initialized via the static initializer.
      
        This works correctly unless there are two concurrent debug object
        operations on such an object.
      
        The first one detects that the object is not yet tracked and tries to
        establish a tracking object after dropping the debug objects hash
        bucket lock. The concurrent operation does the same. The one which
        wins the race ends up modifying the state of the object which makes
        the other one fail resulting in a bogus debug objects warning.
      
        Prevent this by making the detection of a static object and the
        allocation of a tracking object atomic under the hash bucket lock. So
        the first one to acquire the hash bucket lock will succeed and the
        second one will observe the correct tracking state.
      
        This race existed forever but was only exposed when the timer wheel
        code added a debug_object_assert_init() call outside of the timer base
        locked region. This replaced the previous warning about
        timer::function being NULL which had to be removed when the
        timer_shutdown() mechanics were added"
      
      * tag 'core-debugobjects-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobject: Prevent init race with static objects
      29e95a4b