1501435 Commits
Author SHA1 Message Date
Linus Torvalds 390febb580 Merge tag 'for-7.4-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull more btrfs updates from David Sterba:
 "This removes unused code of free space caching, disabled in 7.3
  (commit 545e560a5b: "btrfs: disable v1 space cache").

  It's been the original free space cache feature, superseded by free
  space tree (4.5) and mkfs default since 5.15. The grace period was
  sufficiently long, backward compatibility still exists with a
  performance impact, effectively as if mounted with '-o nospace_cache'"

* tag 'for-7.4-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  btrfs: remove TRANS_JOIN_NOLOCK
  btrfs: stop reading free space inodes from the commit root
  btrfs: stop special-casing free space inodes in the delalloc accounting
  btrfs: remove the free space inode special cases from the COW paths
  btrfs: remove the free space inode ordered extent special cases
  btrfs: remove BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE
  btrfs: remove the free space cache trimming ranges
  btrfs: replace btrfs_set_free_space_cache_v1_active() with a cleanup helper
  btrfs: remove the SPACE_CACHE mount option flag
  btrfs: remove btrfs_disk_cache_state
  btrfs: remove the v1 space cache load path
  btrfs: drop the transaction handle from the prealloc helpers
  btrfs: rename cache_write_mutex to dirty_bgs_update_mutex
  btrfs: remove the v1 space cache write path
  btrfs: remove the free space cache endio workqueue
  btrfs: remove the v1 space cache writeout from the transaction commit
  btrfs: stop enabling the v1 space cache from the on-disk state
  btrfs: update the inode item when removing a free space inode
  btrfs: drop the extent maps of the written part of a failed ordered extent
  btrfs: fix use-after-free on quota enable allocation failure
2026-10-25 16:15:22 -10:00
Linus Torvalds ac5feaad48 Merge tag 'ext4_for_linus-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
 "Add support for buffered iomap support in ext4. This is not enabled by
  default, but requires the buffered_iomap mount option, as this mode
  does not support online defragmentation, inline data, fsverify,
  fscrypt, non-extent inodes, and data=journal mode. If buffered_iomap
  is enabled, ext4 will fall back to the original I/O code path
  automatically if necessary. Large writes show significant performance
  improvements when buffered iomap is enabled.

  There are also miscellaneous bug fixes and improvements, including for
  fast commit and avoiding deadlocks and out-of-bound reads when
  handling corner cases involving corrupted file systems"

* tag 'ext4_for_linus-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (41 commits)
  ext4: introduce a mount option for iomap buffered I/O path
  ext4: partially enable iomap for the buffered I/O path of regular files
  ext4: add tracepoints for EOF block zeroing and disksize-grow I/O
  ext4: add tracepoints for DISKSIZE_GROW_PENDING set, clear, and wait
  ext4: set DISKSIZE_GROW_PENDING after zeroing unaligned EOF block
  ext4: clear DISKSIZE_GROW_PENDING on truncate or error
  ext4: submit and wait for disksize-grow I/O in fallocate paths
  ext4: defer i_disksize update while DISKSIZE_GROW_PENDING is set
  ext4: advance i_disksize to i_size upon disksize-grow I/O completion
  ext4: submit and wait for pending disksize-grow I/O on writeback
  ext4: add EXT4_STATE_DISKSIZE_GROW_PENDING state bit and helpers
  ext4: disable online defrag when inode using iomap buffered I/O path
  ext4: add block mapping tracepoints for iomap buffered I/O path
  ext4: drain writeback before removing extents on the iomap path
  ext4: implement partial block zero range path using iomap
  ext4: implement mmap path using iomap
  ext4: implement writeback path using iomap
  ext4: rework handle credit accounting for unwritten extent conversion
  ext4: implement buffered write path using iomap
  ext4: do not use data=ordered mode for inodes using buffered iomap path
  ...
2026-10-25 16:09:13 -10:00
Linus Torvalds 12392d40a3 Merge tag 'ntfs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs
Pull ntfs updates from Namjae Jeon:
 "New features:

   - Implement ioctls to list, read, write, and remove named streams on
     files and directories. Provide optional file:stream pathname access
     through streams_interface=windows, exposing streams as regular file
     descriptors with support for mmap, locking, truncation, and
     allocation.

   - Support file attribute queries and updates through FS_IOC_GETFLAGS
     and FS_IOC_SETFLAGS. Store immutable, append-only, nodump, and
     noatime settings in the private $LINUXFLAGS extended attribute and
     restore them when loading inodes. Also report compression,
     encryption, and the mount-wide case-folding policy as read-only
     attributes.

  Other changes:

   - Expose the existing NTFS volume serial number through FS_IOC_GETFSUUID
     by registering it as an eight-byte filesystem identifier.

   - Validate MFT I/O geometry and write MFT records and mirror data
     through mapped I/O units, keeping neighboring records intact when
     multiple records share a native 4Kn block. Track folio writeback
     until all BIOs complete, serialize raw record updates against
     writeback, and use the caller's requested completion mode.

   - Discard stale uninitialized cache data before extending initialized
     size, ensure shared mmap writes update initialized size after
     native 4Kn size extension, and synchronize attribute inode sizes
     after internal resizes. Keep VFS and NTFS sizes consistent when
     write-error rollback fails and record the volume error.

   - Wait for existing folio writeback before updating attribute data,
     require page alignment for full-page write optimizations, and
     include the final partial cluster in synchronous writes. Skip
     duplicate VFS page-cache truncation under the MFT record lock to
     avoid a truncate and writeback deadlock.

   - Restart allocation zone searches after failed hints and prevent
     contiguous allocation requests from returning additional disjoint
     runs that callers leave uninitialized. Allow fallocate after
     MFT-zone exhaustion and interrupt allocation loops only for fatal
     signals, avoiding spurious interruptions from io_uring task-work
     notifications.

   - Wait for the initial bitmap scan before extending the MFT bitmap,
     bound direct allocation candidates by the volume size, update
     free-space accounting, and undo only newly allocated clusters after
     run coalescing. Update attribute-list inode size before reserving
     additional space.

   - Hold runlist locks while expanding non-resident attributes, balance
     locks during MFT extension error handling, and avoid pointers
     invalidated by runlist reallocation. Keep source runlists available
     for rollback and allocate enough room for runlist markers and
     terminators.

   - Return errors for unmappable runlist fragments instead of treating
     them as holes or delayed allocation. Check non-resident attribute
     sizes against their allocation and fail mounts when $MFT needs
     extent records outside the decoded runlist to describe itself,
     preventing silent zero reads and mount hangs.

   - Load and validate $BadClus:$Bad at mount time and reserve known bad
     clusters before the free-space scan. Fall back to read-only
     operation when bad-cluster metadata cannot be validated and prevent
     subsequent read-write remounts.

   - Serialize volume flag updates and retain the dirty bit after
     metadata changes while the volume remains mounted read-write.
     Persist recorded errors after final metadata commits, fail ordinary
     read-only remounts on sync, commit, or flush errors, and retain the
     dirty bit on forced remounts.

   - Flush the device write cache when syncing directories and report
     flush failures from both file and directory fsync. Drain in-flight
     direct I/O before buffered write fallback and keep nonblocking
     requests from entering the blocking fallback path.

   - Mount hibernated volumes, or volumes whose hibernation state cannot
     be determined, read-only regardless of the errors= policy. Prevent
     mount-time and dirty-state updates from modifying hibernated
     volumes.

   - Validate complete EA chains, link zero-terminated tails when
     appending entries, retain the EA presence flag, and distinguish
     empty values from removal. Propagate lookup, write, and truncate
     errors, restore both EA attributes after failed updates, and shut
     down the volume if restoration fails.

   - Restore the previous ACL xattr when a subsequent WSL mode update
     fails, including replacement and removal cases. Record rollback
     failures so an unsuccessful permission change cannot silently leave
     inconsistent ACL and mode state.

   - Apply MST fixups to individual index blocks on large-page systems
     and use fixed 512-byte VCN units when an index block is smaller
     than its cluster. Support lookup and removal of POSIX names
     containing Windows-invalid characters and identify directory
     symlinks and junctions during enumeration.

   - Report the stored creation time for symbolic links through statx()
     when querying the link itself with AT_SYMLINK_NOFOLLOW.

   - Use wider decompression offsets to avoid overflow on 64 KB pages,
     accept the standard sparse compression unit, and require the
     compressed-size field only on the first attribute extent. Block
     direct reads and skip readahead for encrypted files to prevent
     returning raw ciphertext.

   - Validate index entry offsets, logfile update sequence array counts,
     attribute-list sizes, and index collation key lengths to prevent
     out-of-bounds accesses, NULL pointer dereferences, and excessive
     allocations from corrupt volume metadata.

   - Derive FITRIM bitmap indexes from the page size and retain the full
     64-bit minimum discard length. Balance highmem mappings in logfile
     and MFT mirror checks and propagate specific errors from extent,
     attribute, and reparse operations.

   - Compare streams_interface with the mounted volume's setting during
     remount, make named-stream UAPI padding explicit, document stream
     access and Linux file attributes, and add the NTFS UAPI header to
     MAINTAINERS"

* tag 'ntfs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs: (93 commits)
  ntfs: handle a failed size rollback in the write error path
  ntfs: fix u16 truncation of the update sequence array count check
  ntfs: reject index blocks with a too small entries offset
  ntfs: support persistent noatime attribute
  ntfs: roll back the ACL xattr commit when the WSL mode update fails
  ntfs: report birth time for symbolic links
  ntfs: support FS_IOC_GETFSUUID
  ntfs: avoid unnecessary padding in uapi structure
  ntfs: flush the block device when syncing a directory
  ntfs: report block device flush failures from fsync
  ntfs: fix NULL dereference on index allocation open failure
  ntfs: compare streams_interface with mounted volume on remount
  ntfs: widen the sub-block offsets in ntfs_decompress()
  ntfs: reject direct I/O reads of encrypted files
  ntfs: do not read ahead encrypted files
  ntfs: persist nodump in the $LINUXFLAGS EA
  ntfs: persist append-only in the $LINUXFLAGS EA
  ntfs: persist immutable in the $LINUXFLAGS EA
  ntfs: add fileattr query support
  ntfs: restore EA attributes when an update fails
  ...
2026-10-25 15:59:06 -10:00
Linus Torvalds 42023dd0a2 Merge tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat
Pull exfat updates from Namjae Jeon:

 - Use the recalculated append position when advancing valid_size, dirty
   all pages involved in valid-data extension, and zero invalid tails on
   partial overwrites. Write-protect the folio spanning the old EOF and
   zero its post-EOF range when extending a file, ensuring subsequent
   mmap writes advance valid_size.

 - Make valid_size and zeroed_size atomic to prevent torn reads and lost
   updates. Hold the invalidate lock during truncation, and drain
   in-flight direct I/O before buffered writes, buffered fallback, and
   page-cache operations that extend valid_size.

 - Fall back to single-cluster allocation when a buffered write cannot
   allocate its entire range, allowing writes to consume the remaining
   free space and return a short count.

 - Free clusters allocated beyond EOF after failed or short writes to
   prevent leaked space and spurious ENOSPC errors on later writes or
   file extensions.

 - Clean block-device buffer aliases when allocating clusters so delayed
   directory metadata writeback cannot overwrite file data after cluster
   reuse.

 - Update used_clusters as each cluster is allocated so
   partial-allocation cleanup keeps free-space accounting consistent.
   Acquire bitmap_lock before checking available space to serialize the
   check with allocation.

 - Use swap-specific iomap operations to report allocated extents beyond
   valid_size as unwritten during swap activation, retaining
   byte-accurate SEEK_HOLE and SEEK_DATA reporting in regular I/O.

 - Check allocation flags, vendor GUIDs, cluster numbers, data lengths,
   and contiguous extents in Vendor Allocation directory entries. Read
   complete entry sets during lookup so malformed trailing entries
   cannot bypass validation.

 - Follow directory FAT chains to their actual end when the recorded
   size is too small, supporting devices that leave directory sizes
   stale. Handle reads after seeking past the directory end.

 - Clear the volume dirty flag during remount only when switching to
   read-only without SB_FORCE. Update percent_in_use when changing
   volume flags, reporting unknown usage while the volume is dirty or
   persistent flags prevent marking it clean.

 - Replace runtime division by powers of two with bit operations.

 - Document supported mount options, and exfatprogs, and add the
   documentation path to MAINTAINERS.

* tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
  exfat: fix reading a directory whose FAT chain is longer than its size
  exfat: free clusters beyond EOF when a write fails or is short
  exfat: clean stale bdev buffers of newly allocated clusters
  exfat: mark straddling folio RO and zero the post-EOF range
  exfat: fix a large buffered write failing when the volume is nearly full
  exfat: zero invalid tail on partial overwrites
  exfat: drain in-flight DIO before buffered writes
  exfat: make valid_size and zeroed_size atomic
  exfat: dirty all new pages when extending valid_size
  exfat: hold the invalidate lock while truncating
  exfat: advance valid_size to EOF for append writes
  MAINTAINERS: add exFAT documentation
  exfat: remove runtime integer division
  exfat: update percent_in_use field when updating volume flags
  exfat: clear the volume dirty flag only when remounting read-only
  exfat: doc: add documentation
  exfat: validate vendor allocation directory entries
  exfat: take bitmap_lock at the start of exfat_alloc_cluster()
  exfat: fix used_clusters accounting during cluster allocation
  exfat: map allocated extents for swap activation
2026-10-25 15:54:05 -10:00
Linus Torvalds 4e1b4fdf61 Merge tag 'ksmbd-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb
Pull smb server updates from Namjae Jeon:

 - Add extended SMB2 directory information support.

   Implement FileIdExtdDirectoryInformation, FileId64ExtdDirectoryInformation,
   FileId64ExtdBothDirectoryInformation, FileIdAllExtdDirectoryInformation,
   and FileIdAllExtdBothDirectoryInformation, including reparse tags, file
   attributes, and initialized response padding.

 - Track unsigned 64-bit lock ranges in the server lock index, with
   conflict detection, blocking waits, cancellation, rollback, and
   cleanup for ranges beyond the VFS signed-offset limit.

 - Add configurable per-connection session limits.

   Reserve slots for new sessions and multichannel bindings, release
   them during failure and cleanup, and expose the configured limit
   through procfs.

 - Validate POSIX negotiate and CREATE contexts, including payload
   lengths, extension tags, duplicate contexts, dialect
   requirements, and share eligibility. Require POSIX opens for
   POSIX file, directory, and filesystem information queries.

 - Apply requested POSIX create modes, including mode zero, and NFS
   mode ACEs with special permission bits. Enforce append-only
   writes and base byte-range lock checks on each open's POSIX
   state.

 - Complete POSIX metadata responses with filenames, file types,
   permission bits, and filesystem device identifiers. Query
   filesystem information through the requested open and report the
   filesystem fragment size and response length.

 - Validate SMB3 encryption transform flags and ensure decrypted
   compound requests use the session authenticated by the transform,
   including requests containing compressed payloads.

 - Serialize negotiation with receive processing, size CREATE
   responses for their contexts, reserve UTF-16 terminator space in
   stream information, and validate WRITE data against the active
   compound request to prevent buffer overruns and stale-data
   writes.

 - Validate security descriptor offsets before pointer arithmetic,
   handle DACL offset overflow on 32-bit systems, and propagate
   inode ACL lookup failures safely.

 - Deny access through empty DACLs while retaining the owner's
   implicit security-management rights. Add KUnit regression
   coverage for DACL walk boundaries and maximal-access
   calculations.

 - Validate RPC pipe ownership for IPC$ reads and writes, and fix
   FSCTL_PIPE_TRANSCEIVE handle lookup and response file IDs.

 - Fix durable reconnect path validation for symlinked share paths,
   shares exporting "/", and handles opened at the share root. Check
   path boundaries before comparisons to prevent out-of-bounds reads
   and cross-share confusion.

 - Rebind completed durable CREATE replays to surviving channels
   without draining unrelated requests on the old channel. Transfer
   open accounting with the binding and avoid consuming additional
   open-file budget during durable reconnects.

 - Scope AppInstanceId takeovers to the matching share, path,
   stream, and client identity. Check access and AppInstanceVersion
   before closing an existing open.

 - Retry oplock and lease break notifications through other live
   channels, track queued TCP delivery, serialize acknowledgment
   updates, and expire unacknowledged breaks while waking blocked
   requests.

 - Keep lease tables and byte-range lock indexes independent of
   their original connection so surviving channels and detached
   durable opens retain access to lease and lock state.

 - Reclaim ended sessions after logoff and expiration, hold
   connection references for session channels, and drain procfs
   readers before releasing session table references. Avoid
   deadlocks during previous-session teardown and connection
   scavenging.

 - Prevent file publication after tree disconnect and retain tree
   references until final file release. Take parent dentry
   references during directory enumeration and serialize directory
   emptiness checks with readdir.

 - Prevent share-root removal through empty removal paths and return
   appropriate errors for directory zero-data requests and temporary
   directory attributes.

 - Fix named-stream writes, EOF changes, end-of-file reads, and
   content copying into rename targets. Reuse existing xattr names,
   report sizes by exact xattr name, and avoid emptying streams
   after lookup or permission failures.

 - Round allocation requests to the advertised allocation unit and
   avoid allocation changes that leave on-disk EOF inconsistent with
   the in-memory size.

 - Inherit FileIds across related compound requests, including
   CHANGE_NOTIFY, and use the existing async request machinery for
   notify waiting and cancellation.

 - Restore share configuration and Kerberos authentication
   compatibility with released ksmbd-tools. Advertise extended
   session security for raw NTLMSSP when requested by the client.

 - Improve Windows chained-compression compatibility, synthesized
   AFP_AfpInfo headers, generated short names, and UTF-16 alignment
   in partial normalized-name responses.

 - Fix interface-query locking, response chaining, link-speed
   reporting, and independent IPv4/IPv6 address enumeration. Display
   native IPv6 client addresses accurately in procfs.

 - Improve SMB Direct socket cleanup by reclaiming failed pending
   connections, skipping failed sockets during accept, avoiding
   indefinite disconnect waits, and handling unexpected receive
   opcodes without triggering kernel warnings.

 - Select CRYPTO_AES for SMB3 encryption, replace deprecated system
   workqueues, and update feature status documentation and POSIX
   specification references.

* tag 'ksmbd-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb: (95 commits)
  ksmbd: select CRYPTO_AES
  ksmbd: prevent share root removal through empty paths
  ksmbd: serialize directory emptiness checks with readdir
  ksmbd: fix parent dentry lifetime in directory enumeration
  smb/server: prevent file publication after tree disconnect
  ksmbd: restore Kerberos logins with released ksmbd-tools
  smb/server: replace deprecated system workqueues
  ksmbd: reject FILE_ATTRIBUTE_TEMPORARY on directories
  ksmbd: deny access for an empty DACL instead of granting the request
  ksmbd: reject foreign RPC pipe handles on IPC$ read and write
  ksmbd: fix fd_limit accounting across durable reconnects
  ksmbd: drain session procfs readers before dropping table references
  ksmbd: reclaim ended sessions on logoff and expiration
  ksmbd: limit sessions on each connection
  ksmbd: hold a connection reference for each session channel
  ksmbd: defer connection scavenging while session locks are busy
  ksmbd: accept share config responses from ksmbd-tools before 3.5.3
  ksmbd: round SetAllocation to the advertised allocation unit
  ksmbd: avoid restoring only in-memory EOF after allocation change
  ksmbd: inherit FileIds in related compound requests
  ...
2026-10-25 15:47:41 -10:00
Linus Torvalds 9e089e670e Merge tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
Pull nfs client updates from Anna Schumaker:
 "New Features:
   - Modernize the direct I/O path
   - Size the LAYOUTGET reply buffer for wide flexfiles layouts
   - Flexfiles device notifications and caching for wide striped layouts
   - isolate mTLS client credentials by network namespace

  Bugfixes:
   - Various localio, flexfiles, xprtrdma, and TLS fixes
   - Merged bugfixes from Trond that he was unable to send during the 7.3-rc cycle

  Other Cleanups and Improvements:
   - Split up pNFS block layout and SCSI layout support"

* tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (68 commits)
  nfs/localio: pin UUIDs during global invalidation
  NFSv4/flexfiles: fail I/O to the data server once a lock is lost
  pNFS/flexfiles: don't report an interrupted DS connect as a DS error
  pNFS/flexfiles: make pg_init retry loops killable
  nfsv4/pnfs: use the MDS authflavor for data server connections
  xprtrdma: trim head iovec when the payload arrives via a Write chunk
  nfs: set gencount on protocol-specific remove
  xprtrdma: prevent disconnect feedback during endpoint teardown
  NFS: add a key type that reveals the namespace .nfs keyring serial number
  NFS: name the namespace .nfs keyring in the x509 handshake
  SUNRPC: pass a keyring serial number to the TLS handshake
  NFS: allocate the .nfs keyring per network namespace
  NFS: name the init_nfs_fs() error labels
  NFS: return DENIED in decode_lock_denied if we cannot decode owner
  pNFS/flexfiles: don't reset to MDS for v4 error when previous layout forbid it
  pNFS/flexfiles: don't read through MDS when previous layout forbid it
  pNFS/flexfiles: honor FF_FLAGS_NO_IO_THRU_MDS over the mdsthreshold hint
  NFS/localio: report the stability a DIO WRITE actually has
  NFS/localio: detect a short read or write before the iterator has moved
  NFS/localio: fix nfs_local_dio_misaligned tracepoint
  ...
2026-10-25 15:42:16 -10:00
Linus Torvalds 47439bb163 Merge tag 'nfsd-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
Pull nfsd updates from Chuck Lever:
 "Jeff Layton extended the netlink listener-set operation so that
  a management daemon can register NFSD's programs with rpcbind
  itself. This prevents an unresponsive rpcbind from stalling NFSD
  administration for a minute at a time.

  Bulk delegation recall now adjusts the number of delegations it
  wants returned, based on memory pressure. The previous mechanism
  was spec-conformant, but it requested all delegations to be
  returned at once. Clients are free to return few or none in such
  cases, but requesting smaller batches of delegations is more
  neighborly.

  In preparation for handling TLS KeyUpdate, the server's TCP
  receive path has been reworked to handle control records. In the
  process, the use of sock_recvmsg was replaced with ->read_sock,
  which contends less with other holders of the socket lock.

  NFSv2 XDR code is now generated by xdrgen, which mechanically
  generates the encoders and decoders from the RPC language
  specification for the protocol. Replacing hand-built XDR code
  makes prototyping new protocol elements faster, reduces errors,
  and improves memory safety. Replacement of XDR code for newer NFS
  versions will continue in subsequent releases of NFSD.

  The remaining bulk of changes in v7.4 is bug fixes, clean-ups, and
  small optimizations. Sincere thanks to all contributors,
  reviewers, testers, and bug reporters who participated in the v7.4
  NFSD development cycle"

* tag 'nfsd-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (184 commits)
  SUNRPC: use assign_bit() where applicable
  nfsd: Fix id-to-name cache entry leak in idtoname_parse()
  NFSD: Use xdrgen XDR functions for NFSv2 READDIR results
  NFSD: Refactor NFSv2 directory cookie encoding
  NFSD: Add a streaming directory reader
  NFSD: Use xdrgen XDR functions for NFSv2 READDIR arguments
  NFSD: Use xdrgen XDR functions for the NFSv2 STATFS procedure
  NFSD: Use xdrgen XDR functions for NFSv2 RMDIR procedure
  NFSD: Use xdrgen XDR functions for NFSv2 MKDIR procedure
  NFSD: Use xdrgen XDR functions for NFSv2 SYMLINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 LINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 RENAME procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 REMOVE procedure
  NFSD: Use xdrgen XDR functions for NFSv2 CREATE procedure
  NFSD: Refactor nfsd_proc_create()
  NFSD: Use xdrgen XDR functions for NFSv2 WRITE procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 WRITECACHE procedure
  NFSD: Use xdrgen XDR functions for NFSv2 READ procedure
  NFSD: Use xdrgen XDR functions for NFSv2 READLINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 LOOKUP procedure
  ...
2026-10-25 15:12:41 -10:00
Linus Torvalds 9206d6c40b Merge tag 'for-linus-7.4-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux
Pull orangefs updates from Mike Marshall:

 - Don't continue on to gpf if client dies on write.

   If the orangefs userspace client died while writeback was
   occurring it led to a gpf. This allows the kernel to finish
   the writeback. Reported by Farhad Alemi.

 - Don't wait on service operation on system shutdown

   This avoids waiting an already dead userspace to process an
   unmount operation if the system is shutdown while orangefs
   filesystems are still mounted.

 - Use ssize_t instead of size_t for error codes...

   This fixes a situation where an unsigned variable was being
   used to collect a string size, or possibly a negative error
   code. Reported by lkp@intel.com

* tag 'for-linus-7.4-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
  orangefs: don't continue on to gpf if client dies on write.
  orangefs_super: don't wait on service operation on system shutdown.
  orangefs: use ssize_t instead of size_t for error codes...
2026-10-25 15:07:49 -10:00
Linus Torvalds 21a7f44fd0 Merge tag 'devicetree-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring:

 - A bunch of improvements in dt-check-style. Fix various bindings based
   on these additional checks.

 - Convert hisilicon,hix5hd2-ir, hisilicon,hi6220-ade,
   hisilicon,hi6220-dsi, hisilicon,hip05-sas-v1, MediaTek RT5650 codecs,
   mediatek,g3dsys, mediatek,mt2701-scpsys, ti,omap-mpu, and
   ti,omap-ocp2scp to DT schema format

 - Add schemas for ST STM32MP2 DWC3 xHCI USB, ST STM32MP25 USB2-FEMTO
   PHY, spacemit,k1-gpu and spacemit,k3-gpu, HiSilicon local bus,
   HiSilicon HIP05 CPLD, SDMC DM2016, and QCom SM7250 and Kuno PDC

 - Various binding updates to fix schema warnings in .dts files

 - Drop obsolete .txt bindings for STM32(MP1) RCC, VExpress hwmon and
   regulator, and mailbox.txt

 - Remove the unused of_overlay_remove_all() function

 - Fixes for of_check_msi_parent()

 - Add "i2c-parent" tracking to fw_devlink

* tag 'devicetree-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (72 commits)
  dt-bindings: usb: dwc3: Document ST STM32MP2 DWC3 xHCI USB controller
  dt-bindings: iommu: Describe MT8195 infra IRQs
  dt-bindings: clock: mediatek: Add MT8516 fallbacks
  dt-bindings: media: Convert hisilicon,hix5hd2-ir to DT schema
  dt-bindings: display: Convert hisilicon,hi6220-ade to DT schema
  dt-bindings: display: Convert hisilicon,hi6220-dsi to DT schema
  dt-bindings: phy: Document ST STM32MP25 USB2-FEMTO PHY
  of: overlay: remove unused of_overlay_remove_all()
  dt-bindings: power: Convert mediatek,mt2701-scpsys to DT schema
  dt-bindings: bus: Add HiSilicon local bus
  dt-bindings: gpu: img,powervr-rogue: add spacemit,k1-gpu and spacemit,k3-gpu
  dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC
  dt-bindings: vendor-prefixes: add Ambarella
  dt-bindings: reset: Drop obsolete STM32(MP1) RCC bindings
  dt-bindings: arm: keystone: ti,sci: Correct reg and mboxes constraints
  dt-bindings: ASoC: Convert MediaTek RT5650 codecs bindings to DT schema
  dt-bindings: scsi: Convert hisilicon,hip05-sas-v1 to DT schema
  of/irq: Stop the MSI walk at the first msi-parent
  of/irq: Fix device node refcount leak in of_check_msi_parent()
  dt-bindings: display: faraday,tve200: Use a level-high interrupt
  ...
2026-10-24 20:11:23 -10:00
Linus Torvalds 89d2d7bf06 Merge tag 'efi-next-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi
Pull EFI updates from Ard Biesheuvel:

 - Set the LoaderDevicePartUUID EFI variable from the stub to help
   systemd discover the file system layout when booting straight into
   Linux without GRUB or systemd-boot (Vincent Mailhol)

 - Some GUID deduplication work from Vincent

 - Remove pointless UTF16->UTF8 and vice versa conversions from the stub

 - Some kmap() -> kmap_local_page() conversions in the capsule loader

 - Add a runtime control to en/disable EFI runtime services so that
   PREEMPT_RT systems can enable them as needed

 - Add a 'nostatfs' mount option to efivarfs so that the cost of
   querying the EFI variable store (which is already rate limited) can
   be avoided entirely on systems where it is disproportionately costly

 - Rework the EFI libstub Makefile to align x86 with other
   architectures, and inherit/adapt the global CFLAGS variable rather
   than reconstruct it from scratch

 - Constify attributes of statically allocated sysfs nodes

 - Avoid register x18 when building the arm64 EFI stub, in order to
   comply with the UEFI spec, and to permit it to execute in a context
   where x18 is special

 - Preserve the physical addresses of all EFI config tables that may be
   of interest to an incoming kexec kernel

 - Add some LKDTM tests for EFI runtime crashes where the faulting
   address is inside a EFI memory region

 - Other minor bug fixes and cosmetic cleanups

* tag 'efi-next-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi: (35 commits)
  lkdtm: Add more EFI runtime tests
  efi: Initialize all configuration table addresses to EFI_INVALID_TABLE_ADDR
  efi: Retain the address of the LINUX_EFI_MEMRESERVE table
  efi/libstub: Don't replace an existing LINUX_EFI_MEMRESERVE table
  efi/runtime-wrappers: Don't park the worker after a recovered firmware fault
  efi: Use sysfs_emit() not sprintf() to generate sysfs file contents
  efi: Constify sysfs attributes
  efi/libstub: Disable kernel stack erasing in the common flags
  efi/libstub: Build the x86 stub from KBUILD_CFLAGS
  efi/libstub: Declare the x86 stub's assembly entry points
  efi/libstub: arm64: Don't use the platform register x18
  efi/libstub: Free cmdline_ptr in efi_pe_entry
  efi/riscv: libstub: Don't set image_size in handle_kernel_image()
  efi/libstub: Fix error unwind freeing fdt in allocate_new_fdt_and_exit_boot()
  efivarfs: add nostatfs mount option to skip QueryVariableInfo()
  efi/libstub: add initial Boot Loader Interface support
  efi/libstub: Add efi_snprintf() to construct wide strings
  efi/libstub: Add support for printing human readable GUIDs
  efi/libstub: Output UTF-16 directly from vsnprintf()
  efi/libstub: Avoid efi_puts() for compile time constant strings
  ...
2026-10-24 20:07:00 -10:00
Linus Torvalds 9628ee0c22 Merge tag 'gpio-fixes-for-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull gpio fixes from Bartosz Golaszewski:

 - add ACPI quirks for Thinkpad L13 Gen 2a and Acer Nitro 16S AI to
   ignore a wrong GPIO interrupt declaration

 - add missing return value check of devm_gpiochip_add_data() to
   gpio-lpc32xx

 - don't set GPIOD_FLAG_IS_OUT from character device code as GPIO core
   already does it where needed and it can lead to providing invalid
   info to user-space on request errors

 - don't report a bogus -ENOMEM for a line requested without a label

 - propagate errors occurring when setting line values for pins for
   which we emulate open-drain or open-source drive settings

 - fix interrupt handling bugs in gpio-pca953x and gpio-davinci

 - fix more memory leaks in GPIO core

 - clear event clock flags from pins on GPIO release

* tag 'gpio-fixes-for-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  gpiolib: don't report -ENOMEM for a requested line without a label
  gpiolib: Propagate emulated drive errors when setting arrays
  gpio: pca953x: Handle direction register read errors in IRQ paths
  gpio: pca953x: Preserve wakeup accounting on parent IRQ failure
  gpio: davinci: Clear interrupt status in every bank on suspend
  gpiolib: Free chip resources when allocating the label fails
  gpiolib: cdev: don't set GPIOD_FLAG_IS_OUT
  gpiolib: clear the event clock flags when a line is released
  gpiolib: fix memory leak in gpiod_set_array_value_complex() EPERM error path
  gpiolib: acpi: Ignore GPIO 11 interrupt on Acer Nitro 16S AI
  gpio: lpc32xx: check devm_gpiochip_add_data() return value
  gpiolib: acpi: Ignore GPIO 11 interrupt on ThinkPad L13 Gen 2a
2026-10-24 20:02:48 -10:00
Linus Torvalds 44388c8f3e Merge tag 'mtd/for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull MTD updates from Miquel Raynal:
 "Core MTD:
   - Fixes to the virt-concat driver
   - Added INT0800 firmware-flash map driver
   - mtdblock: prevent reclaim I/O during request processing
   - cfi_cmdset_0002: cap the write-buffer chunk at 256 bytes on an x8 device

  Raw NAND:
   - Clean up the Qualcomm controller driver again
   - Improve / create Arasan and IBM
   - Reflect that ESMT and GigaDevice share ID 0xc8, and disable broken
     timings feature on GD9FU2G8F3A
   - Drop platform data support from the lpc32xx drivers

  SPI NAND:
   - Heyangtek uses two bytes for the BBM like every other device
   - Winbond: Add support for W25N04LW and W25N08LW
   - Support for ISSI SPI NAND flashes

  SPI NOR:
   - Support for new Macronix and (lots of) Winbond flash devices
   - Rewrite the status register handling. There were many small helper
     functions to enable quad I/O mode in many different ways. That's
     now consolidated in one generic function.
   - Rework the SFPD handling. It used to be only parsed for flashes
     present in the in-kernel database which had any of the multi-I/O
     bit set - or with the addition of generic flash driver for any
     unknown flashes. This left a gap where SFDP wasn't handled and it
     turns out newer flashes (with SFDP support) will reused IDs of just
     these old flashed. With the rework, SFDP is tried to be parsed for
     any flashes and will amend the information which is already present
     in the in-kernel database.
   - Increase SFDP size limit to 16KiB. There are flashes which have
     some larger gaps between tables and thus exceeds the former 4KiB
     limit.
   - Flash fixups are getting more and more common. Due to this, the
     fixups are now a separate list (per manufacturer) instead of being
     attached to a specific flash. A new .match() callback makes them
     more flexible, when one is applied.
   - Support 1-1-8 and 1-8-8 modes with larger flashes which need 4byte
     addresses

  Then there is the load of API updates and misc AI fixes"

* tag 'mtd/for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (155 commits)
  mtd: spi-nor: sfdp: reduce stack usage in spi_nor_parse_sfdp()
  mtd: spi-nor: sfdp: fix missing kernel-doc
  mtd: parsers: qcom: fix offset/size overflow on large partitions
  mtd: spinand: heyangtek: Reserve both bad block marker bytes
  mtd: rawnand: pl353: fix clk reference leak in pl35x_nfc_setup_interface()
  mtd: nand: use dmaengine_submit() instead of ->tx_submit()
  dt-bindings: mtd: convert IBM NDFC binding to YAML
  mtd: rawnand: fsl_ifc: allocate shared ctrl with devm_kzalloc
  mtd: rawnand: qcom: fix read location register usage in config_nand_cw_read()
  mtd: rawnand: qcom: move common code to the 'qpic_common' module
  mtd: rawnand: qcom: rename 'nand_stats' structure
  mtd: rawnand: qcom: make nandc_set_read_loc_last() more generic
  mtd: rawnand: qcom: make nandc_set_read_loc_first() more generic
  mtd: rawnand: qcom: make config_nand_cw_write() more generic
  mtd: rawnand: qcom: make config_nand_page_write() more generic
  mtd: rawnand: qcom: make config_nand_page_read() more generic
  mtd: rawnand: qcom: make check_flash_errors() more generic
  dt-bindings: mtd: arasan: Add "power-domains" for ZynqMP
  mtd: virt-concat: unlink discarded items before freeing
  mtd: virt-concat: unlink concat node before freeing it
  ...
2026-10-24 19:49:58 -10:00
Linus Torvalds a8c2facb7b Merge tag 'pinctrl-v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij:
 "Nothing special really, some new drivers, the usual trickle of fixes.

  Oddly not even vary many LLM-assisted fixes, I guess they haven't
  found their way into this subsystem yet.

  Core changes:

   - Support input-debounce-ns pin config property.

  New drivers:

   - Qualcomm:
       - Hawi SoC TLMM and LPASS LPI TLMM
       - Kuno (ARM32!) SoC TLMM
       - MSM8952 SoC TLMM
       - PMAU0102 SPMIO GPIO

   - Starfive JHB100 SoC sys0, sys0h, sys1, sys2, per0, per1,
     per2 per2pok and per3 (apparently strongly modularized silicon)

   - Ambarella CV75

   - Apple T8140 SoC used in iPhone 16 [Pro] and MacBook Neo

   - Econet EN7528

   - Allwinner Sunxi A733

   - Mediatek MT6735

  Improvements:

   - Renesas RZ/3GL: SD channel PoC, I2C power source etc

   - The SCMI pin controller uses generic helpers for handling
     groups and functions"

* tag 'pinctrl-v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (106 commits)
  pinctrl: stm32: program the EXTI mux from .alloc instead of .activate
  pinctrl: stm32: Fix the unit of the hwspinlock timeout
  pinctrl: stm32: Fix fwnode reference leak in stm32_gpiolib_register_bank()
  dt-bindings: pinctrl: brcm,nsp-gpio: Convert to DT schema
  pinctrl: mediatek: Add MT6735 pinctrl driver
  dt-bindings: pinctrl: mediatek,mt6779-pinctrl: Add bindings for MT6735 pin controller
  dt-bindings: pinctrl: mediatek,mt6779-pinctrl: Document MT6765 pin controller
  dt-bindings: pinctrl: mediatek,mt6779-pinctrl: Add MT6795
  dt-bindings: pinctrl: mediatek,mt6779-pinctrl: Improve pinctrl subnode and property descriptions
  dt-bindings: pinctrl: mediatek,mt6779-pinctrl: Pull pinctrl node changes from MT6795 document
  pinctrl: tegra: xusb: free maps on DT map failure
  pinctrl: sprd: free maps on DT map failure
  pinctrl: kconfig: Select generic pinctrl helpers for scmi pinctrl
  pinctrl: scmi: Replace pinctrl ops get group info with generics
  pinctrl: scmi: Replace pinmux ops get function info with generics
  pinctrl: ambarella: fix NULL vs IS_ERR() bug in amb_pinctrl_register()
  pinctrl: starfive: fix missing CONFIG_OF dependencies
  pinctrl: ambarella: add CONFIG_OF dependency
  pinctrl: apple: Add t8140-pinctrl support
  dt-bindings: pinctrl: apple,pinctrl: Add t8140 compatible
  ...
2026-10-24 19:44:48 -10:00
Linus Torvalds a32e63a613 Merge tag 'input-for-v7.4-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input updates from Dmitry Torokhov:

 - Updates to input core to reject parent device overrides on managed
   input devices so devres lifetime management is not split across
   different devices, along with fixes for da7280, drv2665, drv2667, and
   tps6507x-ts that were reparenting managed input devices, and removal
   of redundant parent assignments across multiple drivers

 - A fix in input core to always accept EV_SYN events in input_event()
   and input_inject_event() so events seeded before device registration
   are properly flushed by input_sync()

 - A fix in matrix-keymap helper to reject keycodes above KEY_MAX and
   prevent out-of-bounds bitmap writes

 - Fixes and cleanups for HP GSC PS/2 (gscps2) serio driver to resolve
   race conditions in port list management, ring buffer access, and
   interrupt handling, return IRQ_NONE for unhandled shared interrupts,
   and drop busy-waiting on transmit

 - Fixes for maple_keyb driver to correct inverted key press detection,
   implement open and close methods so polling only runs while the
   device is open, and clean up unused driver fields

 - Fixes for maplecontrol driver to emit EV_SYN after reporting events,
   only enable axes reported by the controller with corrected hat
   limits, and stop polling and clear the callback on close

 - Updates to maplemouse driver to stop polling and clear the callback
   on close and drop redundant driver data cleanup

 - Fixes for matrix_keypad driver reverting forced switching of row
   GPIOs to input mode that broke row interrupts on platforms with
   separate GPIO and interrupt pinmux functions, and propagating the
   actual error code from matrix_keypad_build_keymap()

 - A fix for st-keyscan driver to keep the interrupt disabled while the
   peripheral clock is gated off to prevent bus faults, along with probe
   error handling improvements

 - A fix for mms114 touchscreen driver to disable interrupts before
   synthesizing touch release events during suspend so concurrent
   interrupts do not leave stuck active touch slots

 - Updates to xpad driver to support GameSir Nova Lite controller

 - A number of updates to device tree bindings, including a new schema
   for Analog Devices AD7147 CapTouch controller, conversion of SiS 9200
   I2C touchscreen binding to DT schema format, and allowing the
   wakeup-source property on Dialog DA9062 onkey

 - Other assorted driver cleanups, style fixes, and conversions,
   including switching to named initializers for acpi_device_id tables
   and converting cyttsp5 to DEFINE_SIMPLE_DEV_PM_OPS.

* tag 'input-for-v7.4-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (94 commits)
  Revert "Input: matrix_keypad - force switch rows to input mode"
  Input: s6sy761 - drop duplicate axis initialization in s6sy761_probe()
  Input: always accept EV_SYN in input_event()
  dt-bindings: input: dlg,da9062-onkey: Allow wakeup-source property
  Input: xpad - add GameSir Nova Lite support
  Input: touchscreen - use named initializers for acpi_device_id
  Input: mouse - cyapa: use named initializers for acpi_device_id
  Input: misc - use named initializers for acpi_device_id
  Input: keyboard - use named initializers for acpi_device_id
  Input: reject parent overrides on managed input devices
  Input: tps6507x-ts - fix input device parent assignment
  Input: drv2667 - fix input device parent assignment
  Input: drv2665 - fix input device parent assignment
  Input: da7280 - fix input device parent assignment
  Input: maple_keyb - remove unused mdev->driver assignment
  Input: maplecontrol - remove unused mdev->driver assignment
  Input: maplemouse - remove unused mdev->driver assignment
  Input: maplecontrol - remove redundant drvdata resetting
  Input: maple_keyb - remove redundant drvdata resetting
  Input: maplemouse - remove redundant drvdata resetting
  ...
2026-10-24 19:42:04 -10:00
Linus Torvalds 065af32bd4 Merge tag 'firewire-updates-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394
Pull firewire updates from Takashi Sakamoto:

 - Guarantee asynchronous packet and transaction callbacks in process
   context

   Both the 1394 OHCI driver and the core transaction layer have been
   changed to guarantee that asynchronous packet and transaction
   callbacks are invoked in process context. In v6.17, the execution
   context depended on the transaction destination: callbacks for
   transactions destined for remote nodes were invoked from a workqueue,
   whereas callbacks for transactions destined for the local node or
   terminated due to internal errors were invoked in the transaction
   initiator's context.

   All such callbacks are now guaranteed to execute in process context,
   eliminating the need to account for different execution contexts when
   implementing callback functions.

 - Fill kerneldoc for transaction layer

   The above change guarantees a consistent execution context for packet
   and transaction callbacks, making it possible to document their
   execution context in kerneldoc.

 - Enable compiler-based context analysis for the transaction layer

   The core transaction layer is sufficiently complex that
   compiler-based context analysis can help detect invalid call paths.

 - Fix a reference count leak in the cdev layer

   A reference count leak was reported when a user space application
   delegated isochronous resource management. This issue has now been
   fixed.

 - Add KUnit tests for the configuration ROM parser and generator

   In recent years, questions have been raised about how the
   configuration ROM parser and generator handle boundary conditions and
   edge cases. KUnit tests have been added to verify their behavior in
   these situations. KUNIT_STATIC_STUB_REDIRECT is used to stub the
   transaction responder so that it returns the configuration ROM
   contents.

 - Misc fixes for kerneldoc and nosy-dump application

* tag 'firewire-updates-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (88 commits)
  firewire: core: replace drain_workqueue() with flush_workqueue()
  firewire: core: adjust context_unsafe() usage for lockdep checks
  firewire: core: invoke packet callback from workqueue when removing card instance
  firewire: core: use designated initializer for dummy driver on card removal
  firewire: core: use context analysis to check lock state when scheduling error callbacks
  firewire: core: check precondition when scheduling error callbacks
  firewire: core: use workqueue to cancel all pending transactions on card removal
  firewire: core: reuse helper function for scheduling error callbacks
  firewire: core: don't disable error work for transaction
  firewire: core: use release/acquire pair when replacing underlying driver on card removal
  firewire: core: add kerneldoc for inbound transaction-related symbols
  firewire: core: add kerneldoc for outbound transaction-related symbols
  firewire: core: use appropriate spinlock variants for transaction-related locks
  firewire: core: narrow the card lock scope when accessing node_id
  firewire: core: use context analysis annotations and lockdep checks for topology map lock
  firewire: core: use context analysis annotations and lockdep checks for split timeout lock
  firewire: core: use context analysis annotations and lockdep checks for transactions lock
  firewire: core: enable context analysis for transaction layer
  firewire: core: add might_sleep() checks to transaction layer
  firewire: core: fulfill kerneldoc for fw_cancel_transaction()
  ...
2026-10-24 19:39:46 -10:00
Linus Torvalds 42e6549eaf Merge tag 'media/v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:

 - v4l2 core:
     - improve subdev and pixformat kAPI;
     - fix P010 format info and add Y12 format info;
     - add fwnode_graph_for_each_endpoint_scoped();

 - New sensor drivers:
     - Sony IMX576
     - OmniVision OS02G10, OV05C10 and OG0VA1B
     - Samsung S5KJN5
     - Himax HM1246

 - Maxim GMSL2/3: add support for MAX9296A, MAX96717, and MAX96724

 - Intel IPU6: add support for IPU7, IPU7.5 and IPU8

 - NXP: add support for i.MX95 CSI pixel formatter driver

 - ITE: add driver for IT6625/IT6626 HDMI bridge

 - Qualcomm: add CSI2 3ph DPHY driver

 - Rockchip: add rk3576 MIPI capture vicap driver

 - STM32 DCMIPP: Add STM32MP25 subdevices

 - Lots of driver fixes and cleanups

* tag 'media/v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (596 commits)
  media: i2c: imx576: Fix line length register
  media: ov05c10: Remove duplicated writes to analogue gain register
  media: ov05c10: Power management fixes
  media: ov05c10: Set reset GPIO high when acquiring it
  media: ov05c10: Small cleanups
  media: maxim-serdes: Disable test pattern generator for now
  media: mc: Keep INTERNAL pad flags just for the kernel, for now
  media: i2c: imx576: select VIDEO_CCS_PLL to repair build error
  media: Documentation: mc: Fix Stream reference
  media: i2c: add imx576 image sensor driver
  dt-bindings: media: i2c: Add imx576 sensor
  media: i2c: maxim-serdes: add MAX9296A driver
  media: i2c: remove MAX96714 driver
  media: i2c: maxim-serdes: add MAX96724 driver
  staging: media: remove MAX96712 driver
  arm64: defconfig: disable deprecated MAX96712 driver
  media: i2c: maxim-serdes: add MAX96717 driver
  media: i2c: remove MAX96717 driver
  media: i2c: add Maxim GMSL2/3 deserializer framework
  media: i2c: add Maxim GMSL2/3 serializer framework
  ...
2026-10-24 19:27:32 -10:00
Linus Torvalds 75c1cb8178 Merge tag 'sound-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
 "The AI flood continues, which brought us a fairly busy development
  cycle again with changes spread across the subsystem, ranging from
  (lots of) core hardening to new platforms and codecs.

  Here are some highlights.

  ALSA core:
   - PCM: race fixes around channel-map controls, draining/unlink, drop
     sync-stop handling, and DMA buffer delay sync
   - Compress-offload: state and geometry validations, buffer leak fix,
     and stream/card lifetime management
   - Jack: module pinning during debugfs access, control removal race
     fix, and early injection exposure
   - Timer & sequencer: module pinning for user timers, RCU grace period
     wait on port deletion, UMP bounds fixes
   - Mark OSS sequencer emulation as deprecated
   - RawMIDI: proper disconnect handling and input work drain cleanup
   - Control: fixes for vmaster racy setups and control callback
     serialization, UAF fix on card disconnect

  ASoC core:
   - Continued framework refactoring, deployment of
     auto_selectable_formats across codecs and platform DAIs
   - Generic card cleanup: free jack GPIOs on card remove for
     simple-card and audio-graph-card variants
   - SDCA improvements: SimpleJack function type support, library
     helpers, and non-ACPI build support
   - Conversion of deprecated DMA API calls

  ASoC SOF:
   - Support for compressed audio playback on SOF IPC4 with Intel TGL+
   - AMD ACP 7.B / 7.F SoundWire and PDM controller support, ASP
     carveout firmware loading
   - Function topology support for Intel I2S machines

  ASoC platforms & codecs:
   - Qualcomm: New QAIF driver for Shikra platform, WCD9378 SDCA codec,
     Nord Ride/RRD and Motorola Edge 30 boards, LPASS macro cache
     converted to maple tree
   - New codec drivers: ESS ES9039Q2M, Nuvoton NAU83G60 amplifier,
     Senary SN624x SoundWire SDCA codec
   - MediaTek / Airoha: New Airoha AN7581 AFE and WM8960 machine
     drivers, extensive clock and error-handling cleanups across
     MediaTek SoCs
   - NVIDIA Tegra: WM8994 machine driver and CS35L45 MDSYNC support
   - Realtek: RT766/RT767, RT721_U, RT718 variants, RT712 GPIO LED
     control
   - Cirrus Logic: CS35L45 MDSYNC support, CS35L56 regmap default tests
   - TI: TAS2573 DSP support in TAS2781, TAS2783 SoundWire fixes
   - Everest Semi: ES8326 standby / HPF controls, ES8389 / ES8375 resume
     fixes
   - Removal of obsolete ST-Ericsson Ux500 MOP500 machine driver

  HD-audio:
   - ACPI controller runtime PM suspend/resume support
   - Controller shutdown and unbind race fixes for unsol events and jack
     polling
   - HDMI: High Bit Rate (HBR) audio capability enabled, ELD proc and
     converter bounds checks
   - AW88399 side codec SSID-specific firmware naming and Lenovo Legion
     R9000P enablement
   - Realtek / Conexant / Cirrus / TI quirks for numerous laptops
     (Lenovo, ASUS, HP, Acer, HONOR, Minisforum, MSI, etc.)
   - Creative CA0132 Sound BlasterX AE-5 external RGB LED strip support

  USB-audio:
   - Dedicated mixer driver for Audient EVO4
   - Native Instruments Kore controller LCD support and keymap fix
   - Pioneer DJ DDJ-SZ and Roland (OCTA-CAPTURE / QUAD-CAPTURE
     multirate, TD-11) support
   - UAC2/3 mixer unit matrix evaluation and bounds checking
   - Hardening for LINE6 and caiaq drivers against malformed packets and
     races
   - Device-specific quirks for PreSonus, TASCAM, Logitech, Mayflower,
     MOONDROP, Yamaha, etc.

  Misc:
   - Auto-cleanup conversion for snd_card_free() and devres migration
     across dozens of legacy PCI, ISA, and Sparc drivers
   - ALSA loopback (aloop) timer lifecycle fixes and new aloop selftest
   - pcmtest driver fixes and kselftest updates"

* tag 'sound-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (924 commits)
  ALSA: hda/realtek: Add mute and mic-mute LEDs for HP ENVY 16 (103c:8be5)
  selftests: ALSA: pcmtest: Compare all captured bytes in ni_capture
  ALSA: usb-audio: Use strscpy() in append_ctl_name()
  ALSA: caiaq: Use strscpy() in snd_usb_caiaq_input_init()
  ALSA: hiface: Use scnprintf() in hiface_chip_create()
  selftests/alsa: Check the aloop PCM Slave controls for a matching playback
  ALSA: aloop: Update the PCM Slave controls for a matching playback
  selftests: ALSA: pcmtest: Make room for the longest fill pattern
  selftests: ALSA: pcmtest: Check the frame count of each transfer
  ALSA: hda/realtek: Fix speakers on COLORFUL L1 Plus
  ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P AFR10
  ALSA: line6: Handle period elapsed calls outside the locks
  ALSA: emux: Stop voices before freeing zones in all cases
  ALSA: emux: Fix UAF of soundfont zones at note-on
  ALSA: mtpav: restore negation dropped in guard() conversion
  ALSA: compress: reject restarting an ACTIVE task via origin_seqno
  ALSA: compress: add missing OPEN-state gate to SET_METADATA
  ALSA: compress: reject buffer geometry change on gapless next_track
  ALSA: compress: fix buffer leak on failed SET_PARAMS
  ALSA: hda/realtek: Enable jack detection on Minisforum AI X1
  ...
2026-10-24 19:16:20 -10:00
Linus Torvalds 0dfc0090b9 Merge tag 'fbdev-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev
Pull fbdev updates from Helge Deller:
 "A whole lot of small fixes all over many drivers, but the majority of
  changes are related to code cleanups regarding the cursor handling in
  vt and fbcon.

  Fixes:
   - core: initialize modelist in framebuffer_alloc()
   - core: bitblit: fix glyph clipping when fbcon pans
   - fbcon: restore font geometry if font rotation fails
   - sh_mobile_lcdcfb: restore the per-overlay sysfs attributes
   - udlfb: don't rebuild the mode list while the framebuffer is in use
   - atmel_lcdfb: prevent FIFO work after removal

  Cleanups:
   - vt, fbcon, vgacon: cursor code rework & cleanups
   - MAINTAINERS: name the deller/linux-fbdev for-next branch
   - drop unused FB_IOMEM_HELPERS_DEFERRED Kconfig option
   - acornfb: remove unused code
   - atafb: fix sparse warnings and avoid casts
   - sstfb: use managed PCI device enable
   - gxt4500, kyro, nvidia: release write-combining handle on probe failure
   - various drivers: typo fixes in comments
   - various drivers: fix error path on fb_deferred_io_init() failure
   - various drivers: use FB blanking constants instead of VESA constants"

* tag 'fbdev-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (53 commits)
  fbdev: xilinxfb: Use FB blanking constants
  fbdev: platinumfb: Use FB blanking constants
  fbdev: sa1100fb: Remove comment on VESA DPMS modes
  fbdev: i810fb: Use FB blanking constants
  fbdev: au1100fb: Use FB blanking constants
  fbcon: Retry rotated font allocation after failure
  fbcon: Rebuild rotated font buffer on font change
  fbcon: Include font geometry in the rotated font cache
  fbdev: bitblit: Fix glyph clipping when fbcon pans
  fbcon: Replace fbcon_fill_cursor_mask() with fbcon_cursor_glyph()
  lib/fonts: Add font_glyph_cursor() helper
  vgacon: Use vt_cursor_{start,end}()
  vgacon: Remove trailing whitespaces
  vt: Add cursor-size helpers
  MAINTAINERS: name the deller/linux-fbdev for-next branch
  fbdev: atafb: avoid cast when assigning buffer address pointer
  fbdev: atafb: fix sparse warnings
  fbdev: atyfb_base: fix typos in comments
  fbdev: aty128fb: fix typos in comments
  fbdev: mach64: fix typos in comments
  ...
2026-10-24 19:11:27 -10:00
Linus Torvalds 330517c63a Merge tag 'char-misc-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull Char/Misc/IIO/others driver updates from Greg KH:
 "Here is the big set of char/misc/android/iio and other small driver
  subsystem patches for 7.4-rc1. Loads of stuff in here, larger than
  normal. Highlights include:

   - removal of the C binder code, the rust version is stable and will
     be used going forward in a few billion devices. Great job by those
     developers

   - loads and loads of IIO driver updates and feature additions

   - speakup driver fixes and updates

   - mhi driver updates

   - mei driver updates

   - xillybus driver fixes

   - comedi driver fixes

   - lots of coresight driver updates

   - Interconnect driver updates

   - nvmem driver updates and fixes

   - slimbus driver updates and fixes

   - spmi driver updates and fixes

   - lots of tiny misc and char driver fixes based on people scanning
     for things

  All of these have been in linux-next for a while with no reported
  issues, other than a merge conflict with one of the rust tree files,
  which should be simple to resolve"

* tag 'char-misc-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (446 commits)
  rust_binder: wake epoll on self-work queued to poll thread
  rust_binder: avoid overflow in get_node_debug_info()
  MAINTAINERS: Add Abel as SPMI co-maintainer
  spmi: mtk-pmif: Fix clock reference leak in mtk_spmi_bus_probe()
  iio: adc: qcom-spmi-iadc: Remove regmap R/W wrapper functions
  iio: adc: qcom-spmi-iadc: Migrate to devm_spmi_subdevice_alloc_and_add()
  misc: qcom-coincell: Migrate to devm_spmi_subdevice_alloc_and_add()
  phy: qualcomm: eusb2-repeater: Migrate to devm_spmi_subdevice_alloc_and_add()
  power: reset: qcom-pon: Migrate to devm_spmi_subdevice_alloc_and_add()
  nvmem: qcom-spmi-sdam: Migrate to devm_spmi_subdevice_alloc_and_add()
  spmi: Add helper to get a parent SPMI device
  spmi: Implement spmi_subdevice_alloc_and_add() and devm variant
  spmi: Remove unneeded goto in spmi_device_add() error path
  spmi: Print error status with %pe format
  spmi: Remove redundant dev_name() print in spmi_device_add()
  spmi: Fix potential use-after-free by grabbing of_node reference
  spmi: mtk-pmif: Add workaround for FSM lockup/error in read operation
  MAINTAINERS: Add Qualcomm SPMI controller entry
  spmi: pmic-arb: return 0 in spmi_pmic_arb_register_buses() on success
  comedi: addi_apci_3xxx: fix subdevice count underallocation
  ...
2026-10-24 15:44:26 -10:00
Linus Torvalds 168151cdb0 Merge tag 'usb-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB / Thunderbolt update from Greg KH:
 "Here is the big set of USB and Thunderbolt changes for 7.4-rc1.
  Included in here are:

   - thunderbolt driver updates and fixes

   - lots of dt schema conversions

   - usb gadget driver fixes (and a new maintainer!)

   - usb core fixups with some interactions with the driver core

   - usb serial updates and fixes for scan-found "issues"

   - xhci driver updates

   - typec driver updates

   - dwc3 driver updates

   - lots of usb gadget driver fixes for syzbot found "problems"

   - lots of other small USB driver fixes for randomly reported problems.

  All of these have been in linux-next with no reported issues"

* tag 'usb-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (158 commits)
  usb: gadget: dummy_hcd: prevent unbind via sysfs
  usb: gadget: dummy_hcd: add tick_us module parameter for timer-rate tuning
  usb: gadget: dummy_hcd: set no_sg_constraint only on the SuperSpeed bus
  usb: gadget: dummy_hcd: fix SuperSpeed ep0 maxpacket
  usb: gadget: fix refcount underflow in gadgetfs_bind() error path
  USB: core: document purpose of interface parent reference
  MAINTAINERS: add Neill Kapron as USB Gadget maintainer
  USB: Documentation: Update description of completion callback context
  USB: serial: mxuport: support RS485 mode configuration
  USB: serial: mxuport: handle SEND_NEXT transmit flow control
  USB: serial: add generic write control callbacks
  USB: serial: mxuport: add MUX50U-based device support
  USB: serial: mxuport: clean up firmware version handling
  USB: serial: mxuport: clean up product ID definitions and device table
  USB: serial: sierra: fix urb leak on write completion
  usb: typec: ucsi_ccg: Add retry mechanism in ccg_read
  usb: host: xhci-tegra: Add Tegra264 XHCI support
  usb: host: xhci-tegra: Skip MBOX MSG_ENABLED on Tegra264
  dt-bindings: usb: Add Tegra264 XUSB host support
  usb: xhci-pci: Add TUSB73x0 definitions
  ...
2026-10-24 15:31:19 -10:00
Linus Torvalds cb8fef4b07 Merge tag 'tty-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty / serial driver updates from Greg KH:
 "Here is the "big" set of tty and serial driver updates for 7.4-rc1.

  It's not really all that big, it's been kind of quiet in this area of
  the tree this development cycle in relation to other parts of the
  tree. But still, included in here are:

   - 8250 port updates and fixes

   - 8250 driver cleanups by Jiri

   - deletion of the obsolete moxa driver (making this pull request
     remove more lines than added!)

   - different serial driver updates for dma and other reported issues

  All of these have been in linux-next with no reported problems"

* tag 'tty-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (91 commits)
  tty: hvc: dcc: Detect JTAG connection only on CPU core 0
  serial: earlycon: Use isdigit() in earlycon_init()
  serial: core: Use isdigit() in uart_parse_options()
  dt-bindings: serial: snps-dw-apb-uart: Add Synaptics sl2610 uart
  serial: amba-pl011: drive the bus during break in RS485 mode
  serial: mcf: update author email address
  serial: pmac_zilog: report received breaks
  serial: pmac_zilog: push received data to the port that received it
  serial: amba-pl011: keep transmitter enabled when disabling RS485
  serial: ma35d1: Do not force-enable an unselected console
  serial: amba-pl011: honour delay_rts_before_send for every write
  Revert "serial: 8250_port: Drop duplicate NULL check"
  serial: 8250: make port operations work on struct uart_8250_port
  serial: 8250_omap: set priv->line before enabling the IRQ
  serial: 8250_lpss: do not touch uninitialized line in ehl_serial_exit()
  serial: 8250_exar: store the GPIO platform device in struct exar8250
  serial: 8250_exar: remove useless void * casts
  serial: 8250: drop err label from serial8250_register_8250_port()
  serial: core: fix TIOCSSERIAL and TIOCSERCONFIG on uninitialised ports
  serial: max310x: don't transmit while an RS485 reconfigure is pending
  ...
2026-10-24 15:25:54 -10:00
Linus Torvalds e1cff82880 Merge tag 'staging-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver updates from Greg KH:
 "Here is the big set of staging driver updates for 7.4-rc1.

  The huge majority of changes in here were to the rtl8723bs driver,
  which ended up being deleted entirely through the wifi driver tree, so
  while the work here was nice to have done to get experience by people,
  the overall goal was achieved in that we have a solid working and sane
  driver in the real part of the tree now.

  Other than that, included in here are:
    - some greybus driver removal of broken drivers that no one ever used
    - minor coding style cleanups for other staging drivers

  All of these have been in linux-next with no reported issues, other
  than the merge conflict of the driver being removed, but that's an
  obvious one to resolve :)"

* tag 'staging-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (145 commits)
  staging: rtl8723bs: remove unnecessary parentheses
  rtl8723bs: Remove redundant macro in basic_types.h
  staging: rtl8723bs: remove spaces before tabs in hal_com_reg.h
  staging: greybus: Align function arguments
  staging: greybus: uart: fix argument alignment
  staging: greybus: Remove unused header declaration to_fw_mgmt_connection
  staging: most: fix typo in driver_usage.txt
  staging: vme_user: avoid iterator variable access outside list loop
  staging: greybus: Remove unused function 'to_fw_mgmt_connection'
  staging: greybus: replace PTR_ERR() with %pe in error messages
  staging: octeon: fix misuse of kernel-doc comment
  staging: nvec: fix GPIO descriptor documentation
  staging: fbtft: update outdated struct fbtft_ops comment
  greybus: Discard pm_runtime_put_autosuspend() return value
  staging: rtl8723bs: remove unused defines in odm.h
  staging: rtl8723bs: remove commented out code in hal/ files
  staging: rtl8723bs: remove unused defines in HalBtcOutSrc.h
  staging: rtl8723bs: remove unused PCI ASPM OSC definitions
  staging: rtl8723bs: remove unused EEPROM definitions
  staging: rtl8723bs: return bool from check_pending_xmitbuf
  ...
2026-10-24 15:07:12 -10:00
Linus Torvalds 6fba331225 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley:
 "Small number of driver updates (mpi3mr, ufs, scsi_debug).

  By far the biggest core change (at 4000+ lines) is the sense code
  rework to make our sense handling follow the 16 bit defines in the
  SCSI standard rather than our split ASC and ASCQ handling which ends
  up being confusing and difficult to grep.

  The changes should all be functionally equivalent and so far the bots
  and AI seem to agree; the code has been incubating in -next since 16
  September with one reported issue fixed.

  The remaining updates are minor"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (114 commits)
  scsi: ufs: rpmb: Fix power-on UNIT ATTENTION retry
  scsi: bfa: Use snprintf() in bfa_fcs_fabric_psymb_init()
  scsi: bfa: Use snprintf() in bfa_fcs_fabric_nsymb_init()
  scsi: MAINTAINERS: Remove Avri Altman as UFS reviewer
  scsi: st: Relock the door after a reset
  scsi: st: Restore the drive buffering mode after reset
  scsi: st: Record the tape position after a successful MTLOAD
  scsi: st: Restore changed drive settings after reset also for MTLOAD and MTRETEN
  scsi: scsi_debug: Validate the access parameters of WRITE ATOMIC (16)
  scsi: scsi_debug: Map the region written by WRITE ATOMIC (16)
  scsi: scsi_debug: Refuse a short WRITE ATOMIC (16) before writing it
  scsi: scsi_debug: Advance the write pointer over the data written
  scsi: scsi_debug: Do not write a partial physical block to a zoned device
  scsi: scsi_debug: Enforce physical block alignment of zoned writes
  scsi: scsi_debug: Report the residual of a write
  scsi: scsi_debug: Avoid 32-bit overflow in WRITE SCATTERED offsets
  scsi: scsi_debug: Evaluate scsi_debug_lbp() only once
  scsi: scsi_debug: Take the zone metadata lock before the data lock
  scsi: scsi_debug: Refuse a negative physblk_exp
  scsi: scsi_debug: Make atomic writes and ZBC emulation mutually exclusive
  ...
2026-10-24 14:30:22 -10:00
Linus Torvalds b23545529c Merge tag 'for-7.4/block-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux
Pull block updates from Jens Axboe:

 - NVMe updates via Keith:
     - Apple M4 (t8132) ANS2 NVMe support
     - nvme-multipath sysfs attributes for path_state, iopolicies, and
       fail_on_ctrl_loss, plus path state evaluation fixes
     - nvme-tcp parallelized I/O queue allocation and startup, and using
       the caller's network namespace
     - nvmet passthru UAF fix and rework, PR preempt use-after-free
       fixes, auth hardening, and traffic based keep alive support
     - DH-HMAC-CHAP secret attributes readable by root only
     - Various other fixes and cleanups

 - swim driver overhaul and fixes, plus floppy fixes, via a pull from
   Denis

 - Block device buffered and direct I/O rework from Tal: use
   iomap_dirty_folio, take i_rwsem for the write fallback and splice
   read, honor IOCB_NOWAIT in the buffered read path, and reject atomic
   write fallback to buffered I/O

 - Large zone revalidation rework: serialize revalidation, handle
   capacity changes by dropping and retrying zone write plugs, propagate
   read-only and offline conditions, and treat offline and read-only
   zones as dead

 - ublk robustness work around canceled FETCH rounds and going live over
   canceled io commands, dropping the default I/O scheduler, and a batch
   of selftest additions

 - blk-iocost flush cost support and zone append accounting

 - rust block fixes for Send/Sync bounds on GenDisk and TagSet, and
   import style cleanups

 - Atomic write fixes capping size by the PI buffer constraints and
   failing short atomic pins

 - Skip the redundant flush for O_DSYNC direct writes, and only use
   REQ_FUA when the device supports it

 - Store GPT attributes as a raw value

 - Remove support for swapping loop fds

 - Various other fixes and cleanups all over

* tag 'for-7.4/block-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: (144 commits)
  block: restore the iterator when rejecting a misaligned bio
  blk-mq: clear stale inactive flag on hctx reuse
  block, bfq: initialize active lists for all actuators
  zloop: print device that had errors
  ublk: pin module while release work is pending
  blk-mq: drop the tag_set argument from blk_mq_free_rq_map/tags
  blk-mq: share one tags_srcu instance across all tag sets
  blk-iocost: fix stale comment in ioc_rqos_throttle()
  blk-iocost: account zone append completions in latency stats
  blk-iocost: charge zone appends as writes
  blk-iocost: add flush cost support with the flushiops model parameter
  ublk: use global index for reported zones
  selftests: ublk: add test for going live over canceled io commands
  selftests: ublk: stop a batch thread when PREP_IO_CMDS fails
  selftests: ublk: move the control command helpers into ctrl.c
  ublk: refuse to go live after an io command was canceled
  ublk: let STOP_DEV cancel the server's commands before its release
  ublk: allow a NULL io->cmd in the cancel callback
  ublk: reset the FETCH round under ub->mutex
  ublk: reset the FETCH round in release also without a disk
  ...
2026-10-24 14:14:00 -10:00
Linus Torvalds fa899d500a Merge tag 'for-7.4/io_uring-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux
Pull io_uring updates from Jens Axboe:
 "The bulk of this is a big robustness pass over cancelation, io-wq,
  timeouts, and poll. Outside of that:

   - Large series from Josef hardening the cancelation, io-wq, timeout,
     poll, and wait paths. Fixes for lost wakeups and lost cancels as
     io-wq arms poll/timeouts, work stranding on worker exit, CQE32
     resize handling, napi entry timeouts, and a pile of smaller
     correctness issues across the board

   - Rework of how io-wq posts completions, posting from the last
     request reference and dropping the request file before the
     completion, and running ring release cancelations synchronously -
     canceling and waiting for all in-flight requests and dropping
     registered files and buffers at release time

   - Don't charge the SQ/CQ rings or provided buffer rings to
     RLIMIT_MEMLOCK, which the region API conversion had started doing

   - Split io_uring_cmd_set_res() out from io_uring_cmd_done() so a
     command can set the result from its ->end_io() handler, used by
     nvme

   - CQE32 ring fixes for the free entry check, aux CQE big_cqe zeroing,
     and the dummy skip CQE

   - Timeout fixes for sequence handling and multishot updates

   - net fixes for MSG_TRUNC buffer overconsumption and keeping recv
     buffer select length within MAX_RW_COUNT

   - Wake real-time waiters from hard interrupt context

   - Don't spin on local work an exiting task can't run, reachable by an
     unprivileged user

   - Various other fixes and cleanups"

* tag 'for-7.4/io_uring-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: (75 commits)
  io_uring: end the drain when the drain request completes
  io_uring/futex: return a wait's data to the cache when it fails to arm
  io_uring/wait: wake real-time waiters from hard interrupt context
  io_uring/waitid: return -EAGAIN for a non-blocking pidfd
  io_uring/net: keep recv buffer select length within MAX_RW_COUNT
  io_uring/waitid: prevent cancel reference wrap
  io_uring/poll: don't loop on HUP with multiple references
  io_uring/timeout: don't lose a cancel as io-wq arms a timeout
  io_uring/timeout: don't flush with the sequence behind the last flush
  io_uring/timeout: don't put a sequence target behind the last flush
  io_uring/poll: avoid retry wakeup loss when dropping ownership
  io_uring: look up the file before queueing to io-wq
  io_uring/timeout: don't end a linked timeout with 1
  io_uring/timeout: no ABS update of multishot timeouts
  io_uring/net: don't retry recv on uncommitted buffers
  io_uring: don't pass restart error codes to userspace
  io_uring/openclose: keep the lock in io_pipe_fixed()
  io_uring/sqpoll: let the thread sleep on disabled rings
  io_uring/kbuf: handle index wrap in last buffer check
  io_uring/zcrx: fix buffer offsets in areas above 4GB
  ...
2026-10-24 13:43:13 -10:00
Linus Torvalds 696e75b3a6 Merge tag 'for-7.4/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper updates from Mikulas Patocka:
 "dm:
   - fix a bug in dm_accept_partial_bio that broke dm-writecache
     in persistent-memory mode
   - use assign_bit()

  dm-vdo:
   - fix misbehavior on invalid metadata

  dm-crypt:
   - use memzero_explicit
   - reject malformed keys
   - allow sector size up to page size

  dm-delay:
   - advertise flush support if the user wants to delay flushes

  dm-writecache:
   - reduce per-block metadata overhead by 8 bytes
   - report I/O error when flush failed
   - fix a quirk in statistics
   - fix a crash if we attempt to use a non-dax device
   - fix uncommitted_blocks underflow
   - fix REQ_FUA processing

  dm-verity:
   - add the option DM_VERITY_VERIFY_ROOTHASH_SIG_FORCE
   - clear LSM integrity state on suspend

  dm-thin:
   - remove unnecessary locking in pool_map

  dm-mpath:
   - small refactoring of the historical service time path selector

  dm-snapshot:
   - fix crash if dm_io_client_create fails
   - make the chunk list being sorted by the chunk number

  dm-bufio:
   - fix non-working memory limit
   - fix a race leading to an unsigned integer underflow
   - clean-up cache limit reading"

* tag 'for-7.4/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (29 commits)
  dm-verity: clear LSM integrity state on suspend
  dm-bufio: clean-up cache size reading
  dm-bufio: fix a race leading to an unsigned integer underflow
  dm-bufio: fix non-working memory limit
  dm-snapshot: make the chunk list sorted by the chunk number
  dm-snapshot: fix crash if dm_io_client_create fails
  dm-crypt: allow encryption sector size up to PAGE_SIZE
  dm-mpath: check values in hst_status while holding spinlock
  dm-mpath: standardize repeat_count handling in the HST path selector
  dm-mpath: streamline setup work in the HST path selector
  dm-writecache: fix REQ_FUA processing
  dm-writecache: fix uncommitted_blocks underflow
  dm-writecache: fix a crash if we attempt to use non-dax device
  dm-writecache: fix a quirk in statistics
  dm-writecache: report I/O error if flush failed
  dm: fix a bug in dm_accept_partial_bio
  dm thin: Remove unnecessary locking from pool_map()
  dm-verity: add DM_VERITY_VERIFY_ROOTHASH_SIG_FORCE
  dm: use assign_bit() where applicable
  dm-writecache: Reduce metadata memory use by 8 bytes per cache block
  ...
2026-10-24 13:40:26 -10:00
Linus Torvalds 5b0764a532 Merge tag 'drm-next-2026-10-21' of https://gitlab.freedesktop.org/drm/kernel
Pull drm updates from Dave Airlie:
 "Highlights:

   - core: a lot of atomic refactoring in progress, panic got split into
     a core/helpers model

   - amdgpu: enables HDMI 2.1 FRL and other good things finally, UAlink
     over Ethernet support

   - xe: has a bunch of CRI support, ras error for bad vram, memory
     offlining support.

   - msm: enables a bunch more GPUs.

  Otherwise it's a the usual mountain of stuff all over the place.
  Details:

  rust:
   - I/O tree shared with driver-core
   - DMA tree shared with driver-core
   - allow aux registration data closures to return covariant sub-fields
   - Implement Send and Sync for MapleTree
   - add pci resource flags and IORESOURCE_MEM_64

  drm/rust:
   - add dma_fence abstraction
   - init DRM registrations and their data in place
   - drop unused flags argument to registration

  vgaarb:
   - rework API to pass a private ptr instead of pci device

  sound:
   - adapt to omapdrm changes

  gem:
   - add callback for handle count going to 0

  gpusvm:
   - share one HMM fault and keep single mappings inline

  pagemap:
   - Prevent CPU stalls during unbounded pagemap teardown

  dma-fence:
   - fix docs

  vga_switcheroo:
   - disconnect from fbcon
   - update fbcon from within fbdev emulation

  atomic:
   - move DRM from state reset callbacks to atomic_create_state
   - remove drm_simple_encoder_init

  panic:
   - split into core and helpers

  buddy:
   - improve dirty tracking

  clients:
   - improve vmap handling
   - fbdev: Move helpers from drm_kms_helper.ko to drm_client_lib.ko

  display:
   - export HDMI SCDC status data via debugfs
   - rework SCDC for better HDMI 2.0 support
   - dp/mst: improve DPCD compliance

  edid:
   - parse AMD VSDB
   - parse ALLM/VRR capabilities
   - support detecting panel size

  log:
   - add drm_warn_ratelimited

  sched:
   - cleanup interface
   - add missing locking
   - fix run-queue cleanup
   - fix locking

  sysfb:
   - remove obsolete quirk for Lenovo D330
   - fix panel orientation for non-native display modes
   - drop drm_class_device_register

  colorop:
   - provide DRM_COLOR_OP_FIXED_MATRIX

  bridge:
   - analogix: Support eDP lane mapping
   - ti-sn65dsi83: Support LVDS Channel B on SN65DSI84
   - Select DRM_PANEL_BRIDGE for various drivers that require it
   - add chrontel ch7218a support

  panel:
   - panel-edp: Support MNE007QS3-F, TM140VDXP15, and KD116N36-30NB-A001
   - samsung-s6d16d0: Use mipi_dsi_*_multi() functions
   - support Ilitek ILI7836A OLED plus DT bindings
   - support Novatek NT36532 plus DT bindings
   - convert several drivers to managed cleanup
   - fix Kconfig selections
   - edp:
      - Add support for BOE NV140FHM-T0A
      - Support CSOT MNE007QB1-1
      - NV140WU2-M70
   - ebbg-ft8719: Fix MODULE_LICENSE() string; Improve initialization
   - samsung: Share test-key helpers
   - ilitek-ili9882t: Support Ilitek IL79600A plus DT bindings
   - simple: Support Truly TFT320240-229-E plus DT bindings; Support BOE
     DV215FHM-R01 plus DT bindings
   - Refactor struct drm_panel to contain struct drm_bridge plus fallout
     in various panel drivers
   - Add support for BOE Novatek NT51021, Retroid Pocket 6, Raydium
     RM69220 DDIC panels, Sharp LQ138P1JX61 eDP, BOE NV140FHD-N43, AUO
     B140HAN04.0, AUO 0x0db3, panels.

  amdgpu:
   - use AMD VSDB for freesync
   - implement YUV-to-RGB with fixed-matrix colorop
   - enable FRL for HDMI
   - HDMI 2.1 freesync support
   - HDMI 2.1 ALLM support
   - HDMI 2.1 VRR support
   - UALoE (UALink over Ethernet) support
   - add syncobj_points to userq signal ioctl
   - drop unused kunit tests
   - NBIO/GC/MMHUB/SMU updates/fixes
   - GPU spatial partitioning updates
   - display kunit fixes
   - userq fixes
   - RGB quantization fixes
   - DC RMCM refactor
   - DP MST fixes
   - USB4 fixes
   - add new trace events
   - Rework display instance handling
   - stack frame size fixes for various compilers/configs
   - VCN 4/5 reset fixes
   - freesync updates
   - cursor refactor
   - Fix direct scanout alpha on some DRM_FORMATs
   - Expand Mac reserved memory workaround
   - Make runtime pm more fine grained

  amdkfd:
   - updates and fixes
   - GC 10 CU occupancy support

  radeon:
   - eDP fix for DCE3.2 iMacs

  xe:
   - add drm_ras netlink error event support
   - add memory page offlining support
   - introduce error threshold to drm_ras
   - fix stale GTT mappings on unmap
   - reject page faults for non-page fault mode scratch VM
   - enable CRI package and VRAM temperatures
   - introduce cold reset recovery
   - handle CRI+ power interval encoding
   - VF migration for multi-queue
   - handle exec queue teardown after hot unplug
   - alerts and controller enabling modifications
   - use IBCv3 on PTL
   - VRAM health check
   - report GT TDR and VM rebind faults using SIGID
   - add multi_queue_active_lrca debugfs
   - shrinker: Runtime PM reference for non-system memory
   - guc: Add simple KLV decoder helpers
   - debugfs: Expose per-engine idle status
   - Keep walking on SVM eviction failure
   - Nuke PTs only after unlinking contested VMAs
   - limit sg segment size to PAGE_SIZE on Xen PV
   - keep VF LMEM bar size low if no VFs
   - CPU binds and ULLS on migration queue
   - New PTL PCI ID
   - Enable PXP for NVL-S
   - Do not dma_fence_put zero fences in err_out path
   - Refresh TTM LRU on SVM prefetch
   - export device UID in sysfs

  i915:
   - rename GEN6_PCODE_DATA to match spec
   - fix incorrect RCU teardown order
   - fix potential UAF in command parsing
   - avoid WARN splat during RPS boosting race
   - use simpler min functions
   - Fixes to make i915 work well with PREEMPT_RT

  i915/display:
   - Enable CMRR (Content Match Refresh Rate) in fixed-RR VRR path
   - Switch DG2 MPLL to DPLL framework
   - DP-HDMI PCON DSC fixes
   - limit invalid joiner combinations
   - CDCLK related fixes and refactor around PCODE integration
   - Gate UHBR SST SDP splitting on sink caps
   - add HDMI TMDS audio bandwidth check
   - vswing/preemph override
   - enable AS SDP Skip frames
   - Handle negative configuration index on DP link caps for robustness
   - Preparation for enabling SDR plane color pipeline
   - An eDP quirk for HP Pavilion Plus
   - Introduce PME (Power Management Event) support on display hotplug
   - Handle VSC SDP revision 7 in unpack

  msm:
   - CI:
      - Dropped sc7180 trogdor lazor from the CI
   - Core:
      - Fixed msm_ioremap for resources without a name
      - Changed msm.separate_gpu_kms to default to auto selection
   - GPU:
      - Enable CLX (Current Limit eXtension) for gen8 to avoid exceeding
        limits on CX/GX rails
      - New GPUs: a830 (Pakala), a845 (Maili), a850 (Hawi), x2-85
        (Mahua)
      - Fix VBIF halt mask on a306, which was preventing runpm suspend
      - Enable THP support for GEM buffers
      - Add modparam to disable waiting on fences in shrinker
      - Drop use of drm_prime_sg_to_page_array()
      - a5xx: don't read the GPMU registers on GPUs without a GPMU
      - a2xx/a3xx/a5xx: hangcheck progress detection
      - a6xx: gmuwrapper runpm fix
      - Calculate reported GMEM size based on active slices
      - Split a6xx/a7xx/a8xx catalog
   - DP:
      - Picked up some preparation patches for the MST support
      - Fixed reported status of the link training
   - DPU:
      - Fixed CRTC bandwidth computation
      - Fixed DSC programming
      - Fixed encoder disablement path
   - DSI:
      - Fixed VM leak in error path
      - Indention fix
   - MDP5:
      - Added MSM8952 configuration
      - Dropped incorrect cursor pipe on MSM8976/56
   - HDMI:
      - Small fixes

  nouveau:
   - improve runtime PM on R570 GSP firmware
   - various fixes throughout the driver
   - dispnv50: support 2.147 GHz pixel clock in GB20x

  nova:
   - add initial uapi concept
   - add initial PRAMIN access support
   - add GpuMm centralized memory manager
   - add GPU VM and BAR1 support
   - add GPU interrupts and GSP events support
   - GSP messaging fixes

  tyr:
   - use bitfield!
   - zero unsupported and newly added GPU info fields
   - limit doorbell array to 17 entries

  exynos:
   - FIMD fixes
      - Fix clock leak on resume error path
      - Fix Sparse warnings by adding missing __iomem annotation
   - VIDI cleanup
      - Replace kmalloc() and copy_from_user() with memdup_user()

  amdxdna:
   - fix BO handling
   - Support AIE2 rev 9
   - Fix UAF access in scheduler fences
   - Update workqueue interface
   - expose busy time via fdinfo

  ast:
   - support 256-byte EDID

  hyperv_drm:
   - remove support for pre win10 hosts

  komeda:
   - fix GLB_CORE_ID usage

  omap:
   - report HDMI hotplug events to ASoC HDMI codec

  panthor:
   - provide gpu_cache_flush tracepoint
   - improve dma_fence signalling latency
   - improve locking
   - export scheduling information via debugfs
   - Validate user-space input against firmware limits

  qaic:
   - reject BOs that exceed maximum page count
   - add missing include statements

  verisilicon:
   - fix hardware cursor offsets

  vkms:
   - implement YUV-to-RGB with fixed-matrix colorop

  gma500:
   - avoid unsupported ARGB formats in primary plane

  hibmc:
   - handle vblank interrupts correctly

  ivpu:
   - add DRM_IVPU_CAP_CMDQ_SET_PRIORITY
   - support command-queue priority ioctl
   - Simplify NULL-pointer handling in cleanup code

  arcpgu:
   - replace simple-display pipeline with regular atomic helpers

  aspeed:
   - replace simple-display pipeline with regular atomic helpers

  gm12u320:
   - replace simple-display pipeline with regular atomic helpers

  imagination:
   - various improvement to firmware interaction
   - add job to pvr_job_submit_fw trace event

  mali-dp:
   - fix runtime PM leak

  mcde:
   - replace simple-display pipeline with regular atomic helpers

  p111:
   - replace simple-display pipeline with regular atomic helpers
   - drop unsupported alpha formats from primary plane

  rcar-du:
   - support Renesas R-Car V4H DSC
   - dsi: Support larger transfers with AXI memory
   - Support RZ/G3L SoC

  repaper:
   - replace simple-display pipeline with regular atomic helpers

  rockchip:
   - dsi: improve PHY timings

  ssd130x:
   - support Solomon SSD1351 OLED plus DT bindings
   - ssd133x: upgrade color format to RGB565
   - ssd132x: Set correct hardware window when clearing screen

  tve200:
   - replace simple-display pipeline with regular atomic helpers

  xen:
   - replace simple-display pipeline with regular atomic helpers

  v3d:
   - improve job handling under perfmon

  vc4:
   - reliably reset V3D
   - drop brcm,vc4-v3d compatible

  virtio:
   - fix damage handling
   - Support ARGB8888 for virtio primary planes.

  host1x:
   - Support partitioning

  imx:
   - Replace simple-display with regular atomic helpers

  mxsfb:
   - Support bus formats plus DT bindings

  tegra:
   - improve syncobj handling on submit

  panfrost:
   - add Mali-G68 support
   - improve GPU reset handling

  rockchip:
   - add HDMI 2.0 support to dw-hdmi-qp
   - improve HPD handling"

* tag 'drm-next-2026-10-21' of https://gitlab.freedesktop.org/drm/kernel: (2324 commits)
  drm/adp: Switch to drm_atomic_helper_connector_create_state
  drm/malidp: Convert to atomic_create_state
  drm/vc4: Switch to drm_atomic_helper_connector_create_state
  drm/sysfb: Switch to drm_atomic_helper_connector_create_state
  drm/solomon: ssd130x: Switch to drm_atomic_helper_connector_create_state
  drm/imx: ipuv3: Switch to drm_atomic_helper_connector_create_state
  drm/hyperv: Switch to drm_atomic_helper_connector_create_state
  drm/bridge: megachips: Switch to drm_atomic_helper_connector_create_state
  drm/bridge: lontium-lt8912b: Switch to drm_atomic_helper_connector_create_state
  drm/arm: komeda: Switch to drm_atomic_helper_connector_create_state
  drm/appletbdrm: Fix incorrect error message on encoder attach failure
  drm/sun4i: hdmi: Convert to drmm_connector_hdmi_init()
  drm/rockchip: rk3066_hdmi: Advertise HDMI 1.4 capabilities
  drm/bridge: lontium-lt9611: Advertise HDMI 1.4 capabilities
  drm/bridge: ite-it66121: Advertise HDMI 1.2 capabilities
  drm/bridge: ite-it6263: Advertise HDMI 1.3 capabilities
  drm/bridge: ite-it6263: Drop redundant .mode_valid hook
  drm/bridge: inno-hdmi: Advertise HDMI 1.2 capabilities
  drm/bridge: adv7511: Advertise HDMI 1.2 capabilities
  drm/sched: Document entity->stopped is protected by entity->lock
  ...
2026-10-23 18:29:02 -10:00
Linus Torvalds 17bb0e2f6c Merge tag 'pci-v7.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
Pull PCI updates from Bjorn Helgaas:
 "Enumeration:

   - Set supported_speeds in set_pcie_port_type() so sparc64 and
     powerpc, which call it via of_create_pci_dev() instead of the usual
     pci_setup_device(), correctly set the supported PCIe link speeds
     (Stian Halseth)

   - When pcie_set_mps() changes MPS, update the value in the saved
     state so a subsequent restore doesn't restore an invalid value
     (Niklas Cassel)

   - Skip Target Speed quirk on clamped ports with no link (Maciej W.
     Rozycki)

  Driver binding:

   - Assume control of portdrv-related features only when portdrv is
     enabled, since we can't use them without portdrv (Kuppuswamy
     Sathyanarayanan)

   - Centralize feature ownership checking so code only needs to check
     'host->native_X' and doesn't need to also check 'pcie_ports_native'
     (Kuppuswamy Sathyanarayanan)

  Error handling:

   - Fix leaks when ACPI APEI/GHES error events overflow the kfifo or
     mention a device that no longer exists (Priyank Rathod)

   - Fix aer_process_err_devices() leak when a device is recorded as an
     error source purely by being mentioned in the Root Port Error
     Source and the device is inaccessible or logged only masked errors
     (Priyank Rathod)

  ASPM:

   - Disable ASPM when drivers request that, even if the OS doesn't own
     ASPM; otherwise drivers do it on their own, which is worse (Ilpo
     Järvinen)

  Power management:

   - Align hibernate poweroff flow with suspend flow for bridges so they
     can be powered down at hibernate as they are for suspend (Mario
     Limonciello)

   - Restore BARs after powering up during enumeration to fix a
     regression on devices that don't preserve state in D3hot (Keng-Yu
     Lin)

   - Avoid D3 on PLX PEX 8532/8533/8548 downstream ports, where putting
     them in D3hot takes down the whole switch (Imre Kaloz)

  Power control:

   - Add GPIO driver for Toshiba TC9563 embedded GPIO controller (Alex
     Elder)

   - Add DT documentation and pwrctrl driver support for TC9563 embedded
     GPIO controller (Lorenzo Bianconi)

   - Switch the tc9563 per-port reset to use the GPIO descriptor API
     instead of direct regmap accesses (Lorenzo Bianconi)

   - Only destroy devices created by pwrctrl core, so that when removing
     a PCIe controller driver that uses pwrctrl, we don't remove devices
     populated by another mechanism (Shawn Lin)

   - Power off child devices on power-on failure (Lorenzo Bianconi)

  PCIe native device hotplug:

   - Make the 'pciehp_poll_mode' parameter read-only to prevent changes
     via sysfs, which can cause errors when unbinding (Runyu Xiao)

  Virtualization:

   - Read SR-IOV VF Revision ID and Subsystem ID from VF instead of
     assuming they're the same as VF 0; they may differ (Logan Odell)

   - Add ACS quirk for Pericom PI7C9X2G304 switches (Hans de Goede)

  Peer-to-peer DMA:

   - Add Zhaoxin KX-6000, KH-40000, KX-6000G, KX-7000, and KH-50000 host
     bridges to allowlist (LeoLiu-oc)

   - Add Alibaba T-HEAD Yitian 710 host bridge to allowlist (Feng Tang)

   - Add Intel Haswell client host bridge to allowlist (Scott Lee)

   - Intel Xeon E3/E5/E7 0x6f00 host bridge to allowlist (kai zhang)

   - Fix handling of errors in pci_p2pdma_add_resource() to avoid (a)
     unmapping a BAR if registering another fails and (b) use after free
     of p2p_pgmap (Leon Romanovsky)

   - Wait for RCU readers before freeing state to avoid use-after-free
     of pdev->p2pdma (Leon Romanovsky)

   - Restrict pci_p2pmem_find_many() to providers backed by a pool (Leon
     Romanovsky)

   - Safely terminate ACS redirect lists to avoid out-of-bounds access
     to the buffer (Leon Romanovsky)

   - Silence 'Host bridge not in P2PDMA whitelist' warnings unless
     caller, e.g., pci_p2pmem_find_many(), requests 'verbose' (Leon
     Romanovsky)

  Sysfs:

   - Return -ENODEV or -EIO sysfs 'label' or 'acpi_index' attributes
     when Device Name _DSM fails, not -1, which is interpreted as -EPERM
     (Krzysztof Wilczyński)

   - Return valid sysfs 'acpi_index' attribute even if the Device Name
     _DSM returned an invalid 'label' (Krzysztof Wilczyński)

   - Expose sysfs 'acpi_index' and 'label' based on whether the Device
     Name _DSM returns valid data, not merely whether the _DSM is
     implemented (Krzysztof Wilczyński)

   - Avoid out-of-bounds reads of the label returned by the Device Name
     _DSM, which is in UTF-16 characters, not bytes (Krzysztof
     Wilczyński)

   - Reject unaligned resource I/O port accesses, which can oops on
     arm64 (Deepanshu Kartikey)

Endpoint framework:

   - Pass the correct physical and virtual endpoint function numbers
     when setting translation of inbound memory windows (Koichiro Den)

   - Make embedded doorbell IRQ non-shared, since currently only the
     first EPF can allocate doorbells (Koichiro Den)

   - MSI doorbells currently target the first EPF attached to an EPC;
     let other EPFs try the embedded doorbell instead of failing when
     they can't use the MSI doorbell (Koichiro Den)

   - Serialize scan of vNTB virtual PCI bus with other PCI topology
     changes (Koichiro Den)

   - Manage vNTB lifetimes to avoid leaking virtual devices and buses
     and allow removal (Koichiro Den)

   - Track vNTB link state from both sides so both see the same
     effective link state (Koichiro Den)

   - Configure vNTB MSI-X when supported to avoid IOMMU faults and
     failure to deliver doorbell interrupts on RC (Koichiro Den)

  APM X-Gene PCIe controller driver:

   - Use devm for clocks so they're automatically disabled, unprepared,
     and released if errors happen during probe (Yuho Choi)

  ASPEED PCIe controller driver:

   - Fix clk and PHY leaks in aspeed_pcie_port_init() error paths (Liu
     Zhenlong)

  Broadcom iProc PCIe controller driver:

   - Expose devm_pci_alloc_host_bridge_release() so drivers can share a
     devm release function even if they don't need the device tree
     parsing done by devm_pci_alloc_host_bridge() (Bjorn Helgaas)

   - Request only the memory window from BCMA Enumeration ROM and warn
     if it doesn't match the one in DT, which fixes an iproc-bcma probe
     failure (Semih Baskan)

  Broadcom STB PCIe controller driver:

   - Replace bool properties for each SoC configuration with a u32
     bitvector and a BFLAG() helper (Jim Quinlan)

   - Use a similar BQUIRK() helper to test various SoC quirks (Jim
     Quinlan)

  Cadence PCIe controller driver:

   - Remove device links to PHY, which are redundant because the PHY
     core itself adds them (Vladimir Oltean)

   - Return error (not success) from cdns_plat_pcie_probe() if
     pm_runtime_get_sync() or cdns_pcie_ep_setup() failed (Vladimir
     Oltean)

   - Correct the driver data pointer usage; previously .probe() stored
     'struct cdns_plat_pcie *', but .shutdown() used the pointer as
     'struct cdns_pcie *', resulting in accessing garbage (Linmao Li)

  ESWIN PCIe controller driver:

   - Publish the platform driver MODULE_DEVICE_TABLE so the driver can
     be autoloaded when built as a module (Pengpeng Hou)

  Freescale i.MX6 PCIe controller driver:

   - Fix resource and pwrctrl device leaks .probe() (Zhijian Han)

   - Improve i.MX95 Gen3 link stability by changing MPLLB_BANDWIDTH from
     default 120 to 140 (Richard Zhu)

   - Use dev_err_probe() in host init error path to silence
     -EPROBE_DEFER messages (Alexander Stein)

   - Avoid dereferencing NULL clock names when 'clocks' includes more
     phandles than 'clock-names' has names (Rudi Heitbaum)

   - Add suspend_poweroff flag so platforms like i.MX that power off RC
     controllers during suspend can enter L2 so endpoints can get
     PME_Turn_Off notifications before power loss (Richard Zhu)

  Freescale Layerscape PCIe controller driver:

   - Enable PROBE_PREFER_ASYNCHRONOUS to reduce probe time of the four
     controllers on LX2160A (Vincent Jardin)

  Intel VMD host bridge driver:

   - Flush DMA writes before handling MSI on Meteor Lake: MSI may arrive
     before write has completed, resulting in an nvme 30 second stall
     before a QID timeout and possibly other similar problems (Rickey
     Bartlett)

   - Flush DMA writes before handling MSI on Arrow Lake (Vladimir
     Nedoshivin)

  Marvell Aardvark PCIe controller driver:

   - Disable PHY on probe failures (Myeonghun Pak)

  Marvell MVEBU PCIe controller driver:

   - Refcount child OF nodes during .probe() to make a concurrent OF
     overlay removal safe (Krzysztof Kozlowski)

  MediaTek PCIe controller driver:

   - Find INTx DT property by 'interrupt-controller' name instead of
     assuming it's the first child node (Zhengping Zhang)

  MediaTek PCIe Gen3 controller driver:

   - Fix a 64-bit type truncation in mtk_pcie_set_trans_table() to avoid
     issues with windows above or larger than 4GB (Sreeraj S Kurup)

  NVIDIA Tegra264 PCIe controller driver:

   - Fix the Link Capabilities offset so we read the correct register
     (Bjorn Helgaas)

  Qualcomm PCIe controller driver:

   - Only collect reset GPIOs from PCI bridge DT nodes to avoid stealing
     resets used by downstream devices like USB controllers (Christopher
     Obbard)

   - Block accesses to downstream devices on link down to reduce a storm
     of Completion Timeout AER interrupts (Qiang Yu)

   - Skip system suspend/resume for firmware-managed PCIe, where
     firmware manages clocks, regulators, resets, etc (Mrinmay Sarkar)

   - Honor IOMMU provider's #iommu-cells in qcom_pcie_config_sid_1_9_0()
     (Manivannan Sadhasivam)

   - Deinitialize endpoint on remove (Guangshuo Li)

   - Treat Root Port error recovery as successful even if link doesn't
     come up after reset because the device was hot-unplugged (Konrad
     Dybcio)

   - Skip unnecessary iMSI-RX initialization if DT 'msi-map' is present,
     indicating an external MSI controller (Ayiluri Naga Rashmi)

  Renesas R-Car PCIe controller driver:

   - Limit Max_Read_Request_Size to 256 to avoid hardware erratum (Marek
     Vasut)

   - Support PERST# via reset subsystem as well as the existing GPIO
     support to prepare for R-Car Gen5 SoCs (Marek Vasut)

   - Add DT and driver support for the R-Car Gen 5 X5H (R8A78000) PCIe
     Gen 4 core (Marek Vasut)

   - Add Application/Local register reset DT description and driver
     support for both host and endpoint mode (Marek Vasut)

   - Add PM ops so controller works after suspend/resume (Marek Vasut)

  Renesas RZ/G3S PCIe controller driver:

   - Disable refclk on probe failure (Lad Prabhakar)

   - Propagate platform_get_irq_byname() errors so probe deferral works
     correctly (Lad Prabhakar)

   - Tear down INTx handlers if subsequent initialization fails (Lad
     Prabhakar)

   - Add RZ/G3L (R9A08G046) DT and driver support (Biju Das)

  Rockchip PCIe controller driver:

   - Limit host and endpoint controllers to 2.5 GT/s since 5.0 GT/s is
     unsafe per Rockchip (Geraldo Nascimento)

  Synopsys DesignWare PCIe controller driver:

   - Set DMA_BYPASS bit in outbound IATU CTRL2 register to avoid data
     corruption if the iATU translates DMA engine transactions (Sumit
     Kumar)

   - Use FIELD_PREP() to remove need for *_SHIFT definitions (Hans
     Zhang)

  TI DRA7xx PCIe controller driver:

   - Remove device links to PHY, which are redundant because the PHY
     core itself adds them (Vladimir Oltean)

   - Fix optional clock leak when .probe() fails by using
     devm_clk_get_optional_enabled() (Felix Gu)

  TI Keystone PCIe controller driver:

   - Remove device links to PHY, which are redundant because the PHY
     core itself adds them (Vladimir Oltean)

  UltraRISC PCIe controller driver:

   - Allow DWC drivers to skip outbound iATU setup if they don't need
     translation between CPU and PCI addresses (Xincheng Zhang)

   - Skip MEM outbound iATU setup on DP1000 (Xincheng Zhang)

  Xilinx Versal CPM PCIe controller driver:

   - Add DT and driver support for optional PERST# for use in warm reset
     scenarios (Sai Krishna Musham)

  Xilinx XDMA PCIe controller driver:

   - Fix device node reference leak in xilinx_pl_dma_pcie_init_irq_domain()
     (Wentao Liang)"

* tag 'pci-v7.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (139 commits)
  PCI/pwrctrl: Power off child devices on power-on failure
  PCI/pwrctrl: Only destroy devices created by pwrctrl core
  PCI/pwrctrl: generic: Fix leaking array from of_regulator_bulk_get_all()
  PCI/pwrctrl: tc9563: Switch per-port reset to GPIO descriptor API
  PCI/pwrctrl: tc9563: Add GPIO auxiliary device support
  dt-bindings: PCI: toshiba,tc9563: Document embedded GPIO controller
  gpio: tc9563: Add support for the embedded GPIO controller
  PCI: qcom: Skip DWC MSI host initialization when DT 'msi-map' is present
  PCI: qcom: Ignore -ENODEV after Root Port reset
  PCI: qcom-ep: Deinitialize endpoint on remove
  PCI/sysfs: Reject unaligned resource I/O port accesses
  PCI: rcar-gen4: Add missing PM ops
  PCI: endpoint: pci-epf-vntb: Honor MSI-X selection
  PCI: endpoint: pci-epf-vntb: Use a local epf pointer in interrupt setup
  PCI: dwc: imx6: Use regmap_assign_bits() for conditional set/clear
  PCI: dwc: Describe DWC PCIe fields with full masks and FIELD_PREP()
  PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain
  PCI: dwc: Rename dw_pcie_allocate_domains() to dw_pcie_allocate_msi_domains()
  PCI: dwc: Correct PCIE_DW_PLAT_EP reference in Kconfig help
  PCI/ASPM: Disable ASPM when driver requests it
  ...
2026-10-23 15:34:47 -10:00
Linus Torvalds 4da9dedf3f Merge tag 'iommu-updates-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
Pull IOMMU updates from Joerg Roedel:
 "Core:
   - Detect scatterlist length overflows and finalize deferred domain
     attachments before mapping MSI pages
   - Consolidate x86 MSI reserved-region handling and clean up internal
     DMA and SVA helpers

  AMD IOMMU:
   - Add IOMMU PerfOpt support, enabled by amdgpu for supported
     integrated GPUs in identity domains
   - Restrict forced identity mapping to GPUs that require it
   - Fix kdump device-table allocation and reuse, ATS configuration
     error handling, and an interrupt-remapping allocation leak
   - Clean up device probing and initialization
   - Add Vasant Hegde as an AMD IOMMU maintainer

  ARM SMMUv2:
   - Device-tree binding updates for Qualcomm Maili and Nord SoCs

  ARM SMMUv3:
   - Work around hardware integration issue on Google Tensor G5 SoCs
     where all DMA transactions appear as instruction fetches
   - Allow command queue size to be configured on the kernel
     command-line
   - Reduce queue sizes when running as a kdump kernel
   - Fix some pre-existing issues in the driver and kunit tests reported
     by Sashiko
   - Fix handling of Arm hardware errata relating to the contiguous hint
     when using SVA
   - Rework the TLB invalidation logic in preparation for enabling
     iommu-pt in future
   - Minor cleanups in preparation for improving support for kdump

  Apple DART:
   - Support device-tree DMA aperture specifications

  Broadcom:
   - Add BCM2712 IOMMU support for Raspberry Pi 5 display and multimedia
     devices, including the generic page-table format and shared TLB
     cache management

  Hyper-V:
   - Add a para-virtualized guest IOMMU driver with guest-managed
     stage-1 page tables and page-selective IOTLB invalidation

  Intel VT-d:
   - Enhanced IQE fault handling for batched multiple descriptors,
   - Optimization of page-table level calculation in
     compute_vasz_lg2_ss(),
   - Fixes for several pre-existing issues reported by Sashiko,
   - General cleanup and refinement

  RISC-V:
   - Report cache-coherency capability for coherent devices, enabling
     VFIO/iommufd use

  Samsung Exynos:
   - Support SysMMUs without BLOCK mode, fixing their enable sequence
     and TLB invalidation
   - Improve v7 fault diagnostics with transaction information"

* tag 'iommu-updates-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux: (69 commits)
  MAINTAINERS: Make Vasant Hegde AMD IOMMU maintainer
  iommu/hyperv: Make hv_iommu_device static
  iommu/hyperv: Add missing PCI dependency for the guest IOMMU driver
  iommu/amd: Don't allocate kdump device table from DMA32
  iommu/amd: Program device table when kdump reuse fails
  iommu/dma: Clean up redundant MSI cookie check
  iommu/dma: Catch scatterlist length overflows
  iommu/hyperv: Add page-selective IOTLB flush support
  iommu/hyperv: Add para-virtualized IOMMU support for Hyper-V guest
  iommu/x86: Add architectural MSI reserved region helper
  Drivers: hv: Add logical device ID registry for vPCI devices
  hyperv: Introduce new hypercall interfaces used by Hyper-V guest IOMMU
  iommu: Make iommu-dma helpers private
  iommu/arm-smmu-v3: Don't rb_erase() a never-inserted stream node
  iommu/arm-smmu-v3: Add Q_POS() macro
  iommu/arm-smmu-v3: Add arm_smmu_attach_release()
  iommu/arm-smmu-v3: Disable the impl before disabling the SMMU on shutdown
  iommu/arm-smmu-v3: Populate the tlbi at the top of the call chain
  iommu/arm-smmu-v3: Precompute the invalidation commands
  iommu/arm-smmu-v3: Keep track in arm_smmu_invs if range invalidation is used
  ...
2026-10-23 14:48:26 -10:00
Linus Torvalds 906b6e1d8c Merge tag 'dma-mapping-7.4-2026-10-21' of git://git.kernel.org/pub/scm/linux/kernel/git/mszyprowski/linux
Pull dma-mapping updates from Marek Szyprowski:

 - several SWIOTLB initialization cleanups (Aneesh Kumar K.V, Francesco
   Valla)

 - exact page allocation for DMA pages (Qingfang Deng)

 - tools/dma build fixes (Sasha Levin)

 - minor fixes for various corner cases (Marek Szyprowski, Leon
   Romanovsky) and code cleanup (John Garry)

* tag 'dma-mapping-7.4-2026-10-21' of git://git.kernel.org/pub/scm/linux/kernel/git/mszyprowski/linux:
  dma-debug: Skip cacheline tracking for MMIO mappings
  tools/dma: fix building from the top level with O=
  tools/dma: fix building with O=
  dma: swiotlb: Track whether the pool size was explicitly set
  dma: swiotlb: Consolidate slab rounding
  dma: swiotlb: Rename swiotlb_size_or_default()
  dma: swiotlb: use KiB in restricted pool allocation log
  dma-direct: Restore arch_dma_alloc() for the DMA_ATTR_NO_KERNEL_MAPPING case
  MAINTAINERS: Add files to the DMA MAPPING HELPERS entry
  dma-mapping: use exact allocation for DMA pages
  dma-mapping: rename dma_opt_mapping_size()
2026-10-23 14:31:51 -10:00
Linus Torvalds 26344c0dd3 Merge tag 'vfio-v7.4-rc1' of https://github.com/awilliam/linux-vfio
Pull VFIO updates from Alex Williamson:

 - Fix missing selftest <libgen.h> include for basename() to support
   non-glibc builds (Hisam Mehboob)

 - Add vfio selftest documentation covering the libvfio helper library
   and guidance for developers to aid in adding and understanding the
   framework (David Matlack)

 - Fix vfio cdev open path to prevent a second open from clobbering the
   vf_token or clearing the KVM reference. Add a selftest to avoid
   future recurrences (Alex Williamson)

 - Extend vfio selftest mix_and_match timeouts, in particular to account
   for systems where generated faults can induce heavy SMM load,
   delaying internal timeouts. Also extend timeout for execution via
   runner to account for various tests exceeding default 45s timeout
   (Alex Williamson)

 - Add tracking for non-reserved mappings into a vfio_dma object in
   order to optimize the tear-down paths where per-page tests can be
   entirely skipped. This resolves a soft lockup for large memory GPUs
   (Samuel Crossley)

 - Add vfio selftest driver for mlx5, providing another target for
   exercising DMA and interrupts against a physical device (Jason
   Gunthorpe)

 - Hardening against read-only region promotion, preserving vm_pgoff for
   unmap_mapping_range(), and reject non-shared MMIO mmaps as necessary
   through vfio-platform, vfio-fsl-mc, and vfio-cdx. These prevent
   future issues, though none are currently reachable (Abdifatah Suruur)

 - Fix 8-byte ioeventfd support, removing a static error test that was
   erroneously left in place when generalizing 8-byte io accesses (Li
   RongQing)

 - Fix missed RCU drain on module exit (Jiale Yao)

 - Fix off-by-one boundary check in migration support within the mlx5
   vfio-pci variant driver (Seongjun Hong)

 - Remove drvdata usage convention across vfio-pci-core, allowing
   variant drivers to freely create their own conventions and enabling a
   future Rust-based variant driver. A DRM topic branch is also merged
   in support of this effort, modifying the vga arbiter API to more
   cleanly remove the drvdata dependency (Simon Song)

 - Fix hisi_acc vfio-pci variant driver to avoid NULL pointer accesses
   when bound to unsupported devices and also disabling migration
   support when running on 64K host page size due to BAR mapping
   constraints (Longfang Liu)

 - Add device IDs for Crescent Island and Nova Lake devices to the Xe
   vfio-pci variant driver (Satyanarayana K V P)

 - Fix fallback mode in nvgrace-gpu variant driver to use symmetric open
   and close handlers to avoid reported use-after-free issue. Remove the
   resulting unnecessary test in the now single-purpose open function
   (Andrea Parri)

* tag 'vfio-v7.4-rc1' of https://github.com/awilliam/linux-vfio: (35 commits)
  vfio/nvgrace-gpu: Drop the usemem length check in open_device
  vfio/nvgrace-gpu: Use a core-only open_device in fallback mode
  vfio/xe: Add CRI and NVL device IDs
  hisi_acc_vfio_pci: reject live migration on 64KB page with QM_HW_V3 hardware
  hisi_acc_vfio_pci: fix NULL dereference in reset_prepare on PF passthrough
  vfio/pci: Remove the core dependency on driver data
  vfio/mlx5: Fix boundary check in set_report_output()
  vfio/pci: Drain eventfd RCU callbacks on module exit
  PCI/VGA: pass a data pointer to be used in the decode callback (v2)
  vfio/pci: Restore 8-byte ioeventfd support
  vfio/cdx: reject non-shared MMIO mmaps
  vfio/cdx: keep logical vm_pgoff in MMIO region mmap
  vfio/fsl-mc: keep logical vm_pgoff in MMIO region mmap
  vfio/platform: keep logical vm_pgoff in MMIO region mmap
  vfio/cdx: prevent read-only region mappings from becoming writable
  vfio/fsl-mc: prevent read-only region mappings from becoming writable
  vfio/platform: prevent read-only region mappings from becoming writable
  vfio: selftests: Verify a failed second open preserves the vf_token
  vfio: selftests: mlx5 driver - add send_msi support
  vfio: selftests: Add mlx5 driver - data path and memcpy ops
  ...
2026-10-23 14:22:52 -10:00
Linus Torvalds 9f2516f45b Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull vhost,virtio updates from Michael Tsirkin:
 "This adds CPR support for vhost.

  Plus some fixes, notably for a host of races we had when callback fire
  around device reset"

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
  tools/virtio: add missing device-id/virtio.h wrapper header
  vhost/vsock: add VHOST_RESET_OWNER ioctl
  vhost: synchronize with RCU readers when freeing workers
  vhost/vsock: re-scan TX virtqueue on device start
  vhost/vsock: suppress EHOSTUNREACH fast-fail during CPR pause
  vhost/vsock: split out vhost_vsock_drop_backends helper
  virtio_pci: drop callback sync on reset
  virtio_pci_modern: move avq cleanup from reset to del_vqs
  virtio: synchronize callbacks after device reset
  virtio_vdpa: implement synchronize_cbs()
  platform/mellanox: mlxbf-tmfifo: implement synchronize_cbs()
  um: virtio_uml: implement synchronize_cbs()
  remoteproc: implement synchronize_cbs() for virtio devices
  virtio_ccw: always take irq_lock in the classic interrupt handler
  virtio_ccw: fix synchronize_cbs() after interrupt fallback
2026-10-23 14:19:27 -10:00
Sasha Levin 4169c9c905 powerpc/irq: Fix build with CONFIG_PROC_FS=n
Commit fbb22ceaaf ("powerpc/irq: Make irqstats array based") made
arch_show_interrupts() call irq_proc_emit_counts(). That function lives
in kernel/irq/proc.c, which is only built with CONFIG_PROC_FS, so
kernels without procfs no longer link:

  powerpc64-linux-ld: arch/powerpc/kernel/irq.o: in function `arch_show_interrupts':
  arch/powerpc/kernel/irq.c:134:(.text+0x4b8c): undefined reference to `irq_proc_emit_counts'

arch_show_interrupts() is only called from irq_seq_show(), which is in
kernel/irq/proc.c as well, so build it only with CONFIG_PROC_FS, as x86
already does.

Fixes: fbb22ceaaf ("powerpc/irq: Make irqstats array based")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202609271531.8kf2NTjK-lkp@intel.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-23 13:49:34 -10:00
Linus Torvalds 56070f00d0 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Paolo Bonzini:
 "ARM:

   - pKVM state isolation: years after pKVM started being enabled
     upstream, we finally get the basics in the form of state isolation.
     The vcpu state is now off-limit for the host for protected VMs

   - pKVM also grows a hypervisor-private memory allocator, allowing it
     to deal with sub-page allocation, much like everywhere else

   - pKVM also lands a trace_printk() equivalent, which hopefully will
     make debugging a bit easier

   - First shot at annotating portions of the KVM/arm64 code to be
     extracted and built on s390. The real fun is yet to come

   - Allow pre-faulting of stage-2 canonical mappings from userspace,
     joining x86 and s390 in implementing this feature

   - Add a reverse mapping infrastructure for shadow stage-2,
     significantly improving performance when MMU notifiers kick in, and
     avoiding full unmap of all shadow tables for this VM

   - Next step of GICv5 enablement, adding support for the IRS block,
     and providing both SPI and LPI support. This is the first point
     where KVM/arm64 can support an SMP GICv5 guest

   - As a preliminary to eventually enabling CCA, add a bunch of
     infrastructure to KVM/arm64, splitting some of the basic operations
     into individual backends (normal VM, normal pKVM VM, protected pKVM
     VM). This allows CCA to later slot in without polluting the rest of
     KVM with its firmware-driven nonsense

   - Make ID registers immutable from the point where a vcpu is able to
     run, even if it fails to run. This prevents KVM from sampling
     untrusted values

   - Restore some type checking to the EL2 object. KVM/arm64 originally
     had some strong type checking between the kernel and the EL2
     object, but lost it along the way when the private hypercall
     interface was (somewhat pointlessly) converted to SMCCC. Type
     checking is back, syscall style, and with added sparse goodies

   - Expand the FFA support to FFA_NOTIFICATION_*, and add some
     sanitisation of the protocol that pKVM relays to the "trusted"
     runtime

   - Make GICv3 RD assignment more robust to userspace nonsense

   - Convert the remaining MMU fault handler backends to
     kvm_s2_fault_vma_info and co., fixing a number of bugs in the
     process

   - Fix the SError/SEA selftests to be both more robust and less
     braindead

   - Fix a smattering of documentation bugs, some of them as a result of
     our AI friends spitting out credible assertions based on
     non-existing symbols

   - The usual collection of low impact bug fixes (SMCCC, timers, PMU)

  Loongarch:

   - Add separate vmid support

   - Simplify MSI interrupt injection

   - Add crash hypercall support

   - Allow to set pv_feature until vCPU run

   - Enable HW page table walk automatically in selftests

  s390:

   - rework page allocation for secure guest variable storage

   - Selftests and documentation improvements

   - Replace get_zeroed_page with kzalloc

   - Fix corner cases of floating interrupt injection

   - Initial arm64 on s390 support

  x86:

   - Clean up the handling of vcpu->arch.xen.long_mode to be consistent
     and correctly handle 32-bit/64-bit alignment, and various other bug
     fixes have accumulated over the months since v1

   - Grab KVM's SRCU "lock" in kvm_zap_gfn_range() to fix a recurring
     bug where callers fail to do so

   - Fix a variety of issues in the pre-fault code that are mostly
     benign in the current code base, but will show up in big ways
     if/when the pre-faulting logic is used to implementing
     prefetch-on-fault for the TDP MMU

   - For PREEMPT_RT=y kernels, drop the rmaps' individual bit-spinlock
     and just walk the rmaps' with mmu_lock taken. On the write side
     (which always uses mmu_lock), the bit-spinlock was assuming that
     preemption was disabled, but that is *not* true when rwlocks become
     sleepable

   - Prepare a memory_fault exit (paired with -EFAULT) when KVM hits an
     error PFN, e.g. so that userspace can resolve transient issues
     instead of killing the guest. Convert a variety of WARN()+EFAULT
     paths into KVM_BUG_ON()+EIO so that KVM can hard commit to filling
     memory_fault on -EFAULTs that occur in the page fault path

   - Fix a NX hugepage un-accounting bug where KVM would always uncharge
     the shadow MMU, even when handling TDP MMU pages

   - Mask off the address space ID when checking for illegal usage of
     kvm_set_internal_memslot() to prevent false negatives on the sanity
     check

   - Explicitly zero reserved flags when delivering a SynIC message to
     avoid leaking a byte of stack information to the guest

   - Rework TDX's handling of the canonical MMU root level to not rely
     on userspace to fill CPUID correctly, as doing so lets userspace
     trivially trigger a KVM_BUG_ON()

   - Reject KVM_SET_NESTED_STATE if userspace "restores" L1 with
     EFER.LMA=1 && EFER.LME=0, which confuses KVM into trying to
     configure an 64-bit MMU without PAE

   - Ignore EFER.LMA (clear it from KVM's cached save state) if
     EFER.LME=0 when preparing L2 state, to fix another way to confuse
     KVM's MMU (and because real hardware also ignores EFER.LMA)

   - Improve KVM's sanity checks for a misconfigured MMU to (hopefully)
     detect all of the ways KVM can botch EFER.LMA vs. CR4.PAE

   - Remove the "full" out-param from kvm_x86_ops.flush_tlb_gva() as the
     param is only used to avoid what effectively amounts to a single
     memory write

   - Fix a mostly-benign bug where KVM can write through a guest's
     read-only mapping due to not checking the error code when
     expediting emulated MMIO page faults

   - Honor the guest's view of the "EFER.LMSLE must be zero" defeature
     so that userspace can provide migration compatibility between Rome
     and Milan+

   - Pend a KVM_REQ_EVENT request when an exception is morphed into a
     nested VM-Exit, otherwise KVM can fail to actually deliver the
     nested VM-Exit, e.g. when injecting a page fault

   - Add support for PML on SVM

   - Add support for virtualizing Bus Lock Detect on SVM, and fix a
     number of DR6 bugs and warts along the way

   - Fix a variety of warts in KVM's handling of guest TSC, kvmclock,
     and timekeeping in general, as a (big) first step towards
     addressing several longstanding problems with the kvmclock
     implementation. Most notably, fix a precision issue where
     get_kvmclock_ns() computed the clock from the *host* TSC without
     applying guest TSC scaling, causing systemic drift from the values
     the guest computes from its own TSC

   - Rip out KVM's shadow timekeeping structures, now that ktime
     snapshots are powerful enough to replace it

   - Misc fixes and cleanups

  x86 (AMD):

   - Fix a benign-in-practice bug where KVM unintentionally sets a
     non-zero error code when delivering exceptions to SEV-ES+ guests

   - Force a new ASID in both VMCBs on pCPU migration to fix a bug where
     KVM can run a VMCB with a stale ASID due to the tracking being
     per-CPU, not per-VMCB

   - Return INVALID_INPUT to the guest instead of exiting to userspace
     with -EIO if KVM can't access "guest request" buffer, i.e. try to
     keep the guest alive if the guest or userspace goofs

  x86 (Intel):

   - Enable Notify VM-Exits (now called Instruction Timeout in the SDM)
     and Bus Lock VM-Exits for TDX guests when they're enabled by
     userspace (KVM forgot to wire up the TDX Module knobs)

   - Move all common (between VMX and TDX) APIs/helpers to
     common.h/main.c, and change all namespace prefixes from "vmx" to
     "vt"

   - Fix a thankfully benign bug (due to other areas of KVM being
     hardened) where userspace can bypass INIT_MEM_REGION's address wrap
     check by providing a nr_pages that will overflow a u64 when
     converted to bytes, and fix an also- benign off-by-one bug in the
     check (inclusive vs. exclusive)

   - Set the vmcs.GUEST_ACTIVITY_STATE back to ACTIVE when userspace
     sets KVM's mp_state to anything other than HALTED, e.g. so that a
     vCPU doesn't get stuck in HLT if userspace emulates RESET

  guest_memfd:

   - Take the invalidate lock when unbinding a dying file to fix a race
     with kvm_gmem_invalidate_end() that results in KVM leaving the MMU
     invalidation count elevated. Not taking the lock in the first place
     was pure misguided paranoid

   - When binding a memslot, purge the bindings if storing the new
     memslot fails, as Xarray's "store range" API can subtly fail
     partway through

   - Establish memslot<=>guest_memfd bindings *after* the memslot is
     ready, as the memslot becomes reachable the instant the binding is
     installed

   - Don't grab a page refcount when reloading an SNP VMSA and stop
     returning a "struct page" from guest_memfd's PFN lookup altogether,
     to ensure that KVM doesn't hold any unnecessary refcounts (the
     lifetime of the page is ensured by MMU notifiers and similar
     hooks). Preventing unnecessary refcounts greatly simplifies
     supporting in-place SHARED=>PRIVATE conversions

   - Add support for in-place PRIVATE<=>SHARED conversion, i.e. allow a
     single guest_memfd instance to be used for both PRIVATE and SHARED
     variations of CoCo guests' memory (though not at the same time).
     This eliminates the need to double allocate guest memory for TDX
     and SNP, and is basically a hard requirement for pKVM, which relies
     on being able to preserve memory contents on conversions

   - Hack-a-fix a deadlock bug in ->error_remove_folio() by returning
     -EBUSY if the filemap invalidate lock is contended. Punt on a
     proper fix for the moment, as a proper fix likely involves
     reworking truncate_error_folio()

   - Add a pile of selftests for in-place conversions

   - Misc guest_memfd cleanups

  Generic:

   - Move some configuration items to preprocessor symbols, to help with
     arm-on-s390's need to compile the same code twice with different
     values

   - Allow KVM implementations to choose alternative device names, also
     for s390's support of ARM virtualmachines

   - Switch the KVM-VFIO interface and external consumers over to
     standard file-based reference counting, eliminating all external
     KVM symbol exports

  Selftests:

   - Rework KVM selftest's handling of memory regions all so that PPC
     can force its page table allocations to be naturally aligned

   - PPC support

   - Fix emulation of VMPTRST and VMPTRLD when eVMCS is in-use to match
     real Hyper-V's behavior

   - Saturate L2's TSC frequency if stacking L1 and L2 scaling
     multipliers exceeds what hardware supports, as attempting to run L2
     with an illegal multiplier will either cause VM-Entry to fail (VMX)
     or trigger a #GP when writing MSR_AMD64_TSC_RATIO (SVM). The #GP is
     thankfully benign in the grand scheme as even "unsafe" WRMSRs have
     exception fixup

   - Rework KVM selftest's handling of memory regions so that PPC can
     force its page table allocations to be naturally aligned

   - Clean up selftest's VMX instruction helpers, and drop an absurd
     number of completely useless return values, e.g. functions that
     unconditionally return %true and then have every caller assert
     success

   - Add selftests support for Zhaoxin CPUs

   - Overhaul the TSC scaling test to add a regression test for the
     saturation behavior, and to increase its coverage in general

   - Fix selftests usage various NUMA syscalls to account for an
     undocumented, but known since 2007, off-by-one kernel bug. Add
     helpers to try and avoid re-introducing the same flaws in the
     future

   - Automatically run xAPIC IPI migration test (between NUMA nodes)
     when possible, as the entire point of the test is verify KVM's
     handling of page migration of the APIC backing page

   - Misc cleanups"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (506 commits)
  KVM: always make in-place conversion a compile-time constant when possible
  KVM: x86: leave the legacy private attribute in for TDX and SEV
  KVM: split CONFIG_KVM_PRIVATE_MEMATTR_VM out of KVM_VM_MEMORY_ATTRIBUTES
  selftests: kvm: remove useless comma operator
  arm64: Use proper include variant
  MAINTAINERS: Add entry for ARM on s390 KVM
  KVM: s390: arm64: Integrate arm on s390
  KVM: s390: arm64: Implement basic page fault handler
  KVM: s390: arm64: Implement vCPU IOCTLs
  KVM: s390: arm64: Implement vm/vcpu create destroy
  KVM: s390: arm64: Implement required functions
  KVM: s390: Add basic arm64 kvm module
  s390/hwcaps: Report SAE support as hwcap
  KVM: s390: arm64: Introduce host definitions
  s390: Introduce Start Arm Execution instruction
  KVM: s390: Use arm64 code
  s390/tools: Use arm64 headers
  KVM: s390: Use dedicated function for migration mode
  s390/Kconfig: remove PCI dependency from HAS_IOMEM
  KVM: s390: Kick PV cpus at the right time for service irqs
  ...
2026-10-23 13:37:12 -10:00
Linus Torvalds 55fbedcec6 Merge tag 'bpf-next-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
Pull bpf updates from Alexei Starovoitov:
 "Major changes:

   - Introduce scalar evolution (SCEV) analysis in the verifier.

     It infers how registers and stack slots change in a loop and lets
     the verifier check bounded loops with induction variables as ranges
     instead of walking every iteration. The number of processed insns
     drops ten fold in programs with loops (Eduard Zingerman)

   - Add 'callx' instruction: indirect call of a static BPF subprogram.

     The address is taken with ld_imm64 or loaded from read-only data.
     Supported by x86-64, arm64 and riscv64 JITs (Alexei Starovoitov, Pu
     Lehui)

   - Add unwind_goto and unwind_exit instructions, so that Rust panic or
     C++ exception can run destructors of every frame it passes through.
     The normal path is free of unwind code. Supported by x86-64 and
     arm64 JITs (Alexei Starovoitov)

   - Support programs compiled by rust-bpf: treat load and store through
     a number as arena access with BPF_F_ARENA_SCALAR, accept rust names
     in BTF (Alexei Starovoitov)

   - Raise BPF program stack size from 512 bytes to 2 KiB on x86-64 and
     arm64 (Kumar Kartikeya Dwivedi)

   - Support struct, union and __int128 up to 16 bytes passed and
     returned by value in BPF subprograms and kfuncs, and fix x86-64 and
     arm64 trampolines for such arguments (Yonghong Song)

   - Introduce a common way to attach struct_ops to a cgroup via
     bpf_link. bpf_tcp_ops is the first user and mirrors TCP sock_ops
     callbacks (Martin KaFai Lau, Amery Hung)

   - Describe inlined functions in BTF. New kinds tell where the inline
     sites are and how to fetch the arguments there.

     CONFIG_DEBUG_INFO_BTF_INLINE keeps it apart from the main BTF in
     .BTF.inline section or in btf_vmlinux_inline.ko (Alan Maguire)

   - Fix many memory safety, lifetime and locking bugs in BPF core,
     verifier, iterators, local storage, dynptr, devmap, cpumap and
     seg6local (Josef Bacik, Alexei Starovoitov)

   - Diff stat is dominated by selftests and by removal of
     lib/test_bpf.c. Its 16k lines of instruction tests were converted
     to BPF selftests that BPF CI runs on every architecture it covers
     (Daniel Borkmann)

  Other features and fixes:

   - Add KASAN checks to memory accesses of JITed programs on x86-64
     (Alexis Lothoré)

   - Complete unification of helper, kfunc and subprog argument checks
     in the verifier (Amery Hung)

   - Add bpf_copy_from_user_mm[_str]() kfuncs (Anastasios Papagiannis)

   - Various features and fixes (Daniel Borkmann):
       - Add .bpf keyring for program signature verification, modelled
         after dm-verity keyring, and support ML-DSA in signing tools
       - Emit shorter and faster code in x86-64 JIT for patterns that
         LLVM generates
       - Fix various issues in gotox handling

   - Let BPF LSM set xattrs at inode creation with bpf_inode_init_xattr()
     (David Windsor, Daniel Borkmann)

   - Use sleepable page allocation in sleepable arena paths. Fix races
     between arena free, allocation and user page fault (Emil Tsalapatis)

   - Switch BPF crypto from lskcipher to AES-CBC and AES-ECB libraries
     (Eric Biggers)

   - Add bpf_proactive_reclaim() kfunc (Hui Zhu)

   - Render decl_tags in libbpf btf_dump and add tests for bpftool C
     dump (Ihor Solodrai)

   - Speed up tracing_multi attach on x86 (Jiri Olsa)

   - Various features and fixes (Kumar Kartikeya Dwivedi):
       - Add BPF_PROG_STREAM_OPEN command to read BPF streams through a
         file descriptor with poll support
       - Let kernel structs publish arena pointers with __arena type tag
       - Fix __uninit kfunc output buffers and fastcall rewrite with
         indirect stack accesses
       - Refuse CO-RE relocations for signed programs

   - Add enqueue_rcvq and dequeue_rcvq hooks to bpf_tcp_ops to adjust
     sk_rcvlowat and avoid unnecessary wakeups (Kuniyuki Iwashima)

   - Add bpf_ksock_sendto() kfunc and allow ksock connect and send from
     bpf_wq (Mahe Tardy)

   - Fix racy plt target update in arm64 bpf_arch_text_poke()
     (Matthew Wood)

   - Restructure BPF selftests Makefile as a layered build
     (Mykola Lysenko)

   - Speed up hash map lookups for u32 and u64 keys (Mykyta Yatsenko)

   - Add signed div/mod, movsx, bswap and gotol to MIPS JITs, signed
     div/mod to parisc JITs (Nicholas Dudar, Johan Almbladh)

   - Fix stack overflow in build ID parser on 32-bit (Nickolai
     Zeldovich)

   - Add stack arguments, signed arena loads and gotox to riscv64 JIT.
     Pu Lehui is now co-maintainer of riscv BPF JITs (Pu Lehui, Chen
     Pei, Feng Jiang)

   - Add bpf_call_rcu() and bpf_call_rcu_tasks_trace() kfuncs. Support
     fetching and/or/xor atomics in arena on x86-64 (Puranjay Mohan)

   - Fix flaky selftests, selftests with clang 23 and bpf-gcc
     (Qiliang Yuan, KaFai Wan, Vineet Gupta)

   - Fix builds broken by fatal resolve_btfids warnings, BTF generation
     on ARC, and define arch_cmpxchg_local() on arc, hexagon and
     openrisc (Sasha Levin)

   - Reduce memory use of hash maps by up to 50% per element
     (T.J. Mercier)

   - Mark pointer fields of sched_ext ops arguments as trusted (Tejun
     Heo)

   - Remove legacy bpf_asm, bpf_dbg and bpf_jit_disasm tools (Xia Yan)

   - Fix index overflow in queue and stack maps, arena range tree after
     allocation failure, tail call loop after freplace detach, lost
     signal in bpf_send_signal() (Yuan Chen)

   - Many more fixes and cleanups"

* tag 'bpf-next-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (660 commits)
  selftests/bpf: Time tc_edt from its first packet with data
  selftests/bpf: Test unwind_exit of an exception callback
  selftests/bpf: Tests for 32-bit scalar evolution bounds computation
  bpf: Reject unwind_goto and unwind_exit in offloaded progs
  bpf: Support 32-bit linear scalar evolution
  bpf: Make unwind_exit of an exception callback exit in JITs
  selftests/bpf: Test forbidden bpf_ksock_sendto() LSM attach
  selftests/bpf: Test ksock sendto()
  bpf: Add bpf_ksock_sendto() kfunc
  selftests/bpf: Test unwinding from R0: R2 subprog
  selftests/bpf: Add a C++ prog with exceptions
  selftests/bpf: Add tests for unwind_goto and unwind_exit
  bpf, arm64: Support unwind_goto and unwind_exit
  bpf, x86: Support unwind_goto and unwind_exit
  bpf: Add unwind_goto and unwind_exit insns
  tools/bpf: Remove legacy BPF tools
  bpf: Annotate data races on bpf_lru_node type
  selftests/bpf: Add arena allocation race tests
  bpf: Fix arena race between page free and alloc leading to incoherency
  bpf: Revalidate faulted arena pages before installing user mappings
  ...
2026-10-23 13:08:49 -10:00
Linus Torvalds 90b754d401 Merge tag 'bootconfig-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull bootconfig updates from Masami Hiramatsu:
 "Parser robustness and validation improvements:

   - Skip printing early params to cmdline from bootconfig

     Suppress early_param keys from /proc/cmdline and warn the user,
     since bootconfig does not invoke early_param handlers and silently
     ignoring them is misleading

   - Reject unexpected data after null character

     Detect and reject non-null data following an intermediate null
     character in the bootconfig buffer, preventing silently ignored
     configuration after an early termination

  Code cleanups:

   - Merge _xbc_exit() into xbc_exit()

     Since memblock_free() now handles late freeing and NULL addresses,
     the separate _xbc_exit() helper and its early argument are
     unnecessary. Inline it into xbc_exit()

   - Remove redundant assignment in xbc_parse_array()

     The node->child = 0 assignment after the loop duplicates what
     xbc_init_node() already did

   - Skip internal tree sanity checks in kernel

     Move the node index bounds loop from xbc_verify_tree() into a
     userspace-only xbc_sanity_check_tree() to reduce boot-time
     overhead, since out-of-bounds indices cannot be produced by
     malformed input

   - Move BOOTCONFIG_FOOTER_SIZE to include/linux/bootconfig.h

     Share the footer size constant between kernel and user-space tools,
     replacing the hardcoded (BOOTCONFIG_MAGIC_LEN + 8) expression in
     init/main.c

  Tooling improvements:

   - Remove unused PAGE_SIZE macro from the bootconfig tool

   - Consolidate xbc_init() to error message wrapper

     Use init_xbc_with_error() for all bootconfig initialization paths
     in the tool for simpler and more consistent error handling"

* tag 'bootconfig-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  bootconfig: Move BOOTCONFIG_FOOTER_SIZE to include/linux/bootconfig.h
  bootconfig: Skip internal tree sanity checks in kernel
  tools/bootconfig: Consolidate xbc_init() to error message wrapper
  bootconfig: Reject unexpected data after null character
  bootconfig: Skip printing early params to cmdline from bootconfig
  tools/bootconfig: remove unused PAGE_SIZE macro
  bootconfig: remove redundant assignment in xbc_parse_array()
  bootconfig: merge _xbc_exit() into xbc_exit()
2026-10-23 12:20:54 -10:00
Linus Torvalds 3f942403bb Merge tag 'probes-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull probes updates from Masami Hiramatsu:
 "Asynchronous optprobe optimizer and cleanups:

   - Make optprobe optimizer multi-generational and asynchronous

     Rework the optimizer as a state machine to avoid calling
     time-consuming synchronize_rcu_tasks() while holding kprobe_mutex,
     text_mutex, and cpus_read_lock(). Uses call_rcu_tasks() and a fixed
     ring of generation slots instead, so locks are only held during the
     brief instruction- patching window

   - Use DEFINE_DEBUGFS_ATTRIBUTE for the kprobes enabled knob

     Replace a hand-rolled debugfs read/write pair (dating from 2007)
     with the proper DEFINE_DEBUGFS_ATTRIBUTE macro, removing dead code
     and the stale XXX comment

  Code quality and documentation cleanups:

   - Add const qualifier to new_argv allocation type in trace_probe.c,
     preparing for the type-aware kmalloc_obj allocator conversion

   - Clarify btf_find_struct_member() container parameter

     Rename the misleading @member_type parameter to @container_type and
     add proper kernel-doc documentation for all parameters and return
     values

  Boot tracing test framework and testcases:

   - Add a generic boot tracing test framework under
     tools/testing/selftests/ftrace/boottime/

     The test runner builds a minimal initramfs with busybox, boots
     QEMU, and runs tracefs checker scripts, supporting bootconfig,
     kernel command-line options, and multi-boot crash/reboot scenarios

   - Add boot-time tracing testcases

     Verify dynamic kprobe, synthetic events, eprobe, fprobe, tprobe,
     and trace instance creation via bootconfig

   - Add kernel cmdline tracing testcases

     Verify ftrace, trace_event, trace_buf_size, trace_options,
     trace_clock, and trace_instance kernel parameters

   - Add persistent ring buffer testcases:

     Verify memory reservation via reserve_mem= and trace data retention
     across guest crash/reboot, as well as backup instance creation and
     boot log preservation

   - Change non-unique test symbol from name_show to init_once in
     kprobe_non_uniq_symbol.tc for more reliable cross-architecture
     testing"

* tag 'probes-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  ftrace/selftests: Change non-unique test symbol to init_once
  tracing/probes: Clarify btf_find_struct_member() container parameter and add kernel-doc
  kprobes: Make optprobe optimizer multi-generational and asynchronous
  tracing/probes: Add const to new_argv allocation type
  kprobes: use DEFINE_DEBUGFS_ATTRIBUTE for the enabled knob
  selftests/ftrace: Add persistent ring buffer testcases
  selftests/ftrace: Add kernel cmdline tracing testcases
  selftests/ftrace: Add boot-time tracing testcases
  selftests/ftrace: Add generic boot tracing test framework
2026-10-23 12:12:26 -10:00
Linus Torvalds d1679c8713 Merge tag 'trace-ringbuffer-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull ring-buffer updates from Steven Rostedt:

 - Add Vincent Donnefort as ring-buffer maintainer

   Vincent has been doing a lot of updates to the ftrace ring buffer
   lately. I'm going to start delegating updates for the ring buffer to
   him.

 - Use RING_BUFFER_MIN_NR_PAGES instead of open coding the number 2

   Instead of using the number 2 as the minimum number of pages that a
   ring buffer may have, create and use a macro
   RING_BUFFER_MIN_NR_PAGES.

 - Clean up the resize_disabled_checks

   There's duplication of code to check for resize disabled. Create a
   helper function rb_resize_disabled() and use that. Not only does it
   put the code in one place, it also removed a redundant check.

 - Remove unnecessary cpumask_test_cpu checks

   The loop for_each_buffer_cpu(buffer, cpu) only loops over CPUs in the
   buffer->cpumask. There's no reason to test if the CPU is set in that
   same loop.

 - Take cpus_read_lock() when changing the subbuf order

   A CPU coming on line for the first time allocates its CPU buffer. But
   if this happens while the subbuffer is being resized, it can cause an
   inconsistent state of subbufer sizes in the buffer. Add a
   cpus_read_lock() to ring_buffer_subbuf_order_set() to prevent this
   race.

* tag 'trace-ringbuffer-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  ring-buffer: Take cpus_read_lock() when changing the subbuf order
  ring-buffer: Remove unnecessary cpumask_test_cpu
  ring-buffer: Clean up resize_disabled checks
  ring-buffer: Unify ring buffer minimum page calculations
  ring-buffer: Add a MAINTAINERS category specific for the tracing ring-buffer
2026-10-23 12:07:27 -10:00
Linus Torvalds b8a7a86e48 Merge tag 'trace-ftrace-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull ftrace updates from Steven Rostedt:

 - Have the stacktrace option work with func-args

   The func_stack_trace option has it's own ftrace handler and so does
   the func-args option. When they are both set, neither would run. The
   function tracer itself would error out.

   Allow the stacktrace and function args to work together.

 - Avoid BTF lookup in atomic context

   The ftrace_dump() can call function graph tracing output from an
   atomic context (like an NMI watchdog going off). The BTF lookup is
   not safe to call from atomic context. Have btf_find_func_proto()
   return if in atomic context.

 - Build trace_btf.c when CONFIG_DEBUG_INFO_BTF is enabled

   New code is depending on trace_btf.c but that only gets built when
   BPF_SYSCALL is also enabled. As the new code doesn't depend on that,
   have trace_btf.c get built with just DEBUG_INFO_BTF set.

 - Have function graph return values have BTF processing

   Have the return values printed by the function graph tracer use BTF
   to print the values in better format. For example, if it's a char,
   short, signed or unsigned, print according to the value defined by
   BTF.

 - Add a "max" field to the function profiler stats

   The function profiler shows all the functions run in the kernel, the
   number of times they are called, and the total time they took up.
   Also add a "max" field which holds the longest time a function ran
   for.

 - Fix memory leak in module with all skipped functions

   On module load, the ftrace entries are recorded to keep track of what
   functions can be traced or not. Some functions may be skipped for
   various reasons (some defined by the architecture). If all functions
   in the module are skipped, its data page is not freed and can leak.
   Catch this case and free the empty page.

 - Allow architectures to reject functions from being traced

   Allow architectures to skip a function address by returning zero from
   ftrace_call_adjust().

 - Initialize modname and offset in print_rec()

   The variables modname and offset are initialized by
   kallsyms_lookup(). If that fails, the values are not set, but the
   code continues to print other information. The modname and offset are
   used later, but if the kallsyms_lookup() failed, they will not be
   set.

   If a module is being loaded and unloaded at the same time as reading
   the available_filter_functions file, it can cause a fault due to the
   lookup failing and modname and offset being used uninitialized.

* tag 'trace-ftrace-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  ftrace: Initialize modname and offset in print_rec()
  ftrace: Let ftrace_call_adjust() reject a patch site
  ftrace: Do not leak a module's empty page group
  ftrace: Add max field to function profiler stats
  tracing: Update funcgraph-retval documentation
  fgraph: Enhance funcgraph-retval with BTF-based type-aware output
  ftrace: Build trace_btf.c when CONFIG_DEBUG_INFO_BTF is enabled
  tracing: Avoid BTF lookup in atomic context
  ftrace: Have stacktrace option work with func-args
2026-10-23 12:05:34 -10:00
Linus Torvalds 9ec665e5e7 Merge tag 'trace-tools-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull RTLA tooling updates from Steven Rostedt:

 - Test actions in absence of threshold

   Cover the case which regressed in the past in tests.

 - More robust CPU count detection

   Parse /sys/devices/system/cpu/possible directly instead of going
   through libc for CPU count and sanity check against any mismatch with
   the number reported by tracefs / osnoise.

 - Add option to record IPI count in osnoise top

   In addition to counting IRQs, add an option to enable counting IPIs
   targetting the measurement CPU to the rtla-osnoise-top tool.

 - Improve runtime test usability

   Catch up with increased complexity of runtime tests with better
   defaults and more options available to the developer running the
   tests.

 - Simplify osnoise tracer option setting code

   Deduplicate osnoise tracer option setting code with macros to make it
   less error-prone and to make it easier to add new tracer options in
   the future.

* tag 'trace-tools-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  rtla: Simplify osnoise tracer option setting code
  rtla/tests: Add $SUBTESTS and $STOPONFAIL
  rtla/tests: Show the command line for failing tests
  rtla/tests: Use absolute path for $RTLA
  rtla/osnoise: Trace IPI events when recording a trace file
  rtla: Unconditionally clean any pre-existing filters for user-provided events
  rtla: Enable and disable events in the user-defined order
  rtla: Make struct trace_events double linked
  rtla/osnoise: Allow IPI filters to gracefully fail
  rtla/osnoise: Leverage IPI event filters when tracing a subset of CPUs
  rtla/osnoise: Record IPI count in osnoise top
  rtla/osnoise: Add IPI tracking cmdline option
  rtla/tests: Add unit test for get_max_cpu_from_list()
  rtla/tests: Add unit test for cpu_list_iterate()
  rtla: Abort on nr_cpus mismatch with tracer
  rtla: Discard trace entries with cpu >= nr_cpus
  rtla: Replace get_nprocs_conf() with sysfs possible cpus
  rtla/tests: Test actions in absence of threshold
2026-10-23 12:03:45 -10:00
Linus Torvalds ff5b1cefb4 Merge tag 'trace-rv-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull runtime verifier updates from Steven Rostedt:

 - Improve lockdep annotation for reactors

   Reactors are not supposed to take locks, so they fit the LD_WAIT_FREE
   lockdep class. However, reactors may run in preemptible context and
   if the preempting code (tick or simply the scheduler) takes locks, we
   see a lockdep splat. Switch to LD_WAIT_SPIN to avoid the splat while
   documenting that reactors should still not take locks.

 - Add KUnit tests for reactors

   Add KUnit test cases to validate registration and reaction, this
   requires exporting some symbols and other minor fixes.

 - Use the right rv_this variable in the wakeup monitor

   LTL monitors were updated to use the generic rv_this static variable
   but this change wasn't propagated to the newly introduced wakeup
   monitor. This broke reactors for the monitor: update the it.

* tag 'trace-rv-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  rv/rtapp/wakeup: Use "rv_this" the rv_monitor variable
  rv: Add KUnit tests for reactor registration and dispatch
  rv: Export rv_register_reactor() and rv_unregister_reactor()
  rv: Propagate rv_register_reactor() error from reactor init
  rv: Use LD_WAIT_SPIN as the reactor lockdep wait type
2026-10-23 12:02:13 -10:00
Linus Torvalds f1e818b239 Merge tag 'livepatching-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
Pull livepatching updates from Petr Mladek:

 - Update maintainers list: added Joe and Song, removed Jiri

 - Prevent removing the livepatch module before releasing all kobjects

 - Ignore debug messages from other subsystems in livepatch selftests

* tag 'livepatching-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
  livepatch: Add Joe and Song as maintainers
  livepatch: remove myself from MAINTAINERS
  selftests/livepatch: filter debug messages in check_result()
  livepatch: Fix UAF of unregistered patch kobjects
2026-10-23 11:59:33 -10:00
Linus Torvalds 7a78f7ba9f Merge tag 'slab-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/slab
Pull slab updates from Harry Yoo:

 - Performance improvement of the sheaf prefill API, by allowing the
   barn to hold a partial sheaf and refilling sheaves from the barn.
   This improves will-it-scale mmap1 throughput by 24% on the maple_node
   cache (Hao Li)

 - Restore memcg accounting of ipc msg_msg allocations, lost with e.g.
   CONFIG_SLAB_BUCKETS=n where the allocations fall back to the general
   kmalloc caches (Kees Cook)

 - Fix an old race between kmem_cache_destroy() and slab_late_init(),
   where a cache destroyed late in the boot process tries to release a
   kobject that was never initialized (Imre Kaloz)

 - Remove slab_folio(), the last use of struct folio in slab code
   (Matthew Wilcox)

 - Reject kmalloc() requests above KMALLOC_MAX_SIZE explicitly with a
   warning and NULL return instead of relying on the page allocator's
   order check (Zi Yan)

 - Various minor fixes and cleanups (Hao Li, Karl Mehltretter, Kees
   Cook, Longlong Xia)

* tag 'slab-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/slab:
  mm/slub: initialize the free pointer of the bootstrap kmem_cache_node
  mm/slab: sample slab_state once in kmem_cache_destroy()
  ipc, msg: Account msg_msg allocations with GFP_KERNEL_ACCOUNT again
  mm/slab: Mark the kmem_buckets_create() context as a Context: section
  slab: Remove slab_folio()
  mm/slub: refill prefilled sheaves from the barn
  mm/slub: make the case handling in __slab_free() easier to follow
  mm/slub: unify slub stat definitions to simplify metric additions
  mm/slab_common: reject zero object_size before calculate_alignment
  mm/slab: reject unsupported kmalloc() sizes
2026-10-23 09:51:16 -10:00
Linus Torvalds 5b212610d0 Merge tag 'printk-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux
Pull printk updates from Petr Mladek:

 - John Ogness became PRINTK co-maintainer

 - Unregister boot consoles when any proper console is registered at the
   end of the boot phase. Before they were removed only when the
   so-called preferred console, usually set via the last 'console='
   parameter, got registered

 - Fix computation for increasing the printk ringbuffer on systems with
   many CPUs and possibly long backtraces from all CPUs

 - Cleaned up irq_works handling for deferred printk operations

 - Use acquire/release semantic for filled_random_ptr_key

 - Allow to use ':' in console options

 - More code clean up

* tag 'printk-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
  MAINTAINERS: Make John PRINTK co-maintainer
  lib/vsprintf: Use EXPORT_SYMBOL_IF_KUNIT() to export symbols
  printk: Remove console options before decoding the name
  printk: increase the ring buffer for more than 16 CPUs by default
  printk_ringbuffer: Avoid needless read of prb_desc
  printk: Use two irq_works instead per-CPU
  lib/vsprintf: Use acquire/release for ptr_key publication
  printk: Remove remaining boot consoles when a real console exists
2026-10-23 09:44:53 -10:00
Linus Torvalds 845f394e46 Merge tag 'sysctl-7.04-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/sysctl/sysctl
Pull sysctl updates from Joel Granados:

 - Disallow partial vector updates

   Stage sysctl vector writes before updating. Removes the chance of
   leaving a sysctl vector partially updated due to erroneous input.
   This is not an atomic write; a concurrent reader can still see a
   partially updated vector.

 - Remove redundant sysctl config guards

   Remove locations where (CONFIG_SYSCTL && CONFIG_PROC_FS) was checked.
   They are superfluous as CONFIG_SYSCTL now depends directly on
   CONFIG_PROC_FS.

 - Rewrite selftests using KTAP helpers

   Each test now reports its own KTAP result and runs in a subshell.
   Test suite continues after failure.

 - Misc

   Fix a use-after-free in the selftests test_sysctl module. Quiet an
   unused variable warning in fs/proc/proc_sysctl.c:init_header(). Add
   tests for partial vector updates and the int jiffies converters.

* tag 'sysctl-7.04-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/sysctl/sysctl:
  selftests: sysctl: Check the sign of a negative jiffies read
  sysctl: Add jiffies converter entries to the test module
  sysctl: quiet unused variable warning in fs/proc/proc_sysctl.c:init_header()
  sysctl: unregister tables before freeing bitmap
  sysctl: Rewrite selftests on top of KTAP helpers
  sysctl: remove redundant CONFIG_PROC_FS checks
  sysctl: consolidate CONFIG_SYSCTL into a single block in kernel/sysctl.c
  sysctl: collapse redundant CONFIG_SYSCTL nesting in kernel/sysctl.c
  sysctl: Add 0013 to test partially updated vectors
  sysctl: Disallow partial updates for erroneous sysctl vectors
  sysctl: Reject uint arrays before calling the general proc_vec
  sysctl: Split data conversion and file position handling
2026-10-23 09:37:09 -10:00
Linus Torvalds c0e8d30137 Merge tag 'modules-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux
Pull module updates from Petr Pavlu:

 - Ignore local labels and mapping symbols during module load

   These symbols were already ignored during kallsyms address-to-symbol
   lookups. Filter them out earlier during module loading to reduce
   lookup overhead and prevent them from appearing in /proc/kallsyms.

 - Fix potentially incorrect access of SetOnce<T> when setting Rust
   module parameters.

 - Fix a potential read of an uninitialized count when printing taint
   information for unloaded modules.

 - Allocate the kmod argument array using kmalloc_array() in preparation
   for conversion to type-aware allocators.

 - Clean up includes in linux/kmod.h

   Add explicit includes of linux/umh.h to files that use usermode
   helpers. Then clean up the #include list in linux/kmod.h, notably
   removing the compatibility linux/umh.h include.

 - Remove the error-injection.h include from linux/module.h

   Add explicit includes of linux/error-injection.h to files that use
   the ALLOW_ERROR_INJECTION() macro and currently rely on it being
   provided indirectly via linux/module.h. Then remove the unnecessary
   linux/error-injection.h include from linux/module.h.

 - Replace __MODULE_STRING() with __stringify() in various drivers in
   preparation for removing the former macro.

* tag 'modules-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux:
  drivers: Replace __MODULE_STRING() with __stringify()
  module: Fix uninitialized count read of unloaded taint tracking record
  rust: module_param: Fix potentially incorrect access of `SetOnce<T>`
  module: Remove the error-injection.h include from linux/module.h
  drm/xe: Include error-injection.h for ALLOW_ERROR_INJECTION()
  drm/i915: Include error-injection.h for ALLOW_ERROR_INJECTION()
  syscalls: Include error-injection.h for ALLOW_ERROR_INJECTION()
  net: Include error-injection.h for ALLOW_ERROR_INJECTION()
  block: Include error-injection.h for ALLOW_ERROR_INJECTION()
  module: Bring includes in linux/kmod.h up to date
  time/jiffies: Include linux/sysctl.h for proc_int_u2k_conv_uop(), ...
  umh, treewide: Explicitly include linux/umh.h where needed
  modules/kmod: Allocate argv with kmalloc_array()
  module/kallsyms: Ignore local labels and mapping symbols during module load
  module/kallsyms: Refactor current symbol filtering into is_core_symbol()
  module/kallsyms: Rename is_mapping_symbol() to is_ignored_kernel_symbol()
2026-10-23 09:32:44 -10:00
Linus Torvalds 88442d9f0d Merge tag 'kcsan-20261020-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/melver/linux
Pull KCSAN updates from Marco Elver:

 - Avoid division by zero in kcsan_prandom_u32_max()

 - test: Do not count report printing time against test duration

* tag 'kcsan-20261020-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/melver/linux:
  kcsan: test: Do not count report printing time against test duration
  kcsan: Avoid division by zero in kcsan_prandom_u32_max()
2026-10-23 09:27:26 -10:00
Linus Torvalds 2ee2475e15 Merge tag 'mm-core-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/core
Pull core memory management updates from David Hildenbrand:
 "This includes updates to:

   - MEMHP (Memory Hotplug)

   - GUP (Get User Pages)

  The main change is:

   - Reduce zone contiguity checking overhead during memory hot(un)plug
     (Yuan Liu)

  Other changes include smaller fixes along with various cleanups"

* tag 'mm-core-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/core:
  mm/memory_hotplug: fix missing rollback in __add_pages()
  mm/memory_hotplug: optimize zone contiguous check when changing pfn range
  mm/memory_hotplug: make shrink_zone_span() more robust
  mm/gup: honour FOLL_PIN in NOMMU __get_user_pages_locked()
  mm/gup_test: report actual pinned bytes
  mm/gup_test: safely calculate GUP batch size
  mm: gup: cleanup the gup_fast_*() call chain
  mm: gup: move pmd_protnone() into gup_fast_pmd_leaf()
2026-10-23 09:13:11 -10:00
Linus Torvalds c5fd5e67c7 Merge tag 'mm-stable-2026-10-19-21-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull MM updates from Andrew Morton:

 - "selftests/mm: improve khugepaged coverage" (Kiryl Shutsemau):

   Give khugepaged a proper workout. Extend the tests to all supported
   mTHP orders, check exactly which windows collapsed, and make scan
   completion deterministic. Race collapse against faults, pinning, fork
   and remap; verify that the contents survive.

   Add coverage for whole-page-table zaps and memory pressure too.

 - "selftests/mm: separate GUP microbenchmarking from functional testing"
   (Sarthak Sharma):

   Untangle GUP benchmarking from correctness testing. Move the
   benchmark into tools/mm, add a standalone harness-based GUP selftest,
   and move shared helpers into tools/lib/mm. Give each tool one job
   instead of mixing timing measurements with correctness checks.

   Cover the mapping, pinning and batch-size combinations explicitly.

 - "mm: Switch device DAX to section-based vmemmap optimization" (Muchun
   Song):

   Apply section-based vmemmap optimization to device DAX. Rework the
   backing metadata layout to save memory while preserving the handling
   of device memory hotplug and its different alignment and lifetime
   requirements.

 - "mm: Introduce section-based vmemmap optimization for HugeTLB"
   (Muchun Song):

   Cut the memory consumed by HugeTLB's struct page array with
   section-based vmemmap optimization. Arrange the metadata so large
   huge pages need fewer backing pages, while keeping initialization,
   teardown and the various hugepage configurations straight.

 - "mm/huge_memory: clean up and decouple the anon and file split
   helpers" (Kairui Song):

   Separate anonymous and file-backed folio splitting, which have rather
   different locking and bookkeeping requirements. Move the work into
   separate helpers, drop dead checks and tidy swap-cache handling. Fix
   error paths, including one that could leave a folio frozen.

   Keep the swap cache cases separate from file-cache splitting.

 - "mm: Unconditional per-VMA locks and cleanups" (Dave Hansen):

   Make per-VMA locking unconditional and clean up the old conditional
   code around it. This removes configuration-dependent plumbing and
   lets callers depend on one locking model rather than carrying both
   cases along.

 - "memcg: remove the v1 soft limit" (Shakeel Butt):

   Remove the old cgroup v1 memory soft-limit machinery. This has long
   since been superseded by the newer memory-control interfaces; hauling
   around a separate reclaim scheme for it no longer buys us much.

 - "read proc/pid/smaps_rollup under per-vma lock" (Suren Baghdasaryan):

   Read /proc/PID/smaps_rollup using per-VMA locks where possible,
   rather than holding mmap_lock across the entire walk. Retain the
   contention fallback and add tearing tests. This considerably reduces
   latency when another thread is busy changing its mappings.

 - "mm/damon: introduce data access-as-a-data attribute" (SJ Park):

   Teach DAMON to expose memory access observations as data attributes,
   making them available to the probe and filtering machinery. Extend
   the interfaces, documentation and tests so the new information can be
   used rather than merely collected.

 - "Remove PG_private by using page/folio->private checks instead" (Zi
   Yan):

   Get rid of PG_private and use the folio's private pointer to say
   whether private data is attached. Convert the filesystem users,
   including erofs, f2fs and md, and clean up the old accessors and
   flags. There are a few special cases, notably swapcache and hugetlb,
   which need explicit care.

 - "mm: make userland page table freeing RCU-safe" (Lorenzo Stoakes):

   Make freeing userspace page tables safe against RCU readers. Sort out
   the page-table lifetime and locking rules so walkers cannot stumble
   over freed tables while mappings are being torn down.

 - "make unused huge shrinker memcg aware" (Qi Zheng):

   Make shmem's unused-huge-folio shrinker aware of memory cgroups, so
   reclaim can find those folios under the right memcg. Wire up the
   per-memcg tracking and its lifetime rules, and give the shrinklist
   its own lockdep class to avoid spurious dependency reports.

 - "mm: Drop pxd_ERROR()" (Anshuman Khandual):

   Remove the old pxd_ERROR() page-table checks and their
   architecture-specific baggage. Simplify the common page-table
   interfaces and callers now that these checks no longer serve a
   useful purpose.

 - "memcg: group struct fields by access pattern" (Shakeel Butt):

   Rearrange memcg's hot and cold fields according to how they're
   actually accessed. Keep frequently updated counters and their
   neighboring state from fighting over cachelines and reduce needless
   cacheline traffic.

 - "mm/damon/core: fix the size charged for a filter-trimmed region"
   (Donggeun Yoo):

   Fix DAMOS quota accounting when a filter trims a monitoring region.
   Charge only the part left after filtering, not the original region,
   and add KUnit coverage. Previously the excluded memory could eat into
   the quota and make schemes run more slowly than requested.

 - "mm/damon: add kunit and selftests for probes and probe weights" (SJ
   Park):

   Add more tests for DAMON probes and their weights, including
   validation and the results reported to userspace. This is mostly
   about catching regressions in the newer probe infrastructure before
   they become harder to diagnose.

 - "mm: memcontrol: constify the read side of the read side of the memcg
   API" (Tal Zussman):

   Mark the read-only parts of the memcg interface const, from folio and
   lruvec accessors to counters and swap helpers. Most of this is
   mechanical, but it makes the contracts clearer and lets the compiler
   catch accidental writes.

 - "mm/damon/vaddr: support {prep,apply}_probes" (SJ Park):

   Support the new prepare/apply probe operations in DAMON's
   virtual-address backend. This brings vaddr monitoring into line with
   the probe infrastructure and makes the added probe types useful there
   too.

 - "mm/mglru: clean up folio counters and flag usage" (Kairui Song):

   Simplify MGLRU's folio counters and flag handling. Remove redundant
   accounting paths and make the state transitions easier to follow
   without changing the intended reclaim policy.

 - "arch, mm/execmem: resolve confusion about set_direct_map_valid_noflush()"
   (Mike Rapoport (Microsoft)):

   Clarify and straighten out the set_direct_map_valid_noflush()
   interface across architectures and execmem. Make the requested
   mapping changes and the callers' expectations agree, rather than
   relying on subtly different architecture behavior.

 - "mm: zswap: free cold writeback folios promptly" (Alexandre Ghiti):

   Free zswap writeback folios as soon as their disk write completes.
   They are cold temporary buffers, so putting them on the LRU only
   makes reclaim rediscover them later. Extend swap-cache dropbehind and
   let zswap keep these folios off the LRU altogether.

 - "mm: gup: cleanup gup_fast call chain" (Aristeu Rozanski):

   Clean up the GUP-fast call chain and simplify how the fast-path
   helpers pass their arguments and results around. Keep the page-pin
   behavior the same while making the call sequence easier to maintain.

 - "mm: optimize zone-device memmap initialization" (Li Zhe):

   Speed up initialization of zone-device struct pages. Avoid redundant
   work when setting up large device-memory ranges, where touching every
   descriptor can get expensive.

 - "mm/zswap: shrink zswap_entry via a pool id" (Jianyue Wu):

   Reduce the size of zswap_entry by storing a compact pool identifier
   instead of a full pointer. Keep the pool lookup and lifetime handling
   correct while saving per-entry metadata.

 - "mm/damon: support access monitoring of hugetlb-backed memory"
   (Krishna Iyer):

   Let DAMON monitor hugetlb-backed memory too. Extend the relevant
   access checks and add coverage so those mappings no longer fall
   through a hole in the monitoring machinery.

 - "mm/execmem: fixes and cleanups for the ROX cache" (Mike Rapoport):

   Tidy execmem's read-only-executable cache and fix its handling of the
   awkward allocation and release cases. The aim is to make the cache's
   ownership and permission transitions more predictable.

 - "zsmallc: remove old object read API" (Sergey Senozhatsky):

   Drop zsmalloc's old object-read API and move its remaining users to
   the supported access mechanism. This removes a duplicate interface
   which we no longer need.

 - "mm/mempolicy: stop copying state in the interleave paths" (Gregory
   Price):

   Stop copying mempolicy state in the interleave paths when a reference
   to the existing policy will do. This avoids extra work and makes the
   ownership rules less obscure.

 - "mm/mglru: speed up inc_min_seq() and fix cold/hot inversions" (Barry
   Song):

   Make MGLRU's generation advancement cheaper and fix cases where cold
   and hot folios end up in the wrong order. Adjust the counter and list
   handling so reclaim doesn't keep passing over the better eviction
   candidates.

 - "mm: Fix MF_DELAYED handling on memory failure" (Lisa Wang):

   Treat MF_DELAYED as a partially completed memory-failure operation,
   not an outright failure. Propagate that result correctly through
   shmem and the generic handler, fix the extra-reference accounting,
   and add tests for the resulting SIGBUS behavior.

 - "tools/mm/page_owner_sort: fix --sort, add module filter, improve
   usage" (Ye Liu):

   Fix page_owner_sort's --sort handling, add module-based filtering and
   make the usage output more helpful. This makes the tool less
   frustrating when tracking down who is holding on to pages.

 - "mm/damon: move damos filter range arguments validation to core" (SJ
   Park):

   Move DAMOS filter range validation into the core, where all callers
   can share it. Also close the sysfs read-twice races which could pass
   inconsistent ranges, and add tests for invalid input.

 - "mm/damon: misc cleanups" (Zenghui Yu):

   Clean up a collection of small DAMON rough edges in the core,
   interfaces and tests. No large behavior change here, just simpler
   code and fewer opportunities for confusion.

 - "mm/damon: cleanup code, add test cases, and update guidances in
   docs" (SJ Park):

   Clean up DAMON's core and interfaces, add missing test cases and
   bring the documentation into line with the code. These changes should
   make the newer facilities easier to understand and maintain.

 - "mm/damon: introduce hugepage_size probe filter" (SJ Park):

   Add a DAMON probe filter for hugepage size. Let users select a range
   of folio sizes through sysfs, validate the range and document the new
   interface, so monitoring can concentrate on memory backed by the
   desired hugepage sizes.

 - "selftests/mm: pagemap_ioctl test fixes and cleanups" (Zenghui Yu):

   Fix some pagemap ioctl test assumptions and clean up their setup and
   reporting. Make failures point to the operation that went wrong
   rather than to test harness bookkeeping.

 - "mm: avoid large folio splits when swap is unavailable" (Johannes
   Weiner):

   Avoid splitting large folios merely to attempt swap when no swap
   space is available. There is little point paying for an expensive
   split when reclaim cannot actually swap the resulting pages out.

 - "mm: workingset: fix the shadow node budget under MGLRU" (Hui Zhu):

   Fix the workingset shadow-node budget with MGLRU enabled. Keep the
   shadow entries within the intended limits so refault tracking does
   not quietly consume more metadata than it should.

 - "selftests/mm: TAP output and global-state fixes" (Song Hu):

   Fix selftests which produce misleading TAP output or fail to restore
   global settings after a run. A test ought to leave the system as it
   found it, particularly when a whole suite follows behind.

 - "mm: remove page_swap_entry()" (Tal Zussman):

   Remove page_swap_entry() and convert its remaining users to the folio
   and swap-entry helpers. Lose an old page-level interface and make the
   swap paths a little more consistent.

 - "mm: refactor zonelist constructors and iterators" (Gregory Price):

   Refactor the zonelist construction and walk helpers to reduce
   duplicated logic. Keep the allocation ordering rules intact while
   making it clearer how zones are selected.

 - "mm: kmemleak: batch the struct page scan" (Breno Leitao):

   Scan adjacent struct pages in batches instead of taking kmemleak_lock
   once for every single page. This preserves scan coverage and the
   lock-hold bound, while cutting overhead substantially on debug
   kernels.

 - "mm/damon: misc improvements in tests and documents" (Zenghui Yu):

   Fix some DAMON selftests which leave kdamond running or fail under
   Python safe-path mode, and improve the KUnit coverage and
   documentation. Nothing especially glamorous, but these are worth
   doing.

 - "mm/damon: introduce probe_hits_wsum DAMOS core filter" (SJ Park):

   Add a DAMOS core filter using weighted probe-hit counts. This gives
   schemes another way to select regions based on what the monitoring
   probes observed.

 - "mm/mglru: fix ineffective memory protection for non-kswapd reclaim"
   (Ridong Chen):

   Fix MGLRU's memory protection handling for reclaim outside kswapd.
   The protection settings weren't having the intended effect in these
   paths, leaving protected memory more exposed than requested.

 - "mm/damon: improve readability, clarity and test coverage" (SJ Park):

   Simplify a handful of DAMON core helpers, clarify their behavior and
   expand test coverage. There are no intended userspace-visible changes
   in this batch.

 - "mm: replace PF_KCOMPACTD/PF_KSWAPD with kthread_func()" (Kefeng
   Wang):

   Stop identifying reclaim and compaction workers through the PF_KSWAPD
   and PF_KCOMPACTD task flags. Use their kthread functions instead and
   remove the redundant flag plumbing.

 - "mm/hugetlb: fix surplus accounting and availability checks during
   demotion" (Longlong Xia):

   Fix HugeTLB surplus accounting and availability checks when demoting
   huge pages. Keep the counters and reservation decisions consistent as
   one huge page turns into several smaller ones.

 - "mm/damon: add kunit tests for probe_hits handling and probe params
   validation" (Jason Angelov):

   Add KUnit tests for DAMON probe-hit handling and invalid probe
   parameters. These cover edge cases that were too easy to miss in
   ordinary monitoring tests.

 - "mm/damon: fix misc bugs in kunit, quota goals and sysfs refresh_ms"
   (SJ Park):

   Fix a few DAMON bugs in KUnit tests, quota-goal handling and the
   sysfs refresh interval. Small fixes, but the incorrect results and
   control behavior were real.

 - "mm: zswap: optimize zswap invalidate and store" (Kefeng Wang):

   Simplify zswap's invalidate and store paths to avoid avoidable
   lookups and work. Keep the entry lifetime rules intact while making
   those frequent operations cheaper.

 - "mm: replace custom ratelimiting logic" (Pedro Falcato):

   Replace hand-rolled MM rate limiting with the common kernel helpers.
   There is no need to maintain another local version of the same
   mechanism.

 - "mm/vmalloc: minor cleanups" (Ye Liu):

   Tidy some vmalloc initialization and reporting code, and pull
   duplicated vmap-area insertion work into a helper. No functional
   changes are intended.

 - "mm/mglru: clean up isolate_folios for readability and clarity"
   (Ridong Chen):

   Clean up MGLRU's isolate_folios() so the decisions are easier to read
   and verify. Keep reclaim behavior unchanged while removing
   unnecessary twists in the control flow.

 - "Catch automatic storage in IDA and Maple Tree definitions" (Yury
   Norov):

   Catch IDA and maple-tree definitions placed in automatic storage
   where the lifetime rules are wrong or easy to get wrong. Add checks
   so such mistakes are harder to slip through unnoticed.

 - "mm, swap: some random fixes and cleanups" (Kemeng Shi):

   Fix and simplify a few unrelated swap paths, removing redundant work
   and tidying up error handling. A small collection of things which
   were better fixed than left lying around.

 - "mm/page_io: folio conversion cleanups" (Tal Zussman):

   Finish some page-to-folio conversions in swap I/O, removing obsolete
   wrappers and using folio operations consistently. The I/O behavior is
   intended to remain the same.

 - "mm/swap: skip empty clusters in the swapoff scan" (Youngjun Park):

   Skip empty swap clusters during swapoff instead of walking slots
   which have nothing to release. This avoids pointless work on sparsely
   used swap devices.

 - "mm: trace: decode architecture-specific VMA flags" (Meijing Zhao):

   Teach the VMA trace output to decode architecture-specific flags,
   rather than leaving them as unexplained bits. That should make
   tracing a good deal more useful when debugging unusual mappings.

 - "mm, swap: don't spin on a bad swap entry" (Breno Leitao):

   Stop repeatedly retrying a swap entry which is already known to be
   bad. Make the error path terminate cleanly instead of wasting CPU
   chasing an entry that cannot be used.

 - "mm/page_isolation: fix UBSAN shift-out-of-bounds in
   isolate_single_pageblock" (Qi Xi):

   Fix an out-of-range shift in isolate_single_pageblock() and tighten
   its associated boundary handling. UBSAN found the issue; the result
   should be more robust pageblock isolation.

 - "mm: khugepaged: fix tracepoint UAF" (Vernon Yang):

   Fix a use-after-free in khugepaged tracepoint handling. Make sure the
   information recorded by tracing stays valid for as long as the trace
   event needs it.

 - "mm/damon: fix DAMOS bugs in core, paddr and vaddr" (SJ Park):

   Fix several DAMOS problems across the core and physical- and
   virtual-address backends. The changes close error cases and bring the
   implementations back into agreement.

 - "mm/hugetlb_cgroup: move the per-node usage along with the folio"
   (Hongfu Li):

   Move HugeTLB per-node usage accounting when folios migrate between
   nodes or are reparented to another cgroup. Otherwise numa_stat can
   retain stale charges and even underflow when the folio is freed.

 - "docs/core-api: memory-allocation: add k[mz]alloc_obj() and clarify
   kmalloc" (Mike Rapoport):

   Document the typed k[mz]alloc_obj() allocation helpers and clear up
   some kmalloc guidance. Make it easier for callers to choose the right
   interface.

 - "selftests/mm: Validate selections and scope memfd_secret setup"
   (Tianyi Chen):

   Check selftest selections before running and confine memfd_secret
   setup to the cases that actually need it. Avoid confusing failures
   caused by the test harness itself.

 - "mm/damon: move zero damos quota target_value handling to the core
   layer" (SJ Park):

   Handle a zero DAMOS quota goal target in the core rather than making
   each user of the interface invent its own rule. Keep quota decisions
   consistent across callers.

 - "mm/damon: Introduce a huge page collapsing mechanism using auto
   tuning" (Asier Gutierrez):

   Add an auto-tuned DAMON mechanism for collapsing huge pages. Use
   monitoring feedback to decide when collapse is worthwhile rather than
   forcing one fixed policy onto every workload.

 - "kmemleak: fix stale documentation and raise the verbose default"
   (Breno Leitao):

   Bring the kmemleak documentation up to date and require a third
   confirming scan before verbose kernels print a suspected leak. The
   extra scan helps suppress transient false positives in noisy debug
   builds.

 - "mm/memory: improve insert_pages() error handling" (Avi Weiss):

   Tighten insert_pages() error handling so partial failures are
   reported and cleaned up consistently. The caller should not have to
   guess how far the operation got.

 - "mm/damon: allow NULL or unstarted damon_ctx parameter for
   damon_call()" (SJ Park):

   Make damon_call() handle NULL and not-yet-started contexts safely.
   Simplify the rules for callers and avoid an indefinite wait on an
   invalid state.

 - "mm/damon: introduce pgidle_set probe filter type" (SJ Park):

   Add a pgidle_set DAMON probe filter, giving monitoring users another
   way to select pages by their idle-tracking state. Wire it through the
   filter interfaces and tests.

 - "mm/damon/core: remove unused helper functions" (Cheng-Han Wu):

   Remove DAMON core helpers which no longer have callers. Keep the API
   surface smaller rather than retaining dead code just in case.

 - "mm: stop calling pmd_folio() on special PMDs" (Gregory Price):

   Avoid calling pmd_folio() on special PMD mappings that have no struct
   page. The old assumption could fault in procfs walkers; use the
   normal-folio checks and handle those mappings properly.

 - "mm: remove three unused helpers from mm.h" (Tal Zussman):

   Remove three unused helpers from mm.h. Fewer obsolete interfaces for
   the next person to stumble over.

 - "mm/damon: improvements in efficiency, error handling, documents"
   (Liew Rui Yan):

   Skip needless DAMOS quota work once the quota is full, propagate a
   missing sysfs error and tidy a couple of comments. The ignored error
   could make a monitoring-start request appear successful when it
   wasn't.

 - "docs/mm/damon/design: add explanation of nr_snapshots" (Liew Rui
   Yan):

   Explain DAMON's nr_snapshots accounting in the design documentation
   and straighten out the associated terminology. Make it clearer what
   users should expect from that counter.

 - "selftests/cgroup: fixes for test_zswap on single core VM" (Wilson
   Felipe Pereira):

   Fix two test_zswap failures on single-CPU VMs. Wait for the exiting
   child's cgroup to become unpopulated before reconfiguring it, and
   avoid another test assumption which breaks under constrained
   scheduling.

 - "docs/ksm: fix advisor documentation and comment" (Jinjiang Tu):

   Correct the KSM advisor documentation and a misleading code comment.
   Keep the description aligned with how the advisor actually works.

 - "Fix bugs in HugeTLB allocation when mem_cgroup_charge_hugetlb()
   fails" (Ackerley Tng):

   Fix HugeTLB allocation cleanup when the memcg charge fails. Make sure
   failure exits undo what was allocated rather than leaving stale
   accounting or resources behind.

 - "mm, memcg: fix memory.peak reset clobbering other fds' watermark"
   (Ridong Chen):

   Fix memory.peak reset handling so resetting one file descriptor
   doesn't overwrite the watermark kept for another. Keep those per-open
   measurements independent as intended.

 - "mm: reject zone device folios in more folio walkers" (Gregory
   Price):

   Reject zone-device folios in page walkers that cannot safely handle
   them. Extend the existing checks rather than assuming every folio has
   ordinary system-memory backing.

 - "percpu: remove code with no effect" (Sang-Heon Jeon):

   Remove a few pieces of percpu code which no longer do anything. There
   is no reason to keep maintaining dead paths.

* tag 'mm-stable-2026-10-19-21-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (539 commits)
  mm: shmem: assign a lock class to the unused huge shrinklist
  mm: vmscan: put rotation-missed folios at the LRU tail
  mm: kmemleak: scan the struct page array in MAX_SCAN_SIZE batches
  mm: kmemleak: move the struct page scan into a helper
  mm/damon: document that a zero sample_interval is accepted
  mm/damon: fix typos in comments
  mm/damon/sysfs: propagate damon_call() error in turn_damon_on
  mm/damon/core: skip quota score setup when the quota is full
  mm/damon/tests/core-kunit: test the size charged for a filter-trimmed region
  mm/damon/core: charge only the part of a region the filter left
  mm: disallow raw PFN mappings of huge/shared zeropage
  selftests/mm: zap whole PTE tables in the khugepaged race harness
  selftests/mm: add memory-pressure threads to the khugepaged race harness
  selftests/mm: race the collapse of windows with holes
  selftests/mm: add khugepaged race harness
  selftests/mm: check that one khugepaged pass collapses one window
  selftests/mm: run every supported collapse order by default
  selftests/mm: cover a shared-source collapse write race
  selftests/mm: parameterize the mixed-source collapse case by source order
  selftests/mm: add order-parameterized khugepaged collapse cases
  ...
2026-10-23 07:42:11 -10:00
Miquel Raynal 0ef71adafa Merge tag 'spi-nor/for-7.4' into mtd/next
SPI NOR changes for 7.4

- Support for new Macronix and (lots of) Winbond flash devices
- The addition of the Winbond flashes was accompanied by a big rewrite of the
  status register handling. There were many small helper functions to enable
  quad I/O mode in many different ways. That's now consolidated in one generic
  function.
- The SFPD handling was reworked. It used to be only parsed for flashes present
  in the in-kernel database which had any of the multi-I/O bit set - or with the
  addition of generic flash driver for any unknown flashes. This left a gap
  where SFDP wasn't handled and it turns out newer flashes (with SFDP support)
  will reused IDs of just these old flashed. With the rework, SFDP is tried to
  be parsed for any flashes and will amend the information which is already
  present in the in-kernel database.
- SFDP size limit was increased to 16KiB. There are flashes which have some
  larger gaps between tables and thus exceeds the former 4KiB limit.
- Flash fixups are getting more and more common. Due to this, the fixups are now
  a separate list (per manufacturer) instead of being attached to a specific
  flash. A new .match() callback makes them more flexible, when one is applied.
- 1-1-8 and 1-8-8 modes are now supported with larger flashes which needs 4byte
  addresses.
2026-10-23 18:50:09 +02:00