Commit Graph

1487183 Commits

Author SHA1 Message Date
Linus Torvalds
9ba46df344 bitmap updates for v7.4
- __MAKE_OP() removal (Yury, Mark);
  - bitmap parsing fixes (Shashank);
  - Rust docs updates (Georgios).
 -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEi8GdvG6xMhdgpu/4sUSA/TofvsgFAmrVbSMACgkQsUSA/Tof
 vshlsQv+NeRJp2focN/6QYq9ec2tp8uwdY1Ur9tiHdonE3Oq04EMNjbsVOLxn9u2
 eFfTzb7UyjCjKGab8h0ZzZxg34rBCvIYCwW66FcEeXzpPiTJVKPHYx6Mp+Gg1UiF
 QSIRXJsXiI5zj7ltORBb+FYHVVwGN80EGle1fjAN3cTA5OmiVcwLVml8jCfTzUJJ
 lEsJm57MDyH3XVnrBTm4HE8yMQZkDYhh8KUFQClZJsl7D9VcymtNIqkz33lm1Zqh
 ItoYq4nJD0t4emTVRvH+KcfJnnv1my68rErbDNv7T0gjKY/razPkN+EFeB6e6NFv
 J6lFW2OHTeAmpbMSxUCHuqx5m/wRxPdlkN1o3CoAd+pUbjs/Dz59PnffTlGLw6yD
 AMg3m+6/4B+Ucmb6+WWpEHEuixUXm1Vnjl63EHaHPJNHFRzQGKnEtMJblKphwE7k
 v0sq75ev4rvZ6SACICydZa0l88M8Z/q3Rj0W6SmuQHRZObsHLPprzqn5KIeEfTjO
 7iv6Vkry
 =5Jv7
 -----END PGP SIGNATURE-----

Merge tag 'bitmap-for-v7.4-rc1' of https://github.com/norov/linux

Pull bitmap updates from Yury Norov:
 "This includes __MAKE_OP() macro removal from me with the follow-up
  from Mark, cleanups for bitmaps parser from Shashank and a couple Rust
  docs fixes from Georgios"

* tag 'bitmap-for-v7.4-rc1' of https://github.com/norov/linux:
  rust: bitmap: document panics in `next_bit` and `next_zero_bit`
  rust: id_pool: document panics in `find_unused_id` and `release_id`
  bitmap: test bitmap_parselist() with a group size close to UINT_MAX
  bitmap: bitmap_parselist(): don't wrap around on a huge group size
  bitmap: test bitmap_parselist() with text after the group size
  bitmap: bitmap_parselist(): reject trailing characters after group size
  bitmap: test bitmap_parse() with an illegal character before 8 hex digits
  bitmap: bitmap_parse(): reject non-hex character before 8 digits
  bitfield: Restore be16_replace_bits()
  bitfield: get rid of __MAKE_OP machinery
2026-10-21 09:49:47 -10:00
Linus Torvalds
22a78a2543 Merge __{get,put}_user() removal branch
This is long over-due: the __get_user() and __put_user() functions are
entirely historical, and are never the rigth thing to use any more.  And
when mis-used (read: every case) they are not only slower than the right
thing, but also insecure because they don't check the user address
range.

Most of the usage sites have been converted long ago, but various
left-overs remained.  So this started out as a single patch that I wrote
as a "show people how to convert __{get,put}_user() to modern code".

In particular, Thomas last year implemented the very nice new scoped
user access region helpers (see commit e497310b4ffb: "uaccess: Provide
scoped user access regions") that makes the modern interfaces
particularly easy to use and really removes any excuse for the old
horrors.

That small example patch then grew to this, partly using Claude as a
glorified coccinelle script to apply the pattern to other places.

There were a few different reasons for using __put_user() and
__get_user() rather than the alternatives, but the original historical
one was performance: when doing multiple accesses off the same base
pointer, doing a single range check followed by multiple non-checked
accesses used to create smaller and faster code.

The keyword here is "used to".  It hasn't been true for years, because
the range check isn't actually the real cost these days.  The real cost
of user accesses on modern hardware is turning the user accesses on and
off in the first place (on x86, using the STAC/CLAC instructions).

Those sequences get turned into 'scoped_user_read_access() { }' blocks,
see for example that first patch in the series: "signal: use scoped user
access for old-style sigaction".

Another, historical reason for using __get_user() and friends is that
you actually want to do a kernel pointer access, but the pointer might
not be entirely reliable (typically during fault handling), so you want
to have exception handling for the kernel access.

The modern way to do that kind of non-faulting kernel access is using
"get_kernel_nofault()", but some code predates that helper existing at
all, and used __get_user() as a way to just get a memory access with
exception handling.  For that pattern, see for example "alpha: use
get_kernel_nofault() in dik_show_code()"

A third bad reason for using __get_user() and friends was that the
proper get_user() had a "might_fault()" in it, and code that ran in
atomic regions but hadn't disabled page faults would result in a
warning.  That kind of code needs to explicitly disable page faults,
because "atomic region" is not well defined at run-time and can be
invisible (eg a preempt-off region in a non-preemptible kernel).

See "vdpa_sim: disable page faults around vringh_need_notify_iotlb()"
for an example of that pattern, where the local_bh_disable() now also
grows a pagefault_disable(), which makes the normal get_user() no longer
warn about the user access in non-process context, because it can see
that the potential page fault will not cause problems.

And finally, the really nasty reason to use __get_user() and friends:
pointers that can be either kernel pointers or user pointers.  We've
gotten rid of almost all such cases, but a couple remained.  See for
example "x86/sev: Use explicit user-or-kernel accessors for #VC memory
operands".

NOTE! This series removes all __get/put_user() calls from generic code
but only does the final removal of the whole interface on x86.  Other
architectures have not been entirely converted, for a variety of reasons:

 - arm64 makes __{get,put}_user() be exactly the same as
   {get,put}_user() so it's harmless and didn't have the dangers of the
   legacy use cases.

 - any architecture that uses <asm-generic/uaccess.h> will still use
   __{get,put}_user as the underlying helper function name

 - several architectures had some legacy uses that weren't entirely
   trivial and I didn't want to extend this patch series to things that
   I don't know and that don't really matter.

but I did do a couple of the obvious "follows the exact same pattern"
just because it could be done mindlessly and automatically.

Let's see if I broke anything, but we should have done this years ago.

* uaccess-cleanups: (48 commits)
  drm/i915/gem: ignore errors on presumed_offset write-back
  powerpc/align: use get_user_instr() for a user-mode instruction
  powerpc/signal64: use scoped user access in setup_trampoline()
  powerpc/signal64: use get_user() for the single context reads
  powerpc/signal32: use get_user() for the single context reads
  KVM: PPC: Book3S HV: use get_user()/put_user() for the HPT fd
  powerpc/powernv: use get_user()/put_user() in the LPC debugfs files
  s390: use get_user()/put_user() instead of the unchecked variants
  ARM: OABI: use scoped user access in epoll_put_uevent()
  ARM: signal: stop using __put_user() for the signal frame
  ARM: signal: check the FDPIC function descriptor address
  alpha: split the prefetch check in do_page_fault() by mode
  openrisc: use get_kernel_nofault() in show_registers()
  alpha: use get_kernel_nofault() in dik_show_code()
  nios2: use scoped user access for the signal frame
  nios2: check the signal frame address before writing to it
  hexagon: use scoped user access for the signal frame
  alpha: use scoped user access when setting up signal frames
  alpha: use scoped user access in the sigreturn path
  alpha: use scoped user access in osf_sigaction()
  ...
2026-10-21 07:19:30 -10:00
Linus Torvalds
14b482c98d drm/i915/gem: ignore errors on presumed_offset write-back
It appears that the crazy "don't check for errors" code in the i915
relocation code was intentional, but not visible in the code as such.
See commit 97a37c919f ("drm/i915/gem: Ignore readonly failures when
updating relocs").  Quoting that commit:

    "Be damned if you do, and damned if you don't."

So disable the error check again, but leave it around visibly for
posterity as documentation for why it's not there.

Fixes: 03c19e449a ("drm/i915/gem: Don't fault on presumed_offset write-back")
Reported-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-21 07:13:59 -10:00
Linus Torvalds
a804c5742b lsm/stable-7.4 PR 20261016
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEES0KozwfymdVUl37v6iDy2pc3iXMFAmrSkXAUHHBhdWxAcGF1
 bC1tb29yZS5jb20ACgkQ6iDy2pc3iXOXTQ/+LcghZOG72DOeZwDkXIzdD+Ex5Xkf
 kV3EiZ+l6LCy2sGePC5PdHJaX1wQE5N0bHCHh8TMIsfE5b0nbdKJsDiFJVkayTJz
 CE4SpAm8Tup+CBDkwMJ1x3aGYgh4RxbgTR9klsrH2zsehI80sGLE3SYp9+lO3BFp
 Eyf+INgF2GrcBNH3ozQBtME5b0086UC/uWif1vQ3HK4RU6QxWlQg5VB68+XJv9GY
 /wZyJ4bIet8QQ1S2boMQN/RGQHih1qYs8hOeuL+R0Inh6pk59ucgM3qfj9OILWbD
 x4u9ptO7ICvoKlkrzWIfvt+ydM5q9mHozN1qi2i+dy4IiDyBicZ75YCFWIeSOld+
 UGL73NB08g/KT1fOo7WE3lfm/ZAMoR8F0IUScDvMeVLv06NU/rCccPKl+z8bYBuo
 vSbctpHsnSPxpZew1U1FiTavwTUZVTHgPnuGrM28wfV1qsj+y9jebM35GNETolDi
 6fcsVh6Fw/8qCG/V1TVQzahqI0xuA2/BDQE7vFKO87Mmu7EJqNr1J3lgFdmMk7tD
 cZqHhHhSF7MgQz8qkuCB8t2edukXV1Fyzm8tUmA9MeurfQHrhLkwZuRPzKmEz0RB
 HssTyKhmo9cwgLgRFzspnoDIOXcSYqxUNSmz4BOVb9yUMi/d5bRhiZ6JFym19rRr
 9IjSU2ud7x3fXqw=
 =7Dpp
 -----END PGP SIGNATURE-----

Merge tag 'lsm-pr-20261016' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm

Pull lsm updates from Paul Moore:

 - Add LSM hooks, object blobs, and audit records for namespaces

   Add the necessary bits to enable LSMs to enforce access controls on
   the management of various kernel namespaces. While this pull request
   does not contain any in-tree users of these hooks, the Landlock pull
   request for Linux v7.4 will include Landlock support and the next
   merge window will likely include SELinux support as well. Considering
   the development behind these hooks, I expect that BPF LSM developers
   will also be making use of the namespace hooks, if they haven't
   already.

 - Update the inode LSM hooks to include mount idmaps

   This allows LSMs to incorporate the mount ID mapping into their
   access control decisions. While there are no current in-tree users of
   this, it was requested by those developing BPF LSM programs and this
   pull request includes a BPF LSM selftest.

 - Preserve the full 32-bit ioctl command in LSM audit records

   Previously only the low 16 bits were logged, ignoring the direction
   and size information in the upper 16 bits. The pull request also
   includes a Landlock based selftest to verify the full 32-bit ioctl
   value.

 - Ensure we don't call security_backing_file_free() multiple times

   Thankfully we don't have a problem with the current code base, but we
   want to fix this behavior now before it becomes a problem.

 - Clarify that only the current task may access current->cred

   The current code is a bit misleading around safely accessing the cred
   field in a task struct. Through comment and code corrections, this
   pull request clarifies that only the task itself may access its cred
   field.

 - Add SLAB_NO_MERGE to the credential object cache

   Harden the credential cache by ensuring credential objects live on
   dedicated slab pages.

 - Make use of safe memory zero'ing in the LSM Rust bindings

 - Update the docs for the current behavior of /sys/kernel/security/lsm

 - Update the docs for CONFIG_LSM and the "lsm=" command line option

 - Remove unnecessary code

* tag 'lsm-pr-20261016' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
  lsm: remove redundant NULL check in security_init()
  selftests/landlock: Check full ioctl commands in audit records
  lsm: Preserve full ioctl commands in audit records
  doc: fix LSM ordering description for /sys/kernel/security/lsm
  doc: describe CONFIG_LSM and lsm= as the selection mechanism
  selftests/bpf: verify mount idmaps reach inode hooks
  lsm: expose mount idmaps to inode hooks
  rust: lsm: replace `core::mem::zeroed` with `pin_init::zeroed`
  cred: prevent slab cache merging for cred_jar
  lsm: don't call security_backing_file_free() multiple times
  lsm: delete duplicate assignment in lsm_prepare()
  lsm: update the BUILD_BUG_ON() in audit_log_lsm_data()
  lsm: add LSM_AUDIT_DATA_NS for namespace audit records
  lsm: add LSM blob and hooks for namespaces
  ns: Free anonymous mount namespaces via ns_common_free()
  cred: clarify that task_struct::cred is only for the current task
2026-10-20 20:04:07 -10:00
Linus Torvalds
331eadd85f selinux/stable-7.4 PR 20261015
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEES0KozwfymdVUl37v6iDy2pc3iXMFAmrRAQIUHHBhdWxAcGF1
 bC1tb29yZS5jb20ACgkQ6iDy2pc3iXPjzBAAhBwzyxD47NquFO6w6dHj95wol7t/
 sxiWyNMLIPHsXr5RjbqS/EIkCS9OM0ZPRSKFAY/x1ddTJRr2KIQiaUPI1cf+VsMG
 QeGYd9p5Kp00jopa8Mj+2No9TvJZoNMTEyNYgtBQWCNUwF+dnYV0/c42IoHNeuOm
 5+BvqAIL32sEHHEtDeyconNJq4SLhsh75jC0jZtGSIbk3Y33a8q+4WkLc6nLzE7f
 AY5G4BDgt4z+Y7isMjDf1ApItyvDeHm4HP5gzu/YKUEF0D25UPiI+/eQhBAKdIEW
 +Y6v2NkN/0bYFGX/tKcKBAUb4OdYPcqA4B+H+5y03m/BuUxkqX3q5b3n4uPuL5Bl
 2nKVHtie/jjBEKTLlmP/bdivDPpf8V7Ljy/9baqrRuQSoUtxU9dd/dV+Ae08iKY4
 m1l6Kw2SjxoDNRRwaXJAA0oYCfl5T0OY3ZSaZCUnBLv7sNw3AZzop1c1FFRaLeeJ
 KGYju9cB+XsvOWTdkV7xGj6JFJpazcMSm6HPwkEEoXHpnuA842ErBpjozPpaTPsR
 i7EW1a/ohx2PXwWBxttYUY6IC8IW/d7vMTmR4hxkzILq3L0IMhdBnKvGsUWfvlrf
 5kqUEvxN+6SbhRhg2Jm9MRtW7/Tt2w8Ev2smb8B6zO1VcYDzEAgojtlymoS+itYK
 psYNddDIrkfSkpw=
 =pp5e
 -----END PGP SIGNATURE-----

Merge tag 'selinux-pr-20261015' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux

Pull selinux updates from Paul Moore:

 - Continue to improve the load time validation of SELinux policies

   While SELinux policy loading remains a privileged operation, we
   continue the recent trend of hardening the policy parsing and
   validation code in the kernel to ensure that invalid, or poorly
   formatted policies are rejected at load time.

 - Correctly incorporate "neveraudit" into the xperms code

   This change aligns the xperms neveraudit handling with the
   conventional permission handling code, exiting early from the SELinux
   auditing code when neveraudit is enabled for the domain.

 - Mark the selinuxfs "status" and "policy" files immutable

   These are read-only kernel/userspace interfaces that could
   successfully be opened at the VFS layer through the use of
   CAP_DAC_OVERRIDE. With this pull request we are marking these two
   files as immutable so that the requests to open these file with write
   permissions now fail at the VFS layer. This also allows us to drop
   some of our mmap() checks around write permissions as the VFS will
   now also handle this for us.

   The existing SELinux permissions checks remain untouched.

 - Convert the selinuxfs inode numbers to u64

   Bring selinuxfs current with other filesystems in using u64 for inode
   numbering as opposed to the architecture dependent unsigned long.

 - Constify a number of the SELinux AVC function parameters

 - Remove a SELinux MLS function that was no longer used

* tag 'selinux-pr-20261015' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
  selinux: validate permissive and neveraudit map types at load
  selinux: validate user MLS range and default level at load
  selinux: bounds-check role and user membership bitmaps at load
  selinux: check neveraudit in avc_xperms_audit_required()
  selinux: bounds-check filename transition source types at load
  selinux: reject duplicate symbol values during policy load
  selinux: reject a policy that both rejects and allows unknown classes
  selinux: constify avc function parameters
  selinux: avoid 64-bit division of inode numbers
  selinux: mark status and policy inodes as immutable, drop status mmap write checks
  selinux: remove unused mls_setup_user_range()
  selinux: convert selinuxfs inode numbers from unsigned long to u64
  selinux: tighten policydb_context_isvalid() checks
2026-10-20 19:42:14 -10:00
Linus Torvalds
0d508d4709 audit/stable-7.4 PR 20261016
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEES0KozwfymdVUl37v6iDy2pc3iXMFAmrSKRAUHHBhdWxAcGF1
 bC1tb29yZS5jb20ACgkQ6iDy2pc3iXO2KhAAgumB+XfmotuGhd31F230xMHXBeoU
 q5kJXOhpET1GCrtvl2sYXoYaiUQS2moxAksXq5rUWoJEQVM6/tebm48L7T1b6HZP
 UVUyOADlap4m2GfCP3BikC/cs4RBg0BBMa1Hz4GVa+otlKH9hfDbeo2VvkhO3Wck
 lITLAOV1hsr/ca5nAxRuO0654BnPQbnypkFJ9ev+Yzd586RgQxxqIUD0w819kNkz
 387pc71L6AgUimod+8SLK4yWZpUdE0NzU8VWSIrNRzQGMH7AM9rYCjYj4o7jKxkb
 GLl/ekfS2Z04aC8dNXB52DdPSdfb81zPV0CYuuCLK4hgQfH9y+PvpCIBSb+hxnHF
 MPBQTH8sX8sGBRA7H337z+m67ZNsw+9D500OynxwxS5ElAux05NGrF+jepk/Hvye
 zE1ID2bD8H0JhyWw1OACH1Zcpm4g4SBwjKJxFRjYyYStGuGhDokuawent2H27Mlz
 KC5NRPj8I0QT+XTeoeBHqbVOoQdrzjiPbUdbebMFVFs8qOvgeYrCvz502Fe8Pooc
 t+fXAgDeVc0n2NjxXZA/UNTRMhZDGlhaUUbuyO7Po/fvdksajyfIPTvUACD1jJKb
 ZcZpya7rXtaQpLfp226fh2XJz9AHD7dgQKFM8mL7wD5MvSyw4P3Zu25fZEtGWB9C
 hD96nNzHL6mbREo=
 =N9iR
 -----END PGP SIGNATURE-----

Merge tag 'audit-pr-20261016' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit

Pull audit updates from Paul Moore:

 - Fix the accounting of audit filter rule additions and removals

   Tracking audit filter rules is important as their presence can
   trigger additional processing. Unfortunately, the existing code did
   not properly track the removal of filter rules, resulting in some
   cases where additional processing was done when none was required.

   This not only corrects the accounting problems, but also provides a
   cleaner API for tracking audit filter rule additions and removals.

 - Add a FSOPEN record to log the filesystem name in the new mount API

   Close a long standing audit blindspot by capturing the filesystem
   name, e.g. "tmpfs", when calling fsopen().

 - Split audit's storage of process and file capabilities

   Instead of a single structure that stores all possible capability
   information, create a dedicated audit file capabilities struct and
   convert the existing audit capabilities struct into a process
   capabilities struct. This saves 80 bytes from the per-task
   audit_context on 64-bit systems.

 - Ensure that the PROCTITLE record is reset on exec()

   This fixes a problem where systemd would set a temporary PROCTITLE
   string after forking a child process before calling exec(),
   effectively locking the PROCTITLE string to the temporary value. This
   pull request resets the PROCTITLE state on exec() so that newly
   executed processes can set their PROCTITLE correctly.

 - Add some missing unlikely() annotations to the audit wrapper
   functions

 - Clean up the audit netlink multicast skb length adjustment

* tag 'audit-pr-20261016' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
  audit: add FSOPEN record to log filesystem name
  audit: separate file and process capability storage
  audit: Fix filter rule accounting after automatic removal
  audit: use copied skb length in kauditd_send_multicast_skb()
  audit: add missing unlikely hint to audit_dummy_context() wrappers
  audit: free proctitle in context so it can be re-set by fork on exec_binprm
2026-10-20 19:35:13 -10:00
Linus Torvalds
2c455ddca7 smb client: fix mis-merge with fileattr_set taking a const idmap
The danger of doing the merge window while on vacation and traveling
with just the laptop: I only do full builds a couple of times a day
because they are so slow on my poor little laptop.

As a result, I missed the conflict between the newly added smb client
fileattr_set function (commit 273913b7c33a: "smb: client: implement
fileattr_set for compression flags") and the vfs layer having in the
meantime made the idmap argument 'const' (commit 025756ee7b47: "fs: port
mnt_idmap() and file_mnt_idmap() to const mnt_idmap")

Mea culpa.

Fixes: 32543b0968 ("Merge tag 'cifs-for-7.4' of https://git.manguebit.org/linux")
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 18:27:33 -10:00
Linus Torvalds
72a16bcff2 dlm for 7.4
This set contains several fixes for bugs found by static analysis,
 fuzzing and code review. They mostly involve invalid input, e.g. from
 userspace, configfs or remote nodes, and are unlikely to be seen in
 normal usage.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEcGkeEvkvjdvlR90nOBtzx/yAaaoFAmrWeDEACgkQOBtzx/yA
 aaqDxg//SpV2Cq5j1Q0z7RRpCmvCIZ01rtW0SC9qWUwkIixZ5M66100Hsdn1ZUs6
 fPrtxaHqcxZbVbgpNkQP0Uh10+qVAhZoK6xZQEu5+FzckmK/HoIC2KUV+E8mE09z
 JFXq6+fAo9mgHVYUs3waO7+ZihMhHoQGlK7ST6dAE6gkyafDvNki3EMuZcYOMiSN
 envA1O9T/opxe+HmdzSubR2rG9wjIvunh4nO5x6UXFs1lfGPxvMem0gld/LtZejT
 iDpoRWLxwSmOQmS9w6zk3OoYL+y62Oqdouddbrr4WzitZlRbn8hexktVPk5kmMvE
 meO9BnfeAiw27W9JkeMkQF0I7S6mIB8fRWKmhtal1uuBqHQOy4vaOTSEFqyBNyVs
 78szbMEJQH7P18vQaFLuizIXye7Tm4bnWBcabr3tPsYfcvVWLAT9vJdmEIYvdsa5
 gT2DLXiHuHKX5+fy+mLYG+gJU2CQSF2Ax14coLXvsQAfrpwdgL9vgVho0NQo013t
 JRX22cs+FQHTimq7MOntSOo8bmfwJEOoArx8QuwXGM+19prTNcPbnI08wq1+kpyc
 fVm2ON/AUtkM9tZuqXnQ7tswAvjCBsq471tt1Yx8BQAFrLQ1dE/QTDBE53mUli7A
 xZq93VOpKh7tAj/W2WGzlQxIRtTy8Fme2eIbIRZHt8rHDE3QAJY=
 =ff98
 -----END PGP SIGNATURE-----

Merge tag 'dlm-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm

Pull dlm updates from David Teigland:
 "This contains several fixes for bugs found by static analysis, fuzzing
  and code review. They mostly involve invalid input, e.g. from
  userspace, configfs or remote nodes, and are unlikely to be seen in
  normal usage"

* tag 'dlm-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
  dlm: fix typos in comments
  dlm: clean up a type in waiters_read()
  dlm: validate node weights before building member array
  dlm: wait for outstanding SRCU callbacks to complete in exit paths
  dlm: fix variable key length lookup
  dlm: fix NULL pointer dereference in dlm_dump_rsb_name()
  dlm: validate lock modes in recovery messages
  dlm: fix buffer overflow from negative len in dlm_search_rsb_tree
  dlm: validate userspace lock resource name length
  dlm: require CAP_SYS_ADMIN for dlm-monitor device
  dlm: gate dlm_plock device on CAP_SYS_ADMIN
2026-10-20 16:53:30 -10:00
Linus Torvalds
7b9498b770 Changes since last update:
- Support superblock sharing for file-backed mounts
 
  - Use iomap for file-backed mounts on unencoded inodes
 
  - Minor fixes and cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEQ0A6bDUS9Y+83NPFUXZn5Zlu5qoFAmrWdhYRHHhpYW5nQGtl
 cm5lbC5vcmcACgkQUXZn5Zlu5qpJvxAAn7oJAErabhp9JXN9JvGPWgCUp6jBkkYx
 TEzGmKkYyd507MuF99HAmIoisMHgAUbTHpzu4n4et4r3larvXaSi4l7BTnAX3bZh
 ykFiN2HJI/uDEaGxXd14SgiSA4eRutSNacQV0c3NnrQnZHhF7zAYsqPqrMw6DbzP
 k0FZ7d0XapgyfVCO7oIrS8ac9rng/F1PCS4EkK2kg3Aq5/yN78LUmisVaFitE4ie
 cuqg59dhBfskdc+brdWjHYG/Z9UPtjLMtIMA2F1jkibgv0btAVnCNgMPc6qe/c3s
 ww1top3sZNB5FdYOuzb29D2AGtxMMsdwiCKGE5EtmdiZLakmz1wAr4BQJpGunwJV
 ZMzzOFi2p38k0hPFKNMAqEvqzw4BXwlmyF8aAZ2H2/vf9ZxuZSa6xxlXW3omwSOq
 5zo2jc9cngYenyG/IixpVGJeqw5wg/1ChK4VgB/ZOi5Lq0u1avfSIsUZMyAbeaqB
 /q4Hho0nzPF/jvU+xe5mxFTjzXlnnDgPA0qMCuj/FqiaLHJRZ3nK4zIYv5Glpae0
 nIJCm9rzzBc4z8ICJAe3R9dsHQjoMjrYTu0UIuUEX084N7BvVVwyDXtwFzHKRe4d
 rXzYJGFNGXSNZtaD1o3QLNiLcAqiJOy192Qn3NipM61pw1L1KyzNeJM6xOxtvRAC
 f3imbka9DpY=
 =qn9S
 -----END PGP SIGNATURE-----

Merge tag 'erofs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs

Pull erofs updates from Gao Xiang:
 "The most notable change is to support superblock sharing for
  composefs, thanks to Giuseppe again.

  Another one switches to iomap for file-backed mounts on unencoded
  inodes, which enables efficient sub-folio I/Os. The others are all
  random ones.

  Summary:
   - Support superblock sharing for file-backed mounts
   - Use iomap for file-backed mounts on unencoded inodes
   - Minor fixes and cleanups"

* tag 'erofs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
  erofs: enable iomap for file-backed mounts on unencoded inodes
  erofs: use on-disk blkszbits for lz4 max pcluster bound
  mailmap: update entry for Gao Xiang
  MAINTAINERS: erofs: update my email address
  erofs: reuse superblock for file-backed mounts
  MAINTAINERS: erofs: add dev branch to git tree entry
  erofs: fix xattrs handling when metadata compression is used
2026-10-20 16:50:37 -10:00
Linus Torvalds
75663f575f xfs: new code for v7.4
Signed-off-by: Carlos Maiolino <cem@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iJUEABMJAB0WIQSmtYVZ/MfVMGUq1GNcsMJ8RxYuYwUCatYYZgAKCRBcsMJ8RxYu
 YyDCAYCCsaYcjnq+kYIgxiIU+IkIjB4oOZw+Og6kfxslEGGhUO3UBGAC2YlRHnEF
 3Z/9QzQBf3KnpcIHdKKA9rxTkjVwoUhSNiIMUmAj0BZPrn8zynZAkpCp5/ncae5f
 C+HGf2fcGQ==
 =uZ+D
 -----END PGP SIGNATURE-----

Merge tag 'xfs-merge-7.4' of git://git.kernel.org:/pub/scm/fs/xfs/xfs-linux

Pull xfs updates from Carlos Maiolino:
 "The bulk of this are bug fixes, cleanups and code refactoring, lots of
  them. Majority of those bug fixes are targeting scrub and online
  repair code. There are no real new features here but lots of prep code
  for future work. There are also some small performance optimizations
  but nothing major"

* tag 'xfs-merge-7.4' of git://git.kernel.org:/pub/scm/fs/xfs/xfs-linux: (168 commits)
  xfs: don't limit software atomic writes by the group alignment
  xfs: add missing cursor stat checks after xfs_btree_delete
  xfs: add missing cursor status check after xfs_inobt_get_rec
  xfs: handle NULL open_zone for merged ioends in xfs_end_ioend_write_zoned
  xfs: refactor inode forkoff to byte conversions
  xfs: drop unnecessary sr parameter from xchk_rtgroup init functions
  xfs: drop unnecessary sa parameter from xchk_ag init functions
  xfs: drop unnecessary sr parameter from xrep_rtgroup init functions
  xfs: drop unnecessary sa parameter from the xrep_ag init functions
  xfs: improve dirent bounds checking in scrub and repair
  xfs: refactor directory data block walking loops in scrub
  xfs: update quota flags on secondary supers when metadir enabled
  xfs: don't try to repair rtsummary if the summary file isn't computed
  xfs: rescan the AGs if incore delalloc counter is negative
  xfs: don't rescan ifree and icount when frozen
  xfs: don't set a metadata directory's parent to sb_rootino
  xfs: don't scan across metadata/regular directory trees for dirents
  xfs: always report scrub errors in tracepoints
  xfs: opportunistically skip btree block checks
  xfs: clear set[ug]id mode bits when zapping attr fork
  ...
2026-10-20 16:46:38 -10:00
Linus Torvalds
910a00830b gfs2 changes
- Two journaled data inode fixes (fix journaled truncate range end
   offset, fix the escaped block copy in gfs2_before_commit).
 
 - When reading a new resource group from disk, validate its boundaries.
 
 - To eliminate lock contention, get rid of the per-filesystem
   sd_async_glock_wait queue and wait for the individual glock locking
   events instead.
 
 - Shut up sparse RCU warnings by marking ip->i_gl as __rcu.  Accessing
   it through gfs2_inode_glock() -> rcu_dereference_protected() where we
   know that the pointer cannot change.
 
 - Some more minor fixes and cleanups.
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEJZs3krPW0xkhLMTc1b+f6wMTZToFAmrWHXQUHGFncnVlbmJh
 QHJlZGhhdC5jb20ACgkQ1b+f6wMTZTq9/A//ZEmHg2lK5sJA+puUB/JBNiQawYDp
 U6p5kQOypiqtXyOe+FsqHZgM4qavMVyq+4UdcYSe7UAqXbelIqgp+eDWbw32b5/G
 l+U0Vj2/FLlgZiPoND53YxA2YPrbCnIWrz0PfQH4yQBbdRx5HC1qqk9iDvwgyWnz
 /JWGMCHZ+5W4oqkBYm1TAGLOG7+OduBY6Az9FoOmPzVljusmw/MmdZ566baPecic
 X/H1V9M+6hU14nWozdv4hPiltdIYyXx1B52pNxMs+2ff5VwmfVNSlp8qRCq21rJW
 78CvpRTqITWEWmp+em4yul7HnJ+teSIyYoObSLSFnQOZo4kbCd9mjFxOijA137mz
 Hn3CiXqSv4U6KTgBRmi8NSYq3v/vk8OG56MMxGFGCkU4Mt2wPlTgoJv8DsWB4TK+
 raPipnthKSwyBO1bQRq+UiDH8y0sjWQg0wbVHIV0eOjhesCauqHs0ooEhXtnjqqA
 /VEXaIaPcepzm/5TEwbZdtAOpIJMv3rtAiERRZCRzWZhz8ixHVys+U5tVf6bgAFB
 6TGnwGwySZs62s5zPAzE0frATg2y+fkJwRVtGSPjMacRRrTQeepCFa8JXsSX3Leb
 mIEETCD65h7mDDxLTpcYzygbS7UssWmucbb7k53uxjS+LZchGZHU23lIP5DQMKMw
 FmPPzWY3QXd5xAE=
 =uunh
 -----END PGP SIGNATURE-----

Merge tag 'gfs2-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2

Pull gfs2 updates from Andreas Gruenbacher:

 - Two journaled data inode fixes (fix journaled truncate range end
   offset, fix the escaped block copy in gfs2_before_commit)

 - When reading a new resource group from disk, validate its boundaries

 - To eliminate lock contention, get rid of the per-filesystem
   sd_async_glock_wait queue and wait for the individual glock locking
   events instead

 - Shut up sparse RCU warnings by marking ip->i_gl as __rcu. Accessing
   it through gfs2_inode_glock() -> rcu_dereference_protected() where we
   know that the pointer cannot change

 - Some more minor fixes and cleanups

* tag 'gfs2-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
  gfs2: remove unnecessary check in gfs2_freeze_lock_shared
  gfs2: fix the escaped block copy in gfs2_before_commit()
  gfs2: gfs2_create_inode excl cleanup
  gfs2: Fix the return value in gfs2_get_link() kernel-doc
  gfs2: fix NULL deref in gfs2_quota_lock() for meta inodes
  gfs2: fix typos in comments
  gfs2: Fix journaled truncate range end offset
  gfs2: missing whitespace in error message
  gfs2: Get rid of sd_async_glock_wait
  gfs2: reject invalid inode sizes
  gfs2: No quotas for meta inodes
  gfs2: move brelse() after buffer head accesses
  gfs2: Improve resource group validation and error handling
  gfs2: Silence sparse signedness warning
  gfs2: annotate i_gl with __rcu
  gfs2: Introduce gfs2_inode_glock
  gfs2: Add inode variables
  gfs2: Get to super block from inode in tracepoints
  gfs2: Avoid ip->i_gl dereferences in gfs2_inode_lookup and gfs2_create_inode
2026-10-20 16:42:50 -10:00
Linus Torvalds
744e5400b3 \n
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEq1nRK9aeMoq1VSgcnJ2qBz9kQNkFAmrWCkcACgkQnJ2qBz9k
 QNmHVAgApIXB6tQv9reUKKQ72A90JMdNEUwTM5OYdUptIK09tk7nDPsQ/DOQu5Lf
 VWnFFxD3lZyHQ5grxm/2YRC89O/v5ovqm7Yo6MX6s5m5brMtlolGsY0tkLqchMC7
 7wKMA54oWj5BzbzouyRhCUoWRAhrVlGlY4DnXxzbFpWXwj9hgtJvz+sNL7OouMk2
 NKfExFcDtqdi7WDgX//It65HYN3yHtCg7J08dLIaWCny8OZjUOPKjPEGSeqS6vXt
 mLb9W7Ayhkj2ySDfnaz9kMAp5zbcRCymiYm1WG+QmXszV71R3GAPpZSCSqD5SzaT
 Ud1YAaeNjtTL3D2hfxpsNs/nmuCjkA==
 =XcXn
 -----END PGP SIGNATURE-----

Merge tag 'fs_for_v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull ext2, isofs, udf and quota updates from Jan Kara:

 - ext2 changes to support clang context tracking

 - multiple isofs hardenings and cleanups

 - several udf hardening fixes

 - block use of fs-specific quota formats with incorrect filesystem

* tag 'fs_for_v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (26 commits)
  udf: fix return value for non-recorded-allocated extents in udf_map_block()
  isofs: shrink the name conversion buffer
  isofs: pass the name buffer size to get_rock_ridge_filename()
  isofs: report the Joliet name length in statfs
  isofs: return long Joliet names whole
  isofs: Simplify isofs_read_level3_size()
  isofs: bound empty directory blocks in isofs_read_level3_size()
  quota: fix shrinker scan budget accounting in dqcache_shrink_scan()
  ext2: drain in-flight DIO before buffered write fallback
  isofs: validate directory records in isofs_read_level3_size()
  once_lite: Simplify condition handling and fix context analysis
  isofs: convert the zisofs read path to use folios
  isofs: fix Rock Ridge CE extent validation on multisession media
  shmem: Refuse to enable tmpfs format for another filesystem
  ocfs2: Refuse to enable ocfs2 format for another filesystem
  ext2: enable context analysis support for ext2 filesystem
  ext2: annotate s_rsv_window_root as requiring s_rsv_window_lock
  ext2: annotate block-mapping helpers as requiring truncate_mutex
  ext2: annotate ext2_init_block_alloc_info() as requiring truncate_mutex
  ext2: mark s_mount_state as guarded by s_lock
  ...
2026-10-20 16:30:13 -10:00
Linus Torvalds
fefd797c41 \n
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEq1nRK9aeMoq1VSgcnJ2qBz9kQNkFAmrWCYEACgkQnJ2qBz9k
 QNlEugf/cDtCZNRFtq8Ex9tU+Dfqy6A1HWcqntFtcFLNeze+H4YihiKdkwT4xhWG
 7RMl5lXnjhXEXzxoj2LmTupKMo2OpW1waHa+01I/mA2Rfy7wF6b/VDOHzVF8avQP
 sGB4F5kQn9cWCNZA7gJpNu5uA8jVjuiApm9dbTU0CCXwDOPhe16HvnPCfH0JEI63
 qWAq+NIY1m/tyYj3WPa+ZucdveR1FFKh9wfWAOccmP5lwGVhz4OPCLRjRPDgMdfT
 S9EIXlc+O7SLb5++oDghRAmZ/F5lQm+Y0HJsMMA70shau66zGTvZnqzfWJYeOWKd
 R3oUk51OSYZxD/xHI6VWlYMQ5pkFpQ==
 =WA/p
 -----END PGP SIGNATURE-----

Merge tag 'fsnotify_for_v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull fsnotify updates from Jan Kara:
 "A couple of smaller changes for fsnotify"

* tag 'fsnotify_for_v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  fanotify: report names longer than NAME_MAX
  fanotify: Re-add Matt Bobrowski as a reviewer
  fsnotify: fix typo "anonynous" in comment
2026-10-20 16:28:33 -10:00
Linus Torvalds
d4d9eb226e configfs: Updates for v7.4
- Attribute structures can now be const. From Thomas Weißschuh.
 
 - The first selftests for the configfs userspace interface, plus a
   sample subsystem that accepts symlinks to test against. They include
   a race of symlink(2) against rmdir of the target, which exercises
   the use-after-free fixed in v7.3-rc3.
 
 - Rust bindings, merged from Andreas Hindborg's signed tag: fix the
   data offset calculation in subsystem callbacks (marked for stable),
   add the missing Send and Sync bounds, and correct a safety comment.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEErIU5puj0ZwLKSkObNaOTn/x4d20FAmrST7cACgkQNaOTn/x4
 d233CRAAjY+Fnel08/53gzSZ8ArV30k7QV+sbedfq3TvNizkR8WcXd3z/XbcAMaA
 AevQdFcL10Wii6SqZ+mD+zkosbEhfE1w0CZ7ol7jNNdot9LPHE5Ih1T0nHSWKp8n
 ev7OZtGW+UQz7nyaDfzX8ycGlrimb3Rk4S34uP0WqGnftToA3qAnKfmVjF2T4jf2
 QtiP81vp33blKGVF/YbjS4LXzrth2/j1KdlIi0EfIZQPjB/XAYVvjm/8eyEdTquc
 hRCaHUhTtxXNuS6TZBmBpa5UKlgHCZP1vODm/mWp4Cp45lx+YQ+F5ns2OWKbNSEN
 8yx0vV1/oXRdsP9J4WYd4JwOjlhOFBCcP/WkNMr5TWhPw8bjNA2ye61t9Hy0LXSy
 yLJkygB57wuS9X2bIhw5ZJgfsANW4Pj5o2qCtZV68hW1NTClowklK1yE1/Hn1J8E
 kD5gTrT2KL9qqVP6FjYpwkynqfqHeYdy1TlltVvCdnXHY5Jys0ddEBeTaVGVxKuk
 ooqad/W7Q1HoetKVD6Ya6VbV5vSQs7gTX/BmMZLrGipNQQcYNPN3qZMs37K0c4eT
 wYUdlA2ChWF+kcQd0smMl6Ag3fJ9D3MIK/ADAZe1XjgodrSbph5KRLOsLptY1bBU
 bwmdYWtVsOyX0hkI6SdP96GuU30+t/6op9sffkxc74pgYTgoBuc=
 =OmD0
 -----END PGP SIGNATURE-----

Merge tag 'configfs-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/leitao/linux

Pull configfs updates from Breno Leitao:

 - Attribute structures can now be const (Thomas Weißschuh)

 - The first selftests for the configfs userspace interface, plus a
   sample subsystem that accepts symlinks to test against. They include
   a race of symlink(2) against rmdir of the target, which exercises the
   use-after-free fixed in v7.3-rc3.

 - Rust bindings, merged from Andreas Hindborg's signed tag: fix the
   data offset calculation in subsystem callbacks (marked for stable),
   add the missing Send and Sync bounds, and correct a safety comment.

* tag 'configfs-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/leitao/linux:
  samples: configfs: constify the configfs_attribute structures
  configfs: Allow the registration of const struct configfs_attribute
  configfs: Constify configfs_bin_attribute
  configfs: Treat attribute structures as const internally
  configfs: Constify is_visible/is_visible_bin in configfs_group_operations
  rust: configfs: remove mutability from some field initializers
  selftests/configfs: race symlink against rmdir of the target
  selftests/configfs: cover symlink and unlink
  samples/configfs: add a subsystem that accepts symlinks
  selftests/configfs: add tests for the userspace interface
  rust: configfs: fix data offset calculation for subsystem callbacks
  rust: configfs: require thread-safe callback data
  rust: configfs: fix release safety documentation
2026-10-20 16:25:43 -10:00
Linus Torvalds
32543b0968 - Implement ->fileattr_set so chattr(1) compression changes (chattr +c/-c)
go through the generic VFS fileattr path and its permission and
    serialization checks instead of the raw FS_IOC_SETFLAGS fallback and
    remove the now-unreachable file flags ioctl handlers
 
  - Require stable pages when the connection is signed or SMB compression is
    enabled, so a buffered write can no longer modify a folio that is still in
    flight and corrupt its signature (surfaced as -EIO) or, with compression,
    silently corrupt the data stored on the server
 
  - Stop breaking a file's just-granted lease while probing it for a
    Minshall+French symlink, by reusing an already open handle or opening with
    the inode's lease key
 
  - Fix several out-of-bounds reads and use-after-free bug in SMB1
 
  - Fix an use-after-free bug in cifs_ses_add_channel()
 
  - Fix a NULL pointer dereference in the demultiplex thread when an encrypted
    read response matches no outstanding request and reclaim the credits
    granted on such responses to avoid starving the connection of credits
 
  - Fail sends fast when the connection needs to reconnect
 
  - Drop the redundant nls_table argument threaded through the session setup,
    tree connect and path-based call paths, allocate the session setup state
    on the stack and remove the internal CIFS version number along with a
    batch of write-only fields and commented-out code
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTcqRusfSdYROJQwGkpVtNKoQNdYwUCatK1agAKCRApVtNKoQNd
 Y/FwAQDau9Sqjpvi+QC4zYlzFj2WOkrqnHJhEFa2Tel8/VA9lgD9EORPujWKd1d4
 BO0sbFjv7wnc5sFN60AdUIUL1fOJKAM=
 =i2jV
 -----END PGP SIGNATURE-----

Merge tag 'cifs-for-7.4' of https://git.manguebit.org/linux

Pull smb client updates from Paulo Alcantara:

 - Implement ->fileattr_set so chattr(1) compression changes (chattr
   +c/-c) go through the generic VFS fileattr path and its permission
   and serialization checks instead of the raw FS_IOC_SETFLAGS fallback
   and remove the now-unreachable file flags ioctl handlers

 - Require stable pages when the connection is signed or SMB compression
   is enabled, so a buffered write can no longer modify a folio that is
   still in flight and corrupt its signature (surfaced as -EIO) or, with
   compression, silently corrupt the data stored on the server

 - Stop breaking a file's just-granted lease while probing it for a
   Minshall+French symlink, by reusing an already open handle or opening
   with the inode's lease key

 - Fix several out-of-bounds reads and use-after-free bug in SMB1

 - Fix an use-after-free bug in cifs_ses_add_channel()

 - Fix a NULL pointer dereference in the demultiplex thread when an
   encrypted read response matches no outstanding request and reclaim
   the credits granted on such responses to avoid starving the
   connection of credits

 - Fail sends fast when the connection needs to reconnect

 - Drop the redundant nls_table argument threaded through the session
   setup, tree connect and path-based call paths, allocate the session
   setup state on the stack and remove the internal CIFS version number
   along with a batch of write-only fields and commented-out code

* tag 'cifs-for-7.4' of https://git.manguebit.org/linux: (61 commits)
  smb: client: reclaim credits for decrypted reads with no matching mid
  smb: client: do not pass a NULL buf to is_oplock_break()
  smb: client: require stable pages for SMB compression
  smb: client: allocate struct SMB2_sess_data on the stack
  smb: client: allocate struct sess_data on the stack
  smb: client: drop redundant nls_table arg from CIFSSMBRenameOpenFile()
  smb: client: drop redundant nls_table arg from SMBLegacyOpen()
  smb: client: drop redundant nls_table arg from CIFSPOSIXCreate()
  smb: client: drop redundant nls_table arg from CIFSPOSIXDelFile()
  smb: client: drop redundant nls_table arg from ->tree_connect()
  smb: client: drop redundant nls_table arg from cifs_setup_session()
  smb: client: drop redundant nls_table arg from ->sess_setup()
  smb: client: drop unused nls_table arg from decode_ascii_ssetup()
  smb: client: drop redundant nls_table arg from decode_unicode_ssetup()
  smb: client: drop unused nls_table arg from ascii_ssetup_strings()
  smb: client: drop redundant nls_table arg from unicode_ssetup_strings()
  smb: client: drop unused nls_table arg from ascii_domain_string()
  smb: client: drop redundant nls_table arg from unicode_domain_string()
  smb: client: drop unused nls_table arg from ascii_oslm_strings()
  smb: client: drop redundant nls_table arg from build_ntlmssp_auth_blob()
  ...
2026-10-20 16:16:00 -10:00
Linus Torvalds
dd7b15aeac hfs/hfsplus updates for v7.4
- hfs: handle extent B-tree write errors
 - hfsplus: add KUnit coverage for canonical reordering and legacy fixups
 - hfsplus: canonicalize decomposed catalog names like fsck_hfs expects
 - hfsplus: add Unicode combining-class and legacy decomposition data
 - hfs/hfsplus: serialize B-tree close against folio release
 - hfs: return -EPERM for unsupported setattr changes
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQT4wVoLCG92poNnMFAhI4xTh21NnQUCatKcPQAKCRAhI4xTh21N
 neWQAP0eW63MZp/7GJL/yLOHfxQYGGCf90rqOhYqzlbvXiK5VgEAznpnjbP1hy3x
 SIAEJ/1kn8uPaQWYqOPwgkNrBtqgPAk=
 =ovZs
 -----END PGP SIGNATURE-----

Merge tag 'hfs-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/hfs

Pull hfs/hfsplus updates from Viacheslav Dubeyko:
 "Fix {hfs,hfsplus}_btree_close() (Bruno Produit):
   - B-tree nodes with a zero reference count remain in the node hash
     until folio reclaim or tree teardown frees them. The folio release
     callbacks remove nodes while holding hash_lock, but
     hfs_btree_close() walks and frees the same hash without that lock.
     Reclaim can therefore unhash and free a node after close has loaded
     its pointer, causing a use-after-free or double-free. Detach each
     node with hfs_bnode_unhash() while holding hash_lock before
     inspecting and freeing it. Drop the lock before hfs_bnode_free() so
     a large tree is not freed while holding a spinlock.

  Fix hfs_inode_setattr() and hfs_brec_insert() (Davy Felipe):
   - hfs_inode_setattr() rejects unsupported UID, GID and mode changes,
     but returns the value stored in error when the filesystem is not
     mounted with the quiet option. At this point error is zero, as
     execution has already passed a successful setattr_prepare() call.
     As a result, unsupported attribute changes are incorrectly reported
     to userspace as successful even though the inode remains unchanged.
     Return -EPERM for these operations while preserving the existing
     behavior for quiet mounts.
   - hfs_brec_insert() may fail while inserting a new extent record, but
     __hfs_ext_write_extent() currently ignores its return value and
     clears HFS_FLG_EXT_DIRTY and HFS_FLG_EXT_NEW as if the insertion
     had succeeded. Use a reusable B-tree node range helper that takes
     the find data and the expected record size. The helper validates
     the bnode and tree pointers, entry offset and entry length, and
     ensures that the write range fits within the node.

  Fix failure in xfstests generic/339 (Viacheslav Dubeyko):
   - The test left an HFS+ volume corrupted and, as a result,
     fsck.hfsplus reported a long run of "Illegal name". The root cause
     is that fs/hfsplus/unicode.c's decomposition table (Apple Technote
     #1150) decomposes each source character entirely on its own and
     never does anything further with the result. Real fsck_hfs has
     carried a permanent "FixDecomps" fixup in CatalogCheck.c for
     exactly what that leaves unhandled. The fix makes hfsplus store,
     hash and compare names the same way current macOS does"

* tag 'hfs-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/hfs:
  hfs: handle extent B-tree write errors
  hfsplus: add KUnit coverage for canonical reordering and legacy fixups
  hfsplus: canonicalize decomposed catalog names like fsck_hfs expects
  hfsplus: add Unicode combining-class and legacy decomposition data
  hfs/hfsplus: serialize B-tree close against folio release
  hfs: return -EPERM for unsupported setattr changes
2026-10-20 16:06:21 -10:00
Linus Torvalds
d28fb91dd8 nilfs2 updates for v7.4
- nilfs2: validate directory position after llseek in readdir
 - nilfs2: reject non-regular inodes in dsync recovery
 - nilfs2: fix link count underflow when removing corrupted directory
 - nilfs2: simplify nilfs_mdt_writeback()
 - nilfs2: ignore non-fatal signals during synchronous log write wait
 - nilfs2: clear dirty flag on bdev buffers on log write failure
 - nilfs2: fix deadlock between nilfs_evict_inode() and find_inode()
 - nilfs2: fix checkpoint root lifetime on sysfs errors
 - nilfs2: switch O_DIRECT to iomap based operations
 - nilfs2: add iomap operations for direct I/O
 - nilfs2: validate file block counts during recovery
 - nilfs2: force clear dirty state when restoring from the shadow map
 - nilfs2: validate segment number in nilfs_sufile_get_suinfo()
 - nilfs2: fix typos in comments
 - nilfs2: remove '#if 0' code blocks
 - nilfs2: strengthen consistency checks in nilfs_direct_propagate()
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQT4wVoLCG92poNnMFAhI4xTh21NnQUCatKPawAKCRAhI4xTh21N
 nSaCAP4iCRMt3BFD5VKUw88HOroKAVJ9OwLFPYNyJS76Xh0ZFgD/Qw/jwdO+Ui1b
 tgxQ62Gc0V7gwpeASgTG5Wq2c6XDSgI=
 =5i44
 -----END PGP SIGNATURE-----

Merge tag 'nilfs2-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/nilfs2

Pull nilfs2 updates from Viacheslav Dubeyko:
 "Fix issues in nilfs_sufile_get_suinfo(), nilfs_scan_dsync_log(), and
  nilfs_find_or_create_root() (Aldo Ariel Panzardo):
   - If the requested segment number is greater than the total number of
     segments, the function may process segment numbers outside the
     filesystem.
   - nilfs_scan_dsync_log() trusts the block counts in each on-disk file
     information entry. If fi_ndatablk is greater than fi_nblocks, the
     data block loop can consume excessive summary entries and the later
     subtraction used to derive the number of node blocks underflows.
   - nilfs_find_or_create_root() links a new checkpoint root into the
     checkpoint tree and drops ns_cptree_lock before creating the root's
     sysfs group. If nilfs_sysfs_create_snapshot_group() then fails, the
     root is freed while it is still reachable from ns_cptree, so a
     concurrent nilfs_lookup_root() can dereference freed memory.

  Fix typos in comments, reported by scripts/checkpatch.pl using the
  misspelling list in scripts/spelling.txt (Hemanth Selam)

  Fix issues in nilfs_recover_dsync_blocks() and nilfs_readdir() (Jake
  Labelle):
   - During roll-forward recovery, nilfs_recover_dsync_blocks() obtains
     the inode designated by fi_ino of a dsync log without checking its
     type. Regular files, directories, and symlinks are the only inode
     types with data blocks to recover; reject anything else before
     touching its block mapping.
   - nilfs_readdir() uses ctx->pos, which userspace can set to an
     arbitrary value via llseek, as an offset into the directory folio
     and parses whatever bytes sit there as a directory entry. Snap
     unaligned positions onto a valid entry boundary by walking the
     rec_len chain from the chunk start before parsing.

  Fix issue in logic of clearing the dirty folios. When garbage
  collection fails, nilfs2 rolls the DAT metadata file's page cache back
  to a shadow copy taken before GC started. nilfs_clear_dirty_pages()
  drops the dirty state of the folios in the DAT cache, then
  nilfs_copy_back_pages() overwrites them with the saved contents and
  warns if one is still dirty. Add a force flag to
  nilfs_clear_dirty_pages() and nilfs_clear_folio_dirty() that skips the
  busy buffer check, and set it in the two calls from
  nilfs_mdt_restore_from_shadow_map() (Jiaming Zhang)

  Remove dead code and comment code sections in nilfs_new_inode(),
  nilfs_read_inode_common(), and nilfs_setup_super() (Joshua Crofts)

  Multiple fixes (Ryusuke Konishi):
   - While the recent out-of-bounds memory access issue in
     nilfs_direct_propagate() has already been fixed, adds extra checks
     to catch and gracefully handle similar potential bugs.
   - Fix syzbot reported deadlock between nilfs_evict_inode() and
     find_inode() by removing the synchronous log writer trigger from
     nilfs_evict_inode().
   - Fix an omitted clear of the dirty flag on backing device buffers,
     which could cause an abnormal buffer state and potential block
     overwriting data corruption.
   - Improve stability by preventing errors caused by user interrupts
     while waiting for log writes, which are triggered by synchronous
     write flags following operations such as rename().
   - Refactor the metadata file writeback callback function,
     restructuring an inefficient legacy function organization rooted in
     the era of aops->writepage() to align with aops->writepages().
   - Fix a link count underflow during rmdir on a directory with a
     corrupted link count (an issue recently reported by syzbot).

  Eliminate blockdev_direct_IO() from nilfs2 entirely. Add iomap.h
  with declaration of iomap operations and iomap.c with implementation
  of nilfs_iomap_begin(). The nilfs_direct_IO() and the .direct_IO
  callback on nilfs_aops are removed. The nilfs_file_read_iter()
  dispatches O_DIRECT reads to iomap_dio_rw() using nilfs_iomap_ops.
  Everything else still goes through generic_file_read_iter()
  (Viacheslav Dubeyko)"

* tag 'nilfs2-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/nilfs2:
  nilfs2: validate directory position after llseek in readdir
  nilfs2: reject non-regular inodes in dsync recovery
  nilfs2: fix link count underflow when removing corrupted directory
  nilfs2: simplify nilfs_mdt_writeback()
  nilfs2: ignore non-fatal signals during synchronous log write wait
  nilfs2: clear dirty flag on bdev buffers on log write failure
  nilfs2: fix deadlock between nilfs_evict_inode() and find_inode()
  nilfs2: fix checkpoint root lifetime on sysfs errors
  nilfs2: switch O_DIRECT to iomap based operations
  nilfs2: add iomap operations for direct I/O
  nilfs2: validate file block counts during recovery
  nilfs2: force clear dirty state when restoring from the shadow map
  nilfs2: validate segment number in nilfs_sufile_get_suinfo()
  nilfs2: fix typos in comments
  nilfs2: remove '#if 0' code blocks
  nilfs2: strengthen consistency checks in nilfs_direct_propagate()
2026-10-20 15:59:26 -10:00
Linus Torvalds
2f31dddb24 affs-for-7.4
-----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCgA5FiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmrRFCgbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyAAoJEMVl1fnXbVg75MIP/3rnYEI6OONRlH2liKv+
 Mpy4eF4tuBa/YWSDQgFyyWS3xG7ASdD7iod+nVkdXsbNY4pEkIE3bMNQa4ppT0kO
 R/GPec8iCZKcXraJcg2St0oJChNISKOGsexTMCUxdPayQ85kNJj2y+3FElKzzj2Q
 u2yPcJTPoT/l20eolpjDIByRi/lXzqWZWgIV0txIxxrwb68nL58/p6L/fqwZDAxs
 HOm7ByMEeAisJPo56T0JiS0U3Rqir8JrfxY5oRWZ+1NT/cYgLbdlWZWOTatsgLoX
 ckX5DtvjIRxPY/XQ3ybthtLVpEVHiQtUO4dLfUqAlFA2J5z4yB6JIO7EavE8e+VT
 fGy/1M7vKzDCdfOiqw8p6BO8mBMBJPC3cRIJVOGvPt6qvHnL0OeA3GngcQ3mWZUQ
 6XAlJCkuy25Z3h5wVeOxOJZSD8aTENNMUjNabz6fzUj9lZN4k0/Fgazsslij5gG5
 XX0SxhjP7z+8tpSd4gu5Ykba+NbmbKmM1cjmSGMGwPVPOrhiooD+qoMswHhsI5DQ
 QkFD4uMYeabG6SYI8Suqh27La7dH3zKxta55wHOSXmfIUsgEehp2Hv3Rjqm3bKH7
 7yRfskKS07sED7C4wcKJIARXrN6N7t4B1gG2eou49+Ygzl9SLopHtO3DNJG79D//
 yrZ0x9B6UK843NVnXS5mNBbe
 =2tKu
 -----END PGP SIGNATURE-----

Merge tag 'affs-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull affs updates from David Sterba:
 "AFFS has attracted the AI security scanners but there's probably
  little real impact.

  A few fixes, more will come in the future, but it's low priority"

* tag 'affs-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  affs: validate blocks before freeing them
  affs: split hash-lock subclass and reject self-referencing dir entry
  affs: don't instantiate dentry if affs_insert_hash failed
2026-10-20 15:56:04 -10:00
Linus Torvalds
1b8fc3d89e for-7.4-tag
-----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCgA5FiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmrNWGwbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyAAoJEMVl1fnXbVg7JOUQAKZnd2mfpYDwhs9eSsCC
 TX1yUX0k94cIjpNXL5i4ov5Dg2bjfZmKpC89Tg+ApCq4kLCN51DgZ3AsBFPY8Wz5
 ozSj+C2TTVenCXyv+ZcS6ZLL0vH67y9AzSqnsmXKLjcJIFxtkeY1f5FNXWKnrLNU
 CCjvxCqvSOellMoGz95qFk1VXgKIlZlO+JvJ0WgRydvA73woLbQ8o0GSfpGn99Fr
 4Kn6Lb7iun5VlEWy+WqD9mkAbau2jCpdxQwbPKNCVMYsNBfCfxF0GihP83If1dFm
 0Hr18AaRjnB2/HkQ1Tpbv6Icfp/72qAVgBAJ1kT6GU6o8zq6Y7sl3to2fwOf2E9u
 j3mU2w5baqNjMaTQQO3Igwlk4FtvaU7ooDQeeM9c70mGVfKExRkv+uKCJomxixPK
 Kxz+faWFYbjlcpEpHj8DYcw+oRlbmMJ9KnUMjOQylHO/O1akJHSPDL2HmrBiffAr
 V2qJPE/g0U3v+lXZgsZ97FJDW8qbOoyAboWz50lzFIG8h4+KZ3E0Qt1C0b4Y2iXc
 x8bR6R08Ux49mwXcs0xFM97EUowafit1F5vvNgvLx4imTahZxCUt3LOukEjYdYiM
 EtfUkYAQAwNMw0jjoSreN5LuTx/loK+gQS1pY1jv7sd1n4MPBDm4/QpstX7AXmf2
 vM9hp2DMDG3BWMj7fIDHrUdm
 =feKA
 -----END PGP SIGNATURE-----

Merge tag 'for-7.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull btrfs updates from David Sterba:
 "User visible changes:

   - remove tweakable sysfs way to enable features, used only for
     extent-irefs which has been default since 3.12; the sysfs interface
     makes it complicated due to locking and context, unlike ioctl

   - change which backup superblock does mount option
     'rescue=usebackuproot' choose, skip the last one due to rotation,
     for more fine grained control add options selecting a specific
     backup superblock by index (usebackuproot_N)

  Notable fixes:

   - syslog message fixup of error state description, duplicate 'E'
     renamed to 'H' (emergency shutdown), added 'I 'when delayed iputs
     are blocked

   - use kvmalloc for b-tree buffer allocations, as we're using more
     contig ranges because of large folios, the allocations started to
     warn on fragmented memory

   - handle unknown commands for the /dev/btrfs-control ioctls

   - tune timing of transaction commit when the space is getting low

   - in raid56, skip verifications if data checksums are not available

  Performance improvements:

   - reflink speedup, reorder locking and flushing to optimize for more
     common cases where the reflinked ranges are accessed, avoid
     unnecessary contention

   - minor speedup in zstd decompression (+8MB/s)

   - reduced contention of inode extent map lock, improves e.g. when
     shrinker processes inodes without extent maps, measured time
     reduction 10-20%

  Core changes:

   - move allocation errors out of some contexts (new
     inode/dentry/rename) to avoid transaction aborts

   - allocate system new chunks earlier, e.g. when consumed by
     fallocate, and tune deleting unused block groups if the system
     space is low

   - tree checker: reject extents for special files

   - many qgroup fixes regarding enabling/disabling, other state changes
     and qgroup relation updates

   - error handling fixes

   - refactoring, cleanups:
      - page to folio cleanups
      - transaction state macros/enums simplification
      - parameter simplifications"

* tag 'for-7.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (92 commits)
  btrfs: fix use-after-free on quota enable allocation failure
  btrfs: prevent use-after-free in btrfs_transaction::switch_commits
  btrfs: return -ENOTTY for unknown ioctls on the control device
  btrfs: defrag: fix check to see if next extent can be defragged too
  btrfs: defrag: fix key comparison with max defrag key in btrfs_defrag_leaves()
  btrfs: use READ_ONCE() to read the chunk size from the data space_info
  btrfs: qgroup: make btrfs_record_squota_delta() return void
  btrfs: fix lost error return value in btrfs_alloc_logged_file_extent()
  btrfs: qgroup: fix off-by-one max level check in qgroup_trace_new_subtree_blocks()
  btrfs: abort transaction on qgroup failures in create_pending_snapshot()
  btrfs: qgroup: merge error labels in btrfs_quota_enable()
  btrfs: qgroup: fix leak of qgroups in rb tree after failure to enable quotas
  btrfs: qgroup: abort transaction on failure to add qgroup relation
  btrfs: qgroup: fix swapped blocks existence check when tracing after COW
  btrfs: introduce more accurate usebackuproot options
  btrfs: always use the second newest slot for rescue=usebackuproot
  btrfs: raid56: do not verify the content if there is no data checksum
  btrfs: qgroup: do not leak -ENOENT from btrfs_remove_qgroup()
  btrfs: qgroup: use qgroup_mark_inconsistent() in quick_update_accounting()
  btrfs: qgroup: do not treat "ret > 0" as error when deleting a qgroup
  ...
2026-10-20 15:53:24 -10:00
Linus Torvalds
9e73b189c8 fsverity updates for 7.4
Patches from Andrey Albershteyn to prepare for XFS fsverity support:
 
 - Report verification errors through fserror, instead of only through
   an unstructured log message and generic I/O error return
 
 - Move the reporting of STATX_ATTR_VERITY into the VFS, so that each
   fsverity-capable filesystem doesn't need to do it. This also fixes a
   bug where btrfs didn't return STATX_ATTR_VERITY in attributes_mask
 
 - Make the VFS prevent enabling DAX on fsverity files, so that it will
   be handled in a single place for ext4 and XFS
 
 - Move ext4 and f2fs's code to read verity metadata from the pagecache
   into shared code, so that XFS will be able to use it too
 
 - Export fsverity_ensure_verity_info() for XFS scrub to use
 
 - Pass all-zeroes hash to ->write_merkle_tree_block() so that XFS will
   be able to implement an optimization for sparse files
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCatTiyhQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOK4DyAQDQSnUjMgxPb8nD3zUHWxUhRpXraYOk
 L3+bqLSpBVK9pwD/duiu5sRJcvz0OAF5HKeouKVA0NjeJUpUzxVvuRbFig0=
 =Vbek
 -----END PGP SIGNATURE-----

Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux

Pull fsverity updates from Eric Biggers:
 "Patches from Andrey Albershteyn to prepare for XFS fsverity support:

   - Report verification errors through fserror, instead of only through
     an unstructured log message and generic I/O error return

   - Move the reporting of STATX_ATTR_VERITY into the VFS, so that each
     fsverity-capable filesystem doesn't need to do it. This also fixes
     a bug where btrfs didn't return STATX_ATTR_VERITY in
     attributes_mask

   - Make the VFS prevent enabling DAX on fsverity files, so that it
     will be handled in a single place for ext4 and XFS

   - Move ext4 and f2fs's code to read verity metadata from the
     pagecache into shared code, so that XFS will be able to use it too

   - Export fsverity_ensure_verity_info() for XFS scrub to use

   - Pass all-zeroes hash to ->write_merkle_tree_block() so that XFS
     will be able to implement an optimization for sparse files"

* tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
  fsverity: hoist statx reporting of fs-verity flag
  fsverity: don't allow setting DAX file attribute on fsverity files
  fsverity: hoist pagecache_read from f2fs/ext4 to fsverity
  fsverity: pass digest size and hash of the all-zeroes block to ->write
  fsverity: expose ensure_fsverity_info()
  fsverity: report validation errors through fserror to fsnotify
  MAINTAINERS: List the fsverity branches
2026-10-20 15:51:20 -10:00
Linus Torvalds
fe178c26ca fscrypt updates for 7.4
A few minor cleanups for fs/crypto/.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCatTfsBQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOK+8fAP44Uz+y4pppVVCBGrLQxCM6h1m0JRCN
 8PdP77qrp7xVSQEA3hCZ/YUW0feomaf+27fms66aSaa1KIDgJuBK4bC+LAE=
 =QOXW
 -----END PGP SIGNATURE-----

Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux

Pull fscrypt updates from Eric Biggers:
 "A few minor cleanups for fs/crypto/"

* tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
  MAINTAINERS: List the fscrypt branches
  fscrypt: Move several items from fscrypt_private.h to .c files
  fscrypt: Use aes_ecb_encrypt() for v1 key derivation
2026-10-20 15:49:57 -10:00
Linus Torvalds
95615dd9ff Crypto library updates for 7.4
- Migrate the x86 and riscv optimized implementations of various AES
   modes (ECB, CBC, CBC-CTS, CTR, XCTR, XTS) into lib/crypto/.
 
   This makes the library APIs be properly accelerated on these
   architectures, while still accelerating crypto_skcipher as well.
 
   It removes a lot of redundant glue code, since the crypto API
   boilerplate no longer needs to be duplicated for these architectures.
 
   It also fixes the longstanding issue where optimizations for these
   AES modes were disabled by default on these architectures.
 
 - Optimize AES-XTS on SPARC64 using the SPARC crypto opcodes
 
 - Move the SipHash code into lib/crypto/
 
 - Update the ChaCha and Poly1305 functions to take size_t lengths,
   resolving issues where lengths over INT_MAX were mishandled
 
 - Make frame pointer unwinding work properly in some of the x86
   assembly functions, by following the standard %rbp convention
 
 - Add helper functions for zeroizing structs
 
 - Make a few documentation improvements
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCatTfbBQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOK9yhAP0RU5ofTuvc8jj2o02JlXnnxwzda+zh
 tpJYOIHfW6+2UwD/XjbNgngca3ByRL2f3rt2xdSaqSIjmRMP4Blkgeazsw4=
 =zs1E
 -----END PGP SIGNATURE-----

Merge tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull crypto library updates from Eric Biggers:

 - Migrate the x86 and riscv optimized implementations of various AES
   modes (ECB, CBC, CBC-CTS, CTR, XCTR, XTS) into lib/crypto/.

   This makes the library APIs be properly accelerated on these
   architectures, while still accelerating crypto_skcipher as well.

   It removes a lot of redundant glue code, since the crypto API
   boilerplate no longer needs to be duplicated for these architectures.

   It also fixes the longstanding issue where optimizations for these
   AES modes were disabled by default on these architectures.

 - Optimize AES-XTS on SPARC64 using the SPARC crypto opcodes

 - Move the SipHash code into lib/crypto/

 - Update the ChaCha and Poly1305 functions to take size_t lengths,
   resolving issues where lengths over INT_MAX were mishandled

 - Make frame pointer unwinding work properly in some of the x86
   assembly functions, by following the standard %rbp convention

 - Add helper functions for zeroizing structs

 - Make a few documentation improvements

* tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (49 commits)
  lib/crypto: md5: remove unused header
  lib/crypto: mips/chacha: Handle lengths of 2 GiB or more
  lib/crypto: arm/chacha: Handle lengths of 2 GiB or more in scalar code
  lib/crypto: chacha: Use size_t length
  lib/crypto: poly1305: Use size_t length
  lib/crypto: x86/sha512: Follow the normal %rbp convention
  lib/crypto: x86/sha256: Follow the normal %rbp convention
  lib/crypto: x86/sha1: Follow the normal %rbp convention
  lib/crypto: chacha20poly1305: zeroize state in __chacha20poly1305_decrypt
  lib/crypto: sparc/aes-xts: Add optimization using the AES opcodes
  lib: Move SipHash into lib/crypto/
  lib/crypto: x86/aes-ctr: Remove some unreachable code
  crypto: x86/aesni-intel - Add transitional selections
  crypto: aes - Boost priority of encryption modes further
  lib/crypto: x86/aes: Set RNDKEY in aes_cbc_encrypt_aesni()
  lib/crypto: riscv/aes-xts: Migrate optimized code into library
  lib/crypto: riscv/aes-ctr: Migrate optimized code into library
  lib/crypto: riscv/aes-cbc: Migrate optimized code into library
  lib/crypto: riscv/aes-ecb: Migrate optimized code into library
  lib/crypto: riscv/aes: Pass key struct to assembly code
  ...
2026-10-20 15:38:53 -10:00
Linus Torvalds
9e947d9691 chrome-platform-firmware: Updates for v7.4
* New
 
   - Rename drivers/firmware/google/ -> drivers/firmware/coreboot/ and
     corresponding Kconfig names.
   - Separate firmware_attributes_class from drivers/platform/x86/ to
     drivers/firmware/ so that it is available for non-x86 platforms.
   - Add CFR (coreboot form representation) driver to expose the
     attributes via sysfs.
 
 * Improvements
 
   - Use named initializers for acpi_device_id.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCatGxBRMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0i84BAIoYrVllkB/erFkq1EzeJvhmdUFIotnK
 WanIJTQnfOd1APwJhyBsfZxP7Ad/MwHMoT91Sn1hq2arfE3RIu7DzT9XDA==
 =60u3
 -----END PGP SIGNATURE-----

Merge tag 'chrome-platform-firmware-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux

Pull chrome platform firmware loader updates from Tzung-Bi Shih:
 "New:
   - Rename drivers/firmware/google/ -> drivers/firmware/coreboot/ and
     corresponding Kconfig names
   - Separate firmware_attributes_class from drivers/platform/x86/ to
     drivers/firmware/ so that it is available for non-x86 platforms
   - Add CFR (coreboot form representation) driver to expose the
     attributes via sysfs

  Improvements:
   - Use named initializers for acpi_device_id"

* tag 'chrome-platform-firmware-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  firmware: coreboot: Add CFR firmware attributes driver
  firmware: Move firmware attributes class helper
  firmware: coreboot: Use named initializers for acpi_device_id
  firmware: Rename google firmware directory to coreboot
2026-10-20 15:02:13 -10:00
Linus Torvalds
e5d379e9c3 chrome-platform: Updates for v7.4
* Improvements
 
   - Poll for role swap completion in cros_ec_typec.
 
 * Fixes
 
   - Fix wrong returned data and length for deferred response in
     transport protocol.
   - Check boundary for EC-returned data length in cros_ec_typec.
   - Fix a regression for older ChromeOS devices after applying
     db65a06d10 ("ACPI: EC: Convert the driver to a platform one").
 
 * Cleanups
 
   - Fix typos.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCatGsWhMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0EmABAKKADNtpOyRFYtJsbaUSMxxe2hDD0S71
 OXlnVEmpTYGLAQCl5YVuY38rqTohxT+Z28fRjk44p8kVM0rboWZ1a8NGDg==
 =SSZv
 -----END PGP SIGNATURE-----

Merge tag 'chrome-platform-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux

Pull chrome platform updates from Tzung-Bi Shih:
 "Improvements:
   - Poll for role swap completion in cros_ec_typec

  Fixes:
   - Fix wrong returned data and length for deferred response in
     transport protocol
   - Check boundary for EC-returned data length in cros_ec_typec
   - Fix a regression for older ChromeOS devices after applying
     db65a06d10 ("ACPI: EC: Convert the driver to a platform one")

  Cleanups:
   - Fix typos"

* tag 'chrome-platform-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  platform/chrome: cros_ec_typec: Poll for role swap completion
  platform/chrome: cros_usbpd_notify: Only use drvdata when parent is GOOG0004
  platform/chrome: cros_ec_typec: Validate SVID and mode counts in discovery data
  platform/chrome: cros_ec_rpmsg: Fix repeated word 'from' in comment
  platform/chrome: Fix typos in comments
  platform/chrome: cros_ec_proto: Simplify cros_ec_wait_until_complete()
  platform/chrome: cros_ec_proto: Fix deferred response
  platform/chrome: cros_ec: Sync host command header with EC
2026-10-20 14:57:56 -10:00
Linus Torvalds
6303381334 Add emulation of two-byte cmpxchg()
These commits add a cmpxchg_emu_u16() function that emulates two-byte
 cmpxchg() in terms of four-byte cmpxchg() for architectures not having
 native instructions for this purpose.  They also make use of this
 cmpxchg_emu_u16() function in those architectures, namely sh, arc, csky,
 and xtensa.  This permits use of two-byte cmpxchg() in common code.
 
 However, it sadly does not permit easy implementation of all algorithms
 needing on two-byte atomic operations because there are some systems still
 supported by Linux that do not have native two-byte store instructions.
 There is reason to believe that these systems will soon no longer be
 supported by Linux.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEbK7UrM+RBIrCoViJnr8S83LZ+4wFAmrNfLUTHHBhdWxtY2tA
 a2VybmVsLm9yZwAKCRCevxLzctn7jEgGD/9i6D9QznxjJfc3LIUITq/dWm8XRyN+
 ILMCiE03UxOrU5iQ54Xk98QcPmXsifCNHUKcs8Av+fZM38eEdwpxsW+eha08E8Ri
 SynzKpmEhHW7ntXfB+8DhCmyhjvBqttX24J9Ntv9sol35XuCIWSVFTEH0Lwrk3A4
 KuA9QsG0Cx8MjAnImpBK3YjFQrUZc6nA6WWAWxOJ9LScXuG3WMnT6pvCqbUUOToY
 A2g+5fl4Z5xYVupDvdfviQ6Tz/r+w+/HoIesznqLash2HR9Emtj5NAOqKQ3G01Yn
 95uYT6u258qA837cA/LSBcNuLlxrAr5UDwj9eI8YqThb8IhspY2ZkI7hA/iZVqT6
 irc5JN3yEG505Budjxdf3PudeybuCdQEYr5g3u2ZVf/02bkEpCFaJ6kHRqv6k/H7
 tvKGA/qYgjlxmQiHAIolGVY+1pZzQ6c8O7bVJI191s1aG/y8yOjqN3+e9BUr1Cnx
 8wNqbWu/3Zzsy7n3dM8gGRfygxaSb2osjePA6B/1uPnglmDyQs4hBnRvDz9jphbY
 lPi302ZFHZLe6Otu4ifRe9F2/4dHo0k0l07dHpf8m622m/OOsUGIAULUf6tfRmCq
 5znc9dY4zWo8Q4lUjl0Pu8t0i62LSCT+kQuepOb4nvD3aS7hbeqSanS8AZiVZ/NG
 Tb5JDnoCv/J5Bg==
 =4K7Y
 -----END PGP SIGNATURE-----

Merge tag 'cmpxchg-emu.2026.10.12b' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu

Pull two-byte cmpxchg emulation from Paul McKenney:
 "These commits add a cmpxchg_emu_u16() function that emulates two-byte
  cmpxchg() in terms of four-byte cmpxchg() for architectures not having
  native instructions for this purpose. They also make use of this
  cmpxchg_emu_u16() function in those architectures, namely sh, arc,
  csky, and xtensa. This permits use of two-byte cmpxchg() in common
  code.

  However, it sadly does not permit easy implementation of all
  algorithms needing on two-byte atomic operations because there are
  some systems still supported by Linux that do not have native two-byte
  store instructions.

  There is reason to believe that these systems will soon no longer be
  supported by Linux [1]"

Link: https://lore.kernel.org/all/20260908152808.3928630-4-arnd@kernel.org/ [1]

* tag 'cmpxchg-emu.2026.10.12b' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
  xtensa: Emulate two-byte cmpxchg
  csky: Emulate two-byte cmpxchg
  ARC: Emulate two-byte cmpxchg
  sh: Emulate two-byte cmpxchg
  lib: Add two-byte cmpxchg emulation function
2026-10-20 14:53:33 -10:00
Linus Torvalds
14c8977403 It was a reasonably busy cycle for docs; changes include:
- Add the AGENTS.md symbolic link into the top-level directory in the hopes
   that LLMs will read it and produce better work.
 
 - The removal of the Assisted-by requirement, as concluded at the
   Maintainer Summit.
 
 - A new "testdocs" make target to run the documentation unit tests.
 
 - Lots of work on the Portuguese, and Chinese translations; there is now
   maintenance for the traditional Chinese translations as well.
 
 ...and the usual pile of minor fixes, documentation updates, etc.
 -----BEGIN PGP SIGNATURE-----
 
 iQFDBAABCgAtFiEEIw+MvkEiF49krdp9F0NaE2wMflgFAmrXgRMPHGNvcmJldEBs
 d24ubmV0AAoJEBdDWhNsDH5YAScH/28hCTx+pChtG42h1qHi+4zMHvJG3L7he2pG
 NxCJnrSPdYOEtdF7QW31he//D5KS0utAf3lxka3kouG/wAyFnXPi4BvSZNlq63FS
 9SSrcVfp3QZiLo/5Q8vvKX4USKLaGo6JxgI9yQBoYejUTYpfejbP+8Xu+qP3qnd8
 pPFLZGGtc4QBJveJH9F7LKJo8VcgHD8S8YdwOPUnJ5N7m1A8+ZN3JPONO6UZYQip
 3STTENdk/fNrfONuyS6URN6Z3TA8+63IpPS5u3+jfCqohxDqeHpnj0Ibsh2pVd8V
 rpz3YaOYRiMlXVe5uIXxqywf6XzdMRW34NWwB+X/F87hxQFm0Lo=
 =Sk+o
 -----END PGP SIGNATURE-----

Merge tag 'docs-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux

Pull documentation updates from Jonathan Corbet:
 "It was a reasonably busy cycle for docs; changes include:

   - Add the AGENTS.md symbolic link into the top-level directory in the
     hopes that LLMs will read it and produce better work

   - The removal of the Assisted-by requirement, as concluded at the
     Maintainer Summit

   - A new "testdocs" make target to run the documentation unit tests

   - Lots of work on the Portuguese, and Chinese translations; there is
     now maintenance for the traditional Chinese translations as well

  ...and the usual pile of minor fixes, documentation updates, etc"

* tag 'docs-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux: (125 commits)
  docs: add AGENTS.md as a symlink to README
  docs: kernel-parameters: adjust reserve_mem build option
  docs: kernel-parameters: don't mix cmdline options & build options
  docs/ja_JP: translate submitting-patches.rst (review and report tags)
  docs: remove Assisted-by references
  Revert "docs: landlock: fix ENOMSG condition in create_ruleset kernel-doc"
  docs: kdoc: parse context_lock_struct() as struct declaration
  docs: timers: hpet: Document userspace API and ioctl commands
  docs: timers: hpet: Modernize file references
  Documentation: sched-preemption: Add a SPDX license identifier
  docs: ABI: sysfs-driver-xdata: use literal blocks for console commands
  docs: ABI: sysfs-class-firmware-attributes: use literal blocks for console commands
  ABI: sysfs-bus-usb: use literal block for console commands
  docs/ABI: testing: aspeed-uart-routing: use literal block for console commands
  docs: kernel-parameters: fix a truncated sentence for preempt=lazy
  sched/doc: add a preemption model overview
  docs: ABI: TMR manager: use literal blocks for console I/O
  Documentation/ABI: IFS: use literal blocks for commands
  ABI: sysfs-bus-pci: use literal blocks for commands
  docs: translations: pt_BR: add debugging index
  ...
2026-10-20 14:38:38 -10:00
Linus Torvalds
542fed2ef2 nolibc changes for v7.4
Changes:
 * New architectures: Hexagon, 64-bit parisc
 * New library functionality: sendfile(), pread(), pwrite()
 * Various bugfixes and cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTg4lxklFHAidmUs57B+h1jyw5bOAUCatSDYwAKCRDB+h1jyw5b
 OJZOAP4vAP8wrFSsy0JqraUM2zxITIwX9bdqxlrgY4Yq8EECgwD/YT/GdjkJgVew
 HKIMnggJGIsNloLPeKlDiHEoKF8zgws=
 =Nzb1
 -----END PGP SIGNATURE-----

Merge tag 'nolibc-20261018-for-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/nolibc/linux-nolibc

Pull nolibc updates from Thomas Weißschuh:

 - New architectures: Hexagon, 64-bit parisc

 - New library functionality: sendfile(), pread(), pwrite()

 - Various bugfixes and cleanups

* tag 'nolibc-20261018-for-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/nolibc/linux-nolibc: (28 commits)
  selftests/nolibc: explicitly disable position independent executables
  selftests/nolibc: use the configured kernel header directory
  tools/nolibc: fix the function argument order of calloc()
  tools/nolibc: check for overflow in malloc()
  tools/nolibc: stop rounding malloc() sizes up to 4096 bytes
  tools/nolibc: add support for pread() and pwrite()
  tools/nolibc: introduce __NOLIBC_BITS_PER_SYSCALL_ARG
  tools/nolibc: move __NOLIBC_LLARGPART() to compiler.h
  tools/nolibc: make 64-bit systemcall argument padding generic
  selftests/nolibc: make the broken MIPS N32 argument detection reusable
  tools/nolibc: add 64-bit parisc support
  selftests/nolibc: test the FD_* macros
  tools/nolibc: fix FD_SET(), FD_CLR() and FD_ISSET() on 64-bit
  tools/nolibc: fix readdir_r() with 64-bit directory offsets
  tools/nolibc: fix verrx() and errx() message formatting
  selftests/nolibc: add tests for the wait status macros
  tools/nolibc: fix WIFSIGNALED() for status 0
  tools/nolibc/parisc: consistently use %dp to refer to register %r27
  selftests/nolibc: validate ENOTDIR return values from opendir()/fdopendir()
  tools/nolibc: verify that a directory is opened
  ...
2026-10-20 14:36:18 -10:00
Linus Torvalds
2a0d3d73c1 xen: branch for v7.4-rc1
-----BEGIN PGP SIGNATURE-----
 
 iJEEABYKADkWIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCatC64hsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDIACgkQgFxhu0/YY75lBQD/dxTsGihelYp5Nq4eTJIZ
 ik72nKwnkNCgRWh+VgbclzwA/R71x2hcL+knXAkar9J5EJG6k4QV16gHptW/JGAX
 xHgO
 =yn95
 -----END PGP SIGNATURE-----

Merge tag 'for-linus-7.4-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen updates from Juergen Gross:
 "This time only small fixes and cleanups all over Xen related drivers.
  Nothing really stands out here"

* tag 'for-linus-7.4-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen-blkfront: Fix IO race during unplug
  xen-pciback: Fix pcistub_device ref leak in pcistub_get_gsi_from_sbdf()
  xen/pcifront: check that an AER callback exists before calling it
  xen/gntdev: Fix gntdev_dmabuf ref leak in dmabuf_exp_wait_released()
  x86/PVH: don't truncate initrd address/size
  xen/privcmd: Only claim ioreqs matching an ioeventfd
  xen/scsifront: check for a NULL shadow entry on a backend response
  xen: fix typos in comments
  xen/gntdev: prevent private mappings from becoming writable
  xen: remove unused hvm_vcpu.h header
  xen-blkfront: unbind irq before tearing down ring and shadow requests
  xen/blkback: Prevent missed completion when draining I/O
  xen/pcifront: Fix PCI device reference leak in AER handling
2026-10-20 14:33:15 -10:00
Linus Torvalds
742f62b639 alpha updates for v7.4
- alpha: add bounded Clipper console-log scanning
 - alpha: decode Clipper environmental events
 - alpha: decode and acknowledge Tsunami system machine checks
 - alpha: bound EV6 logout decoding by the processor area
 - alpha: describe the Tsunami system machine check frame
 - alpha: move Tsunami machine check handling to err_tsunami.c
 - alpha: fill in pc for software event samples
 - alpha: add HAVE_PERF_REGS and HAVE_PERF_USER_STACK_DUMP support
 - alpha: use user_stack_pointer() in KSTK_ESP() and dump_elf_thread()
 - alpha: stop storing the user stack pointer in pt_regs
 - alpha: fix stale user_stack_pointer()
 - selftests/seccomp: add Alpha support to seccomp_bpf
 - alpha: do not skip TLB shootdown IPIs for kthread-borrowed mms
 - alpha: do not clear remote MMU contexts in migrate_flush_tlb_page()
 - alpha: invalidate the local context in flush_icache_user_page()
 - alpha: invalidate the local context in flush_tlb_mm()
 - alpha: fix the local TLB invalidate in the UP flush_tlb_page()
 - alpha: fix the local TLB invalidate in flush_tlb_page()
 - alpha: invalidate the local context in flush_tlb_page()
 - alpha: only use a targeted tbi() when the target mm is really current
 - alpha: run check_mmu_context() from finish_arch_post_lock_switch()
 - alpha: load the MMU context when switch_mm() switches the current task
 - alpha: implement hugetlb support
 - alpha: align hugetlb mappings in arch_get_unmapped_area()
 - alpha: define granularity hint PTE bits
 - alpha: describe the PTE read and write enable bits
 - alpha: handle VM_FAULT_HWPOISON in do_page_fault()
 - alpha: add missing page_table_check_pte_clear() to ptep_get_and_clear()
 - alpha: default NR_CPUS to 32 for Wildfire
 - alpha: link platform help text to the alphalinux.org wiki
 - alpha: correct system descriptions in Kconfig help text
 - alpha: replace dead links in Kconfig help text
 - alpha: support the remaining kernel compression formats
 - alpha: add self-extracting compressed kernel boot stub
 - xz: add arch-specific tuning for alpha
 - alpha: select SPARSE_IRQ
 - alpha: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 - alpha: select ARCH_WANT_LD_ORPHAN_WARN
 - alpha: discard .eh_frame and the relocation sections
 - alpha: select SYSCTL_EXCEPTION_TRACE
 - alpha: select ARCH_USE_MEMTEST
 - alpha: select HAVE_GUP_FAST
 - alpha: select ARCH_HAS_DEBUG_VM_PGTABLE
 - alpha: add ARCH_SUPPORTS_PAGE_TABLE_CHECK support
 - alpha: add ARCH_HAS_PTE_SPECIAL support
 - alpha: add HAVE_ARCH_THREAD_STRUCT_WHITELIST support
 - alpha: select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
 - alpha: select HAVE_ARCH_COMPILER_H
 - alpha: select ARCH_SUPPORTS_INT128
 - alpha: select ARCH_HAS_FAST_MULTIPLIER
 - alpha: select ARCH_SUPPORTS_ATOMIC_RMW
 - alpha: select EDAC_SUPPORT
 - alpha: select HAVE_DEBUG_KMEMLEAK
 - alpha: select ARCH_HAS_GCOV_PROFILE_ALL
 - alpha: select ARCH_HAS_UBSAN
 - alpha: enter hardirq context before looking up the irq descriptor
 - alpha: enable GENERIC_ENTRY
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTIw07U9ivnHy+tugnaDr6nZQzE/AUCatZIQgAKCRDaDr6nZQzE
 /AqTAP9RHaiXEn9o6NkcvCfiCLin7UUQmDb0GVBMQCO6elERWQEAoTYaCYWB0cKj
 wsF8DtzdXBKHZt7MKy56uiuESF7zlwk=
 =1yco
 -----END PGP SIGNATURE-----

Merge tag 'alpha-for-v7.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/lindholm/alpha

Pull alpha updates from Magnus Lindholm:
 "This completes Alpha's conversion to GENERIC_ENTRY and enables a range
  of kernel features through Kconfig updates, including UBSAN, gcov,
  kmemleak, page-table checking, fast GUP and sparse IRQs.

  It includes TLB and MMU context fixes prompted by glibc test-suite
  failures, HugeTLB support for 64KB, 512KB and 4MB pages, and fixes for
  poisoned-page faults and page-table checking.

  Machine-check handling is improved on Tsunami platforms, with bounded
  EV6 logout decoding, Clipper environmental event reporting and safer
  firmware console-log scanning.

  Other changes add self-extracting compressed kernels with support for
  all kernel compression formats, Alpha-specific XZ tuning, perf
  register and user-stack sampling, and Alpha support in the seccomp
  selftests. The series also fixes user stack-pointer reporting and IRQ
  entry ordering, adds 128-bit shift helpers, cleans up linker sections,
  and updates Kconfig help"

* tag 'alpha-for-v7.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/lindholm/alpha: (57 commits)
  alpha: add bounded Clipper console-log scanning
  alpha: decode Clipper environmental events
  alpha: decode and acknowledge Tsunami system machine checks
  alpha: bound EV6 logout decoding by the processor area
  alpha: describe the Tsunami system machine check frame
  alpha: move Tsunami machine check handling to err_tsunami.c
  alpha: fill in pc for software event samples
  alpha: add HAVE_PERF_REGS and HAVE_PERF_USER_STACK_DUMP support
  alpha: use user_stack_pointer() in KSTK_ESP() and dump_elf_thread()
  alpha: stop storing the user stack pointer in pt_regs
  alpha: fix stale user_stack_pointer()
  selftests/seccomp: add Alpha support to seccomp_bpf
  alpha: do not skip TLB shootdown IPIs for kthread-borrowed mms
  alpha: do not clear remote MMU contexts in migrate_flush_tlb_page()
  alpha: invalidate the local context in flush_icache_user_page()
  alpha: invalidate the local context in flush_tlb_mm()
  alpha: fix the local TLB invalidate in the UP flush_tlb_page()
  alpha: fix the local TLB invalidate in flush_tlb_page()
  alpha: invalidate the local context in flush_tlb_page()
  alpha: only use a targeted tbi() when the target mm is really current
  ...
2026-10-20 14:31:24 -10:00
Linus Torvalds
375d5d5754 s390 updates for 7.4 merge window
- Add support for sclp-vt220 terminal resize events e.g. for QEMU
 
 - Warn if kernel command line contains non-printable EBCDIC
   characters
 
 - Improve show_code() disassembly output by using reliable markers for
   the instruction address and faulting instruction
 
 - Rework exception handling to require only a single exception table
   entry per faulting instruction: convert all inline assemblies from
   EX_TABLE to the new EX_TABLE_INSN macros. The previous exception
   handling was error prone since it usually required two EX_TABLE
   entries: one pointing at the instruction, and one pointing behind it
 
 - Disallow kprobes on instructions with exception table entries to avoid
   exception handlers decoding a breakpoint instead of the original
   instruction
 
 - Preemptible percpu ops changes:
 
   - Simplify percpu_entry() and percpu_exit() by encoding the percpu
     base, offset, and pointer registers into the lowcore marker, allowing
     percpu_exit() to update the percpu pointer on CPU migration without
     comparing the interrupted instruction
 
   - Convert this_cpu_cmpxchg(), this_cpu_xchg(), and
     this_cpu_cmpxchg128() to preemptible percpu ops; provide
     this_cpu_try_cmpxchg()
 
 - Emulate virtual timer in appldata via delayed work and remove the
   s390 specific vtimer infrastructure
 
 - Add lock contention tracepoints to rwlock slowpath
 
 - Fix incorrect return address in signal frame setup
 
 - Fix cpum_cf CPU hotplug handling
 
 - Convert various __get_free_pages() / get_zeroed_page() users to
   kmalloc() / kzalloc()
 
 - PCI:
 
   - Improve RPCIT instruction tracing
 
   - Fix double-free, use-after-free, and resource leaks in zPCI MSI
     and IRQ setup / cleanup paths
 
 - Crypto and zcrypt:
 
   - Improve reply message and length verification checks for CCA,
     EP11, and ICA messages to prevent out-of-bounds reads
 
   - Add missing array_index_nospec() for domain index uses in zcrypt to
     prevent speculative execution bypass
 
   - Fix out-of-bounds read in cca_query_crypto_facility()
 
 - Various other small fixes and improvements
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEECMNfWEw3SLnmiLkZIg7DeRspbsIFAmrSZW4ACgkQIg7DeRsp
 bsIXhg/+P39lvYFLfxl2mb7PeE/YPRnxZRhsW0eUoRMXSabigjhlCyBHlTBfJS0b
 dx+yEWLK/X7rP8kTrQyGt+JasMmBxUWpfF+FmEoBxxFmDsyV6cteFlo//a1NVeNX
 suY8QQBxwg13UOorUYB+yovvKhsRfSJoPT+wEAK52Wq39PBgSV/ulI3+naSmxfxE
 e12XdUnL8PgXb9WUx//iBzJexAurRZPZinCrL3qVUOuCkPqExmoP1TmLWItkXaSa
 6DP/rZ5z2Bh/CWMGQhLuT7btPfxWJrPFFo0oYPK7wT8DjKdPcQm7bRTjAcHj9vCI
 pZL9nTXezQYE/eRiXFmS0cU9Pwbih2NdC/cncHkGQqIfCtlrPP1uOYECO9S3YI+J
 RrCODXdQyalwW+zMNDtW5O0pLTRPI4dNLApWCbGYE92u2yws9hoT+9uzPBJRqPq7
 PAYmIVNaXaZLwySDiZVa/eemuH3kbbWnP3YXHeqQs/MmV+u/Go4DV/HYbGLIQbrG
 nkZ8qio+PNKJsPhbzjD4ev2YKTQPV+FtRYyaApHWM9wJM3ME8Dq8JYRNo6KrSa2p
 ahVLk0iK5Ath9hHQ3EIXLXtRl3eAkn7ZDJbpfg/QPCj0c4vlmtz1ixKzb0JE9QeP
 ikmSpM0FOqH8ykXlegG7/yQSZCpuIWlF8EVIeg+3yj86dloVPjg=
 =6GFl
 -----END PGP SIGNATURE-----

Merge tag 's390-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 updates from Heiko Carstens:

 - Add support for sclp-vt220 terminal resize events e.g. for QEMU

 - Warn if kernel command line contains non-printable EBCDIC characters

 - Improve show_code() disassembly output by using reliable markers for
   the instruction address and faulting instruction

 - Rework exception handling to require only a single exception table
   entry per faulting instruction: convert all inline assemblies from
   EX_TABLE to the new EX_TABLE_INSN macros. The previous exception
   handling was error prone since it usually required two EX_TABLE
   entries: one pointing at the instruction, and one pointing behind it

 - Disallow kprobes on instructions with exception table entries to
   avoid exception handlers decoding a breakpoint instead of the
   original instruction

 - Preemptible percpu ops changes:

    - Simplify percpu_entry() and percpu_exit() by encoding the percpu
      base, offset, and pointer registers into the lowcore marker,
      allowing percpu_exit() to update the percpu pointer on CPU
      migration without comparing the interrupted instruction

    - Convert this_cpu_cmpxchg(), this_cpu_xchg(), and
      this_cpu_cmpxchg128() to preemptible percpu ops; provide
      this_cpu_try_cmpxchg()

 - Emulate virtual timer in appldata via delayed work and remove the
   s390 specific vtimer infrastructure

 - Add lock contention tracepoints to rwlock slowpath

 - Fix incorrect return address in signal frame setup

 - Fix cpum_cf CPU hotplug handling

 - Convert various __get_free_pages() / get_zeroed_page() users to
   kmalloc() / kzalloc()

 - PCI:

    - Improve RPCIT instruction tracing

    - Fix double-free, use-after-free, and resource leaks in zPCI MSI
      and IRQ setup / cleanup paths

 - Crypto and zcrypt:

    - Improve reply message and length verification checks for CCA,
      EP11, and ICA messages to prevent out-of-bounds reads

    - Add missing array_index_nospec() for domain index uses in zcrypt
      to prevent speculative execution bypass

    - Fix out-of-bounds read in cca_query_crypto_facility()

 - Various other small fixes and improvements

* tag 's390-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (102 commits)
  s390/signal: Cleanup coding style
  s390/signal: Fix incorrect return address in signal frame
  s390/probes: Fix wrong mnemonic comment for clgib
  s390/probes: Add missing fixup for bctgr and bic
  s390/probes: Fix wrong opcode for cgrb fixup
  s390: Select ARCH_MEMORY_ORDER_TSO
  s390/mm: Cleanup pXXp_flush_lazy() routines
  s390/pci: Add function handle to RPCIT insn trace
  s390/pci: Use 32-bit fh outside of inline asm
  s390/pci: Adjust alignment in insn trace
  s390/sclp: Remove redundant memset after memblock_alloc_low()
  s390/entry: Save lowcore on invalid kernel stack
  s390/entry: Last breaking event vs invalid kernel stack
  s390/percpu: ImplemenHeiko Carstenst this_cpu_try_cmpxchg()
  s390/percpu: Drop unused output register from arch_this_cpu_to_op()
  s390/percpu: Drop unused output register from arch_this_cpu_add()
  s390/percpu: Use asm_inline for arch_this_cpu_add()
  s390/extable: Remove EX_TABLE macros and fallback extable search
  s390/bpf: Simplify exception table entry handling
  s390/sclp: Convert inline assembly to EX_TABLE_INSN
  ...
2026-10-20 14:28:32 -10:00
Linus Torvalds
ae3af2d105 NIOS2: update for v7.4, part 2
- Declare __mulsi3 export
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmrWK9cACgkQGZQEC4Gj
 KPS7kQ/6AluYA3y5OlYNVjpLPGGUh5TL2wHttmFcl9+qNBIoZp91MmYUQV8kS0EX
 W+KuqqXxucrxgWRyh0fnyFvgU8YinbBu9Z9VBs+5E3YzzTGIq4Tvs3E5ADBBGkUC
 fy6LWQKJTjJoj/P3xIy/YbEb5yu5FuvHF+4s3edB9Olt9KSZoyFgGTwmfAEgc4J1
 5XqRyMO5BzKIgk4njhcNX3G6bDL5LiaMAgdAQPP5eS+jkcjFN6PgbkRAFdRTonuJ
 gGTT3nWKsbf8MKhbCmfVvTtDak5x9zVxw2vdUnVjjh3HSV0nvvgcWtAm4+U4ito0
 3V6qvjSE5YVNz/7noJbSByjpxaK/reyUASo1KpP2QbJ+gUK5dcIHnD9tfgGb9/Al
 5QWHyH4eKxWT3dJ1XzIuedyLi9jd/lQn2hhM4HbHTJcVQt6mJJLLvDtBou/4w8Op
 uydE7bZmUcdQjsePpeFw7KdLqTY3XODlcFfIstbFD+XiQs/pMglRx2qnasnm5FAY
 CC0R1Sd5Oviq52OF8VaFYmGonSFwFQicdtwT37tNHjXBKUB8/ILcyNpm7cOT/Cy5
 x4/glqEIfonGlEb1k7ya45TJEJzxUV533HHZUlsAah4VNjiS7BKbGquvXs0CVsC7
 /b1ajlasp5Hj0qphVttRfNA7Snum5Y2qeFFesWBmsuQnlZdclZc=
 =ghaK
 -----END PGP SIGNATURE-----

Merge tag 'nios2_update_for_v7.4_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux

Pull NIOS2 update from Dinh Nguyen

 - Declare __mulsi3 export

* tag 'nios2_update_for_v7.4_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  nios2: ksyms: Declare __mulsi3 export
2026-10-20 14:26:11 -10:00
Linus Torvalds
6be53e26e8 m68k updates for v7.4
- Add and enable support for the SVEthLANa Ethernet interface on the
     Atari SuperVidel FPGA expansion card,
   - Enable support for the IDE interface on the Amiga CS-Lab Warp
     expension card,
   - Defconfig updates,
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCatYI/gAKCRCKwlD9ZEnx
 cPY/AP9LeCn4VDWOpU9w8bodhatXY3T6Du7cDEzvpYvAh8OdlAD7BoGpoXaw9KLy
 Fz2eRQ+VTNWKFb5CeNXVHeBoGn3FhgA=
 =Fgji
 -----END PGP SIGNATURE-----

Merge tag 'm68k-for-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

Pull m68k updates from Geert Uytterhoeven:

  - Add and enable support for the SVEthLANa Ethernet interface on the
    Atari SuperVidel FPGA expansion card

  - Enable support for the IDE interface on the Amiga CS-Lab Warp
    expension card

  - defconfig updates

  - Miscellaneous fixes and improvements

* tag 'm68k-for-v7.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: defconfig: Enable ATARI_SVETHLANA and ETHOC
  m68k: defconfig: Update defconfigs for v7.3-rc1
  zorro: Use assign_bit() where applicable
  m68k: apollo: Fix interrupt setup
  m68k: defconfig: Enable PATA_CSWARP
  m68k: Add support for SVEthLANa
  m68k: Add include guard to asm/serial.h
  m68k: Use generic BASE_BAUD in asm/serial.h
2026-10-20 14:24:32 -10:00
Linus Torvalds
4cbdd58dfa Perf events updates:
- Support SIMD/eGPRs/SSP register sampling in perf
    (Dapeng Mi, Kan Liang)
 
  - Turn amd_uncore_ctx events into a flexible array (Rosen Penev)
 
  - Finish the work related to fixing the guest PEBS path to not
    set unwanted PERF_GLOBAL_CTRL bits, for which urgent fixes
    are upstream already (Sean Christopherson)
 
  - Drop redundant counter slot searches in the AMD uncore
    driver (Usama Arif)
 
  - Don't WARN when the ext_regs_buf allocation fails (vineash)
 
  - Annotate x86_pmu::hybrid_pmu with __counted_by_ptr (Thorsten Blum)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUmW4RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1hhcA/9GLLMd5OOBjw8i2ckWMOoi5UgmflkApBa
 BiAV9jEaIt3AaOS4hUe1Ttnrk02rWuq1NppwJm4n4foxysEI54ZwMfsWYeXLjdQ7
 Lw5Q+4/NwvuMPkE8pcasyM+OYE7BOnNRZijjqcDycYHcx0E464n4/sWFG9HQxhVa
 mNTLNvix9tIQTLjBTWWJdBDWYMvMlqvkjqCYNAf3CPDWP718pc29ilvZ3HW/qh2w
 iLELMP2+wPInfB7mDNy5aSdv0nLuSZHtmFshYSMK0d1MfIYd1a8p7XEYQ61iOCMz
 ZXKO3h21Ri0Ze7c3v6URlu3JsDv6lWiFyqW+ZyG9XFkmzam0Lk/HqFEg84QKUbPt
 9qiMxpLKQFhjumJRacZiswb/pKHGPbYQGkjt3wl5J5wSikiB57VnF+yPqwXFAlmx
 LIa7qLThGSy9Ju6dqbbpEkiiRkl7+Gb9zPAISbTjse9BdXiCUCKihUT689nAfmqT
 t7bTwocrYvSZiNK1ipEf+ARRb9lqLBF6LZ59WsFlVddMfiBb/f1x0b0M5sVEKucv
 JMOywESH6SFE0j533WA6WY6+iRG+FFa+k7mu78RO2nnKSXEXsLDQ5o3iyhQ2B4uD
 xaUq7J4DTRfu6XU1bK4HpBnKDgWzdkLrD+m8mTKPeNW5kMZC6QYakjQtqpC3Qks4
 liX/+yGieJs=
 =+I0p
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf events updates from Ingo Molnar:

 - Support SIMD/eGPRs/SSP register sampling in perf
   (Dapeng Mi, Kan Liang)

 - Turn amd_uncore_ctx events into a flexible array (Rosen Penev)

 - Finish the work related to fixing the guest PEBS path to not
   set unwanted PERF_GLOBAL_CTRL bits, for which urgent fixes
   are upstream already (Sean Christopherson)

 - Drop redundant counter slot searches in the AMD uncore
   driver (Usama Arif)

 - Don't WARN when the ext_regs_buf allocation fails (vineash)

 - Annotate x86_pmu::hybrid_pmu with __counted_by_ptr (Thorsten Blum)

* tag 'perf-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
  perf/x86: Don't WARN when the ext_regs_buf allocation fails
  perf/x86/amd/uncore: Free counter slot by index
  perf/x86/amd/uncore: Remove redundant event slot scan
  perf/x86/intel: Check only PMC bits in PEBS_ENABLED when detecting host PEBS usage
  KVM: VMX: Only tell perf to enable PEBS counters for fully enabled PMCs
  KVM: VMX: Drop a redundant pmu->global_ctrl check when processing pebs_enable
  perf/x86/intel: KVM: Handle cross-mapped PEBS PMCs entirely within KVM
  perf/x86: KVM: Have perf define a dedicated struct for getting guest PEBS data
  perf/x86/intel: Invert names of intel_ctrl_{guest,host}_mask
  perf/x86/intel: Annotate x86_pmu::hybrid_pmu with __counted_by_ptr
  perf/x86/amd/uncore: Turn amd_uncore_ctx events into a flexible array
  perf/x86/intel: Add sanity check for PEBS record/fragment size
  perf/x86: Activate back-to-back NMI detection for arch-PEBS induced NMIs
  perf/x86/intel: Advertise PERF_PMU_CAP_SIMD_REGS capability
  perf/x86/intel: Support arch-PEBS based SIMD/eGPRs sampling
  perf/x86: Support SSP sampling using sample_regs_* fields
  perf/x86: Support eGPRs sampling using sample_regs_* fields
  perf: Enhance perf_reg_validate() with simd_enabled argument
  perf/x86: Support OPMASK sampling using sample_simd_pred_reg_* fields
  perf/x86: Support ZMM sampling using sample_simd_vec_reg_* fields
  ...
2026-10-20 13:00:41 -10:00
Linus Torvalds
5b6dca02b3 Objtool updates:
- Add unit test suite for objtool klp functionality and
    known failure modes (by Song Liu and Puranjay Mohan,
    with fixes by Joe Lawrence)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUlv4RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1jQ2BAAiGEOosOHD2L8dDfFFv8NSZgXRmyg+aEI
 S23orkCIvFBEVrvyvE707E7Oqunfd0KXbOINIm8SpI/HokhgEm5DJlx6dbuHjP0p
 RcPwtNANeXdh9WkEhkQb152FITXc2R/K5EyLk4HwyzEqj8jTOoa1y7Yk9lu7LIPO
 aS753iOmJUbmUAkUVq+sHBcJU1PsWlFUiea3hcQ9+IL3taVtUOC3veBP4vFj4ags
 bcrupHeIbeBJ8Jbh9vuWOsLfDDQDY82RLgf6pPc4A5vJETvfRiMuLP8jPShZaVmr
 XxvrUaFxm8DsKuuGDoKMQWTO6LJc56BxVOYABQyw8ey/xSpd8uaTvnAReRak3Hbw
 wSs2yBEXZe4uUB/RtTdjqk43okNvPAFtxlwsPnE3SlEsdMXv+EM2dPSf6E5Wc/Dl
 /fgOmaPi6y4HgZywwaJk9kwJ1maCk4DCDG6N9R+CVGAHvuJAwdIGWzpz3rcJsDp3
 REAaX0uqXMkr+AjXMU4Gtjj05sX4uvIjljAHvDup4VSCeTsSMIEy/IuXE6Zv4qq8
 CIYjyfE43CMQ0QvsDJdQe6XTsYdWva6I5g28O5EimMiuGhVrmztiytlPO2Ua5ikN
 s8U8Vi7e9ILYNuU2cplf9yY2sG75vueIm0EZd5dpa54fCXl90iUyEcIoemgW1Sid
 VsyAljFdSsE=
 =dN+w
 -----END PGP SIGNATURE-----

Merge tag 'objtool-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull objtool updates from Ingo Molnar:

 - Add unit test suite for objtool klp functionality and
   known failure modes (by Song Liu and Puranjay Mohan,
   with fixes by Joe Lawrence)

* tag 'objtool-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
  objtool/klp: Add test for ThinLTO symbols sharing a demangled name
  objtool/klp: Add test for Clang switch jump tables
  objtool/klp: Add test for UBSAN metadata in an unchanged function
  objtool/klp: Add test for absolute and __ADDRESSABLE symbols
  objtool/klp: Add test for a patch which strips a data annotation
  objtool/klp: Add test for the alignment of cloned data sections
  objtool/klp: Add test for alternative replacement code in checksums
  objtool/klp: Add test for instruction operand checksums
  objtool/klp: Add test for a static call introduced by the patch
  objtool/klp: Add test for tracepoint and pr_debug static branch keys
  objtool/klp: Add test for a static branch introduced by the patch
  objtool/klp: Add test for symbols with no checksum entry of their own
  objtool/klp: Add test for data object checksums
  objtool/klp: Test text annotations on alternative replacements
  objtool/klp: Test a hand-built livepatch module's static call keys
  objtool/klp: Test rejection of a file-local static branch key
  objtool/klp: Add test for symbols whose linkage the patch changes
  objtool/klp: Add test for kCFI prefix symbols and traps
  objtool/klp: Add test for __bug_table, __ex_table and __mcount_loc extraction
  objtool/klp: Add test for static locals which must not be correlated
  ...
2026-10-20 12:55:04 -10:00
Linus Torvalds
776bb6df3f Locking updates:
- In the refcount checking code, BUG() on UAF related errors if
    CONFIG_BUG_ON_DATA_CORRUPTION=y (Jann Horn)
 
  - Add {over,under}flow detection for local_interrupt_{enable,disable}()
    (Boqun Feng)
 
  - Add kunit test case for max local_interrupt_disable() nesting level
    (Boqun Feng)
 
  - Clarify comment (Boqun Feng)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUlMkRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1jSug//cjg5WItJ31KfJuzjlRhLJmMdjaPflV+7
 y99hHMLZFu8+L20U8lqBLCCdjmgS3RnPUHsncSwxZHOIrp3zAduc85oa4FMultwq
 XT39jTLEiIfa/2S5/k48PCFZbB6kgFGZGLiAd/h8HuUi4w8t0deGNggdtQCANOdF
 OnpZedXttevu+tbqZFVn2CBZ9Y83S8au1GNuQTu/CAILAPFOalJWP/L+yxns6uZo
 W/5oJvW+RmjswKBFKEgPJSOg56VPURZBPqPZntB9TVyiUSAx7wQeXhMdVFL6e6hx
 MEE5uxbKAqau0LmbTJy7GHpZym4p2hNHIyACxiQX7eXd4l20C/INHVgwYvSRgF9F
 V2VgBMPxH6wXxxNeFujBnNfeUaZfb/9c/E0AQfIQNhexqXahA8bBfmwDy3T+2smq
 usRFLW676zAam2WybsJmANSHZ+KhKaVolOBJTLEUnGA2CG5ONt/xa3HqHNTKCI22
 CY6D6iSgKBzhmso2A7EGdajx3kBkNycfdrVlqXz6YIw7MiNZlONPWf7698bzszPL
 HcE9KWr+0Pt23R5t6g1BBg7T0mnARX8/k3UR5fUC+1zovoKQAm4k8VacDMhF1GSP
 xt7EKiQgNjSRPKdlF+vAlk97qEWqIqkHjvyw5dX+Gz3d4uJ+UHwJDqMM50dEm8g6
 JgqckejzN1A=
 =nN01
 -----END PGP SIGNATURE-----

Merge tag 'locking-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull locking updates from Ingo Molnar:

 - In the refcount checking code, BUG() on UAF related errors if
   CONFIG_BUG_ON_DATA_CORRUPTION=y (Jann Horn)

 - Add {over,under}flow detection for local_interrupt_{enable,disable}()
   (Boqun Feng)

 - Add kunit test case for max local_interrupt_disable() nesting level
   (Boqun Feng)

 - Clarify comment (Boqun Feng)

* tag 'locking-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irq: Add max local_interrupt_disable() nesting level kunit test case
  irq: Explain better on NMI_MASK overflow condition
  irq: Add {over,under}flow detection for local_interrupt_{enable,disable}
  refcount: Use CONFIG_BUG_ON_DATA_CORRUPTION for UAF-related errors
2026-10-20 12:43:05 -10:00
Linus Torvalds
cb95904b47 Scheduler updates:
Kconfig updates:
 
  - Simplify PREEMPT_DYNAMIC (Mark Rutland)
 
 Fair scheduler updates:
 
  - Remove redundant RUN_TO_PARITY check (Elif Topuz)
 
  - Declare augmented callbacks per field, fix rb_add_augmented_cached()
    descent (Yiwei Lin, Peter Zijlstra)
 
  - Restart fair hrtick after same-task repicks (Shubhang Kaushik)
 
  - Improve the scheduling latency of short slice tasks (Vincent Guittot)
 
 Deadline/RT scheduler updates:
 
  - Check start_dl_timer expiry with ktime_before()
    (Liang Hao)
 
  - irq_work: CPU-hotplug improvements on PREEMPT_RT (Sebastian Andrzej
    Siewior)
 
 Energy-aware scheduling updates:
 
  - Implement the steal_governor, introduce preferred CPUs and
    steal-driven vCPU backoff (Shrikanth Hegde)
 
 Multi-processor load-balancing updates:
 
  - Enable preferred SMT siblings on NVIDIA Olympus (Andrea Righi)
 
  - Randomize equally shallow idle CPU picks (Christian Loehle)
 
  - Remove redundant core_sched_seq (Hui Su)
 
 Cache-aware scheduling updates:
 
  - Avoid publishing partial LLC utilization (Jemmy Wong)
 
 NUMA-balancing updates:
 
  - Reset NUMA fault locality after scan period update (Eric Kim)
 
 Proxy execution updates:
 
  - Ongoing work to implement sleeping owner handling for proxy
    execution (John Stultz, Vasily Gorbik)
 
  - Preparatory steps to make sched_ext compatible with proxy
    execution (Andrea Righi)
 
 Scheduler infrastructure updates & fixes:
 
  - Remove the RCU wait from PSI trigger destruction (Shakeel Butt)
 
  - Avoid modifying wait-entry on failed priority registration
    (Hui Su)
 
  - Use the new static key API for sched_feat (Hongyan Xia)
 
  - Convert paravirt_steal to new static key APIs (Hongyan Xia)
 
  - cputime: Don't account idle time twice after dyntick-idle
    (Stian Halseth)
 
 Scheduler debugging updates:
 
  - Set TIF_NEED_RESCHED before calling __trace_set_need_resched()
    (Sechang Lim)
 
  - Fix context analysis errors in non-preferred CPU push (Shrikanth
    Hegde)
 
 Misc cleanups and fixes by Christian Loehle, Shubhang Kaushik,
 Thomas Huth and Vladimir Zapolskiy.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUomIRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1ik+Q/+Jx0tXmwOm/wk1ba50zz/tkUL17APJzD1
 0TdHSf0sqssyVnQVmGBNWoKfp30zzrnd8Yf46PH5kUmyIxX0LqazAXsPA/0lxAY6
 jB2b5ZGosyQQPqyjM1q48K/BMB+GGO9xDKlFxxkBsICi+vS+6diBzXM70xla9M4O
 CcAO5DHb50otN/TljfnkmbxG7vgssCVZyS7XG6bSyhd6tUrcr4DVD7gYOMbSVcaL
 8Cgu+b54rOAcrcWU1454YKHI5etUOTjblCbFgISrdw7lwf4dKVtTAKSanFX9n522
 q9sQ1vzuRz6JfSak9nxFkCy5SMjuHJ53DkVNR4eUXNmM0tHdAcVd8jOexmQVBrug
 Yjloo/WydUqGT2TYYEVQPi4J+jMqMRyDIp3TL9UuQjwcjHRnUpd8EVmoNme0TOi+
 e3SoS+xOSVBLgbMFwrjJR/tQuqDPjgBrgIyg8wL+ed5cY6Equ+J3467wp8lO7RBN
 uGwChvxQAOaMlkh5tIR38Zjq9kzs79y85vz3uD2SNk17TcvijVw9UsmQKfAkpdZo
 5FUDM2AdyOhOtZkzMNLHfjjBLSMVCBRo726c6WbELibhuWN7xTAJSJx8o8JNOCrC
 vOBcNNAHpU7BwqA0gFIA3lL1uMXvKn9npKKjnB2C4WxhFGf23NF6uPapyA4sMZ00
 YwRGvOeDvu4=
 =cPCx
 -----END PGP SIGNATURE-----

Merge tag 'sched-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler updates from Ingo Molnar:
 "Kconfig updates:

   - Simplify PREEMPT_DYNAMIC (Mark Rutland)

  Fair scheduler updates:

   - Remove redundant RUN_TO_PARITY check (Elif Topuz)

   - Declare augmented callbacks per field, fix
     rb_add_augmented_cached() descent (Yiwei Lin, Peter Zijlstra)

   - Restart fair hrtick after same-task repicks (Shubhang Kaushik)

   - Improve the scheduling latency of short slice tasks (Vincent
     Guittot)

  Deadline/RT scheduler updates:

   - Check start_dl_timer expiry with ktime_before() (Liang Hao)

   - irq_work: CPU-hotplug improvements on PREEMPT_RT (Sebastian Andrzej
     Siewior)

  Energy-aware scheduling updates:

   - Implement the steal_governor, introduce preferred CPUs and
     steal-driven vCPU backoff (Shrikanth Hegde)

  Multi-processor load-balancing updates:

   - Enable preferred SMT siblings on NVIDIA Olympus (Andrea Righi)

   - Randomize equally shallow idle CPU picks (Christian Loehle)

   - Remove redundant core_sched_seq (Hui Su)

  Cache-aware scheduling updates:

   - Avoid publishing partial LLC utilization (Jemmy Wong)

  NUMA-balancing updates:

   - Reset NUMA fault locality after scan period update (Eric Kim)

  Proxy execution updates:

   - Ongoing work to implement sleeping owner handling for proxy
     execution (John Stultz, Vasily Gorbik)

   - Preparatory steps to make sched_ext compatible with proxy execution
     (Andrea Righi)

  Scheduler infrastructure updates & fixes:

   - Remove the RCU wait from PSI trigger destruction (Shakeel Butt)

   - Avoid modifying wait-entry on failed priority registration
     (Hui Su)

   - Use the new static key API for sched_feat (Hongyan Xia)

   - Convert paravirt_steal to new static key APIs (Hongyan Xia)

   - cputime: Don't account idle time twice after dyntick-idle
     (Stian Halseth)

  Scheduler debugging updates:

   - Set TIF_NEED_RESCHED before calling __trace_set_need_resched()
     (Sechang Lim)

   - Fix context analysis errors in non-preferred CPU push (Shrikanth
     Hegde)

  Misc cleanups and fixes by Christian Loehle, Shubhang Kaushik,
  Thomas Huth and Vladimir Zapolskiy"

* tag 'sched-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
  sched: Replace nr_iowait_cpu() with a bool accessor
  Revert "sched/fair: Remove dead code on enqueue_task_fair()"
  sched/cache: Avoid publishing partial LLC utilization
  sched/cputime: Don't account idle time twice after dyntick-idle
  sched/psi: Remove the RCU wait from trigger destruction
  sched/eevdf: Remove redundant RUN_TO_PARITY check
  sched/wait: Avoid modifying entry on failed priority registration
  rbtree_test: Use rb_add_augmented_cached() for the cached augmented test
  rbtree: Update augmented data on the way down in rb_add_augmented_cached()
  rbtree: Declare augmented callbacks per field with RB_AUG()
  rbtree_test: Use rb_add() and rb_add_cached() for the basic tests
  smpboot: Don't park the thread if work is pending
  irq_work: Flush lazy work CPU down on PREEMPT_RT
  irq_work: Update a comment regarding CPU hotplug invocation
  sched/topology: Add asymmetric SMT packing override
  sched/fair: Honor asymmetric SMT priority in idle selection
  sched: Set TIF_NEED_RESCHED before calling __trace_set_need_resched()
  sched/core: Fix context analysis errors in non-preferred CPU push
  virt/steal_governor: Enable the driver
  virt/steal_governor: Implement steal_governor policy loop
  ...
2026-10-20 12:35:35 -10:00
Linus Torvalds
4a8bdffce5 - Enable dynamic TDX memory metadata allocation (DPAMT)
- Allow more flexible quote buffer sizes
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmrWRlsACgkQaDWVMHDJ
 krB8sxAAky5L4EoTfEip2WALRs/OjdjKmRioBBfPRjJzoOWogIKTHwf/62sKJeh7
 1BXh1qh7KHj1qLT7eU7+c2j4BllJrR30vS+XYZgjd2cNsU0gcALx1HZ1i3z2cskA
 A5Te5TGD56cmFgu3+EEKeEyBqP/bPaFkpiRokne4V4dT7zBI1kmgNI+2R2SzdJ0o
 bgNWnBh7ev6XmTCnEdRgdRiLFwIyl+xytZMk+caX3Uqd8BAJmzeqgfcf1frATPZ4
 ig8GkR8XhoM8ltDfRDdVr4vaNQEpv0Q/a9J6Q2yG6XqHK3UuEXu28v677922Sy5T
 XSvDBnPQBJ6bt3DYXffsHo0GMxFOohoymwek8gElNIih5Ixeit4mDjnJlvIcY5CO
 Xyi5wrCC1FhwqkxUg4iZ6zeLVam5IleR6WvOGJIieOhR3sStp+AJlJ9PzxOzDoVE
 KEFjFIjjN6uFpJxCAj1kUEb/KEt+ljqPi+reOvofB+ZDNj/o3Q6diJpqNEtd8apF
 +Zpce1exON6OHgtM2488aGZSrXLj4e64LLB1JARztZ8GIYXq/j1qIZitnrxExkXc
 nUyqm+eMdi7SnAcEjTck9uE3cPkiNbA2hnhtfxOyqgAL5gHXbFPPk4OcYxl5ej7Z
 26kpRBngriD70JP9QuMOqIuwn+cDZVUAJJSvCHu7YnPX3utSlJo=
 =cgAD
 -----END PGP SIGNATURE-----

Merge tag 'x86_tdx_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 TDX updates from Dave Hansen:
 "There are two high-level things going on here.

  First, TDX host systems currently consume ~0.4% of physical memory for
  their own memory metadata. This is all-or-nothing; you either pay the
  0.4% or can not use TDX. A new TDX module feature (Dynamic PAMT)
  allows this metadata to be allocated for 2MB of host memory at a time.
  This, of course, saves precious DRAM when TDX utilization is low on a
  host.

  Second, the TDX ABI has fixed-size "quotes" that are passed around
  during attestation operations. These 128k buffers are far too small
  for post-quantum cryptography where the quotes grow substantially. The
  TDX module now has the ability to enumerate the sizes of the quote
  buffers. Plumb the new size enumeration into the kernel"

* tag 'x86_tdx_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  virt: tdx-guest: Make the Quote buffer size dynamic
  x86/tdx: Add a helper to query maximum Quote size
  virt: tdx-guest: Add a helper for the Quote buffer size
  virt: tdx-guest: Calculate the Quote buffer size safely
  virt: tdx-guest: Give the Quote buffer an explicit type
  x86/tdx: Take the Quote buffer as a generic pointer
  x86/tdx: Restrict attestation exports to the tdx-guest driver
  virt: tdx-guest: Remove unused and confusing function argument
  x86/virt/tdx: Formalize SEAMCALL leaf version encoding support
  Documentation/x86: Add documentation for TDX's Dynamic PAMT
  x86/virt/tdx: Enable Dynamic PAMT
  KVM/TDX: Get/put PAMT pages when (un)mapping private memory
  x86/virt/tdx: Add APIs to support Dynamic PAMT ops from KVM's fault path
  KVM/TDX: Allocate PAMT memory for TD and vCPU control structures
  x86/virt/tdx: Handle multiple callers in tdx_pamt_get/put()
  x86/virt/tdx: Allocate refcounts for Dynamic PAMT memory
  x86/virt/tdx: Add __tdx_pamt_get/put() helpers
  x86/virt/tdx: Allocate page bitmap for Dynamic PAMT
  x86/virt/tdx: Simplify PAMT layout calculation
2026-10-20 12:17:47 -10:00
Linus Torvalds
568b4576b2 - Fix void/int conditional in pgd_clear()
- Fix spurious warning on __add_pages() failure
  - Make W^X detection actually work
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmrWOvAACgkQaDWVMHDJ
 krC2WhAAvgIOB3GuT6QDDGB06yRiId6H+c4/dk9N5RR8pYidLpwegjBRQ7fhn3bc
 CvTApl6U2/TycK1Xp+79/OdSJ/Amb1uNI9rDQ9Xvhr31QoEJRHktPjlbd2Bx6YLm
 36SihluqzaMg1+XTvTbU0B/WB3GqqV0mGlIIAzjHusQfOea6lsAgS1REOmkob7Yf
 Pwf1ysZPkF9JBvundDrbr5c5lX6c04yEWKj3IbniKPRytWnjFyQJwilQvMkQFBaS
 lJ0YX5+T36M6BsHeUCSf0YVmHEwbS1/40+DsQrT+/PEQgaTziJSp6L29ufTc/7j8
 vAKsgWqmHBQ9hPpTkdvEnFi+JtxQUR1KTPUYL5fTJ3iVHdc3tm9iGL88chwnKSbS
 fUyZ1sWavbjMv2NpWbTpSsLc9SIz0k4YgUl6p9lJ+iQhCpxCKnc9THSQeFMeROch
 sDTChF4rayjx5kEVkswZa6163cXvDKLkWsLPMOcbnTp+XCAWmSxjXWOzEbeqOXdQ
 bgc3bHy7k/GFSmO3NfT+Y4itl7yExXW6CjQbFxDCugVMlrnOieiE+hPmjCLY9CKh
 5g9DsFWuWMPWN21NvKNT+nMF4I3rBw0Sx8KFCgdgLEW35TJQgQGbd21Gx6FnMY+5
 0hOHEMh/crdy1ODsVZ0FuIgCPr5k5EZoLNeQg8KoG9RgHYMDa4k=
 =/nUk
 -----END PGP SIGNATURE-----

Merge tag 'x86_mm_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 mm updates from Dave Hansen:
 "The __add_pages() and pgd_clear() ones are pretty mundane.

  But the W^X ones are worth calling out. Effectively, the checks that
  were supposed to be looking out for Write+Exec permission mappings
  were busted. This fixes them, so we should all be on the lookout for
  new warnings, both false positives and real ones.

  Summary:
   - Fix void/int conditional in pgd_clear()
   - Fix spurious warning on __add_pages() failure
   - Make W^X detection actually work"

* tag 'x86_mm_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/mm: Fix spurious warning on __add_pages() failure
  x86/mm: Fix void/int conditional in pgd_clear()
  x86/mm/pat: Use pr_warn() for early W^X warnings
  x86/mm/pat: Fix effective RW computation in lookup_address_in_pgd_attr()
2026-10-20 12:07:29 -10:00
Linus Torvalds
09789bc9b1 - Refresh old_microcode defines with the May 2026 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmrWNCsACgkQaDWVMHDJ
 krBILxAAgdYbtMZTxtR7vFEstQ+vihlfUu2gNbZANFUIluhQBpItWyl+2+tYrvsk
 XJ2j9MXPO5uc90XceBF/3I2x4gk3tzik3Pw+ImfzVJTM/NK/b6B/ujXGoul79syO
 ozolQgK3LR4YwcMxdrSH7eljyfxKTP4fAJjay40EEuU2be7DWfSVZPlV8SNio+ng
 rtbmjShXe9QldmmmSYFajCWP727EcR00UMgVoRkvgaxCrF3u+1yGM7ZGBGsy+70k
 Ge9ATBYXH6enNhpHU3svDB7KSC+7TNQLjTvfVd+X84Rlq/uoyzvpN+Bb9//UBybT
 UDhGaram5EkffffXZWw5vZgDgz2mIBB1boT3zj2mbYaquePuCB9GezgcdnM/x0Vx
 LzcQcMGsCC6TFnCtcHlyMMujj+Smuc2ZiGt57nq7fjeGgrHWEhnpnlt5zQrZ2rqD
 Zh3L1OxFmRD7Q4o8eW4p8czH8aA+JewWNrh74LMnjWVUYOc2Bg2xO7Nbd1YbmlGf
 p8WhaQuPkhpSyi6kYpdG7opgHvlXP2FZuHNQet+OaxDUlnntOwqVIuf6ANhMdbxJ
 UECSYrymrG4ruT9m3pLx/KjpYmiQ/gqekfi4gIecOQc+x/72V86SeVtZrZOHZMoG
 cFg+l+SfxB2YsqzEDoAVr6Yrnk5/rnt//ylLwmIrsR1ZvGB4QgQ=
 =hpLB
 -----END PGP SIGNATURE-----

Merge tag 'x86_microcode_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 microcode loader update from Dave Hansen:
 "This one simply brings the 'old microcode' list up to the May 2026
  release.

  This continues the policy of intentionally lagging Intel's releases by
  roughly six months, so when the kernel complains, it it for _really_
  old microcode"

* tag 'x86_microcode_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/microcode/intel: Refresh old_microcode defines with the May 2026 release
2026-10-20 11:55:19 -10:00
Linus Torvalds
5d92881a85 - Resolve NR_CPUS versus NR_CPUS_DEFAULT confusion
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmrWMUIACgkQaDWVMHDJ
 krAyKw//fep0gaWaIVQnn9l18CVwW+awSCUVPhg4+NdHnWr1yb5iPK+ihh5gEreC
 nW96Ni0vrkq8qdDZ298EbUxbwtmV6/+HnDo4SyuUMBdNOEUxtkr5QZdACBQHwk0J
 bb3BOwtopCmC1JTOEERjUnMDxG4KAzBomq+ls3ByOkvoMsSwCwb8N57BdRSCbGVf
 2dLzDpUHF0jvwsARFFjrpWLzitiCPobuDlymy6zyat/9ivKDJs4V6B3CuWjaxFU2
 tydl5i2JrcaYog+DZwX2ijZkZ/lfPFpM+bX/s8e2HQqcb9xMrbvXMJtrdqrNe+D/
 3AjEL0m0wNNieJcT1dLP/+FMqUTg7IODXWx1lO3u7CjOL7vwkhHwiAPaqO/3VNeq
 o7Cjloa1PbdPqIyCzlUJ+/mW2Ze6xe/1tATo7i9HqbCo0HouIICmII2H4/vDc4aK
 wkuISoi0NfJPNjmxogmBzep0yKFkzBc7BGQgOO+QjMZyan0+NnoKaAaiNSXmTsaK
 VeyMJWgoYmFWqUnNe7RLBwi4Qp+iL3lL1N4zpWRP9w+zYEPZb2hivg3/BcqG1qAj
 ITYyHNz8sgev6//JcQzGbuL3ODYd9FAiAkQH/0q1IKFX5Mlvr1LOlBu7LVn7IDH9
 0hQNG4j6HH1bqLGNhA3+oLDiiDOO7DcMXrmM8WUbor9mhA90ZXU=
 =IH9T
 -----END PGP SIGNATURE-----

Merge tag 'x86_kdump_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 kdump update from Dave Hansen:
 "Some kdump code is using NR_CPUS_DEFAULT as if it were the actual,
  in-use max number of CPUs. Move it over to use NR_CPUS instead.

  I suspect this one being in-tree for a few years means that the vast
  majority of kdump users are on distro kernels that don't drop NR_CPUS
  below the defaults"

* tag 'x86_kdump_for_7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  crash: Update stale NR_CPUS_DEFAULT references in elfcorehdr sizing docs
  x86/crash: Reserve elfcorehdr for CONFIG_NR_CPUS, not CONFIG_NR_CPUS_DEFAULT
2026-10-20 11:52:48 -10:00
Linus Torvalds
0e135910de - Report in sysfs which SEV confidential computing features are enabled in the
environment so that related components like a SVSM can query them and do
   appropriate configuration
 
 - Add support for a new AMD SEV instruction called RMPOPT which can be
   used to reduce the performance overhead of doing confidential guests'
   page ownership verification and the like. Work by Ashish Kalra
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrW+UAACgkQEsHwGGHe
 VUpD1RAAqJsg5eamoy1waV2KHgACUSCTfNJFtHQ+GnbH9oHEnZidjHQABpZi9g7y
 3jJh1dCol3/pIJDyP1X3iIJsQPtV9yh58UCe/JLlARa89hHj+oSElYHqj6uhI8nz
 MyNpKwHXdNPgvCRi0xWgEBeva1+IT9uzHkEpqoAxU0/czxHkaqhQy9TTQxdSP9A6
 z0SEmvikZcTSwnT6NkhSzgZNYW7crHPVewE4c0OhB0EZHXKMnNOS7F/CYWltqnAL
 94xwlagwrtVRHi/CEJ2XczcRe6zAK4hXUEV/JUlnhTOYH0s2N3jixtNULV0dm6aI
 2f0h9HCVe4GFh+FIE8orabKt5xI5bWnfGJ3t2z/ARt70U9f+yI+nRJSboXdNGgTk
 lrzFlRM0zKZtD+nxLVybHhi5cHvypMZRcgAUI9bXsvXOKwSe7sueiLxoT7qFBX/2
 +YQs7TeWJkTe9oqHVkEDTRMoJzTKSwBZ+1PyDki7e+lZPucGbq/V6+yfnx+CUlAF
 KGEsEjrvDGuaAnIt7XH0t1RE/C3IZES9Oc7H1IpHwTdQ25k5gAiTEXdCkYjn1xDv
 qAaoQoPWRiDFSgh9Pf50MkkONIQvod1MiRJIjnMHBuTNUFQn63A3PJ0estHCvFic
 oCfn6e7QKBfB18xdoaoqcRRCCym056VwfOT38XgDwwnQPuqHTO0=
 =Hxx0
 -----END PGP SIGNATURE-----

Merge tag 'x86_sev_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 SEV updates from Borislav Petkov:

 - Report in sysfs which SEV confidential computing features are enabled
   in the environment so that related components like a SVSM can query
   them and do appropriate configuration

 - Add support for a new AMD SEV instruction called RMPOPT which can be
   used to reduce the performance overhead of doing confidential guests'
   page ownership verification and the like. Work by Ashish Kalra

* tag 'x86_sev_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/sev: Report MSR_AMD64_SEV in sysfs
  x86/sev: Do RMP optimizations on SNP guest shutdown
  x86/sev: Perform RMP optimizations asynchronously
  x86/sev: Initialize RMPOPT configuration MSRs
  x86/sev: Disable CPU hotplug while SNP is active
  x86/cpufeatures: Add X86_FEATURE_RMPOPT feature flag
2026-10-20 11:31:05 -10:00
Linus Torvalds
84568b9b5d - Remove code for a no-longer supported Technology Systems 5500 board
- Use named initializers for struct acpi_device_id in the OLPC platform
   driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrW8foACgkQEsHwGGHe
 VUqvHA//XSgeJn/exIg0B+ImQW3pI5LWh/JgYWlhsXCwnGqVKvOIypEavkHvE8kd
 dCRCGZL9JSgXF4Me8L7GSv+6ctiSdV1UlcazvcfYE+J85Kk5PyI+R3CB7i+OEjmP
 zRk4laIPhqRmhXHH9XTh9OQXBFoITlmGQHe34AusgWRsrjgO5D0UxmLF9tG8BHoq
 yhnKBHr9NRgptVVW5bY4DFJpPneLzf/6+jMNuE5ID6hByx6YsCRiI9+dAeHpLdZn
 9Dn/aI3D2XETOB1Nj6dE54SA5bxBo84Qtey07BNa1HHAaoSbkZO93iIDPfNwUeTs
 vasDwacRg3GpL2WV74cNhaXFYjR2O3IfxbBS0f26cbSD/RrndY/tDevaWjD/QZQ2
 Y4VwJOY0WlXkN+mMIVddAvidjqdQWkPGvvbQ/RmGNgr5C8yLBigivogX91a9lA/t
 mUWDc6W1pBDsMZFVkNVFTfyZXTXfHrNIv/upCFt5MIzOjIFbri61WSQ7Ib0hjPwe
 eh1WUCwfF89MYLNzUKGIDuf21520P8n/V5k1uJeIPJnNX07gqzGifLnRHpoU7gwD
 WkAzk/qpLpUOIMGdbpWAtCPMyCbqO3KxDhKGKe4yhJBueyshIfg/MeXy+rm8nob8
 MuWAXlgJATU8vTkQzMrE33f5EGeSDMZWwMQds4Yxwru2HfVdgI8=
 =Jq26
 -----END PGP SIGNATURE-----

Merge tag 'x86_platform_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 platform updates from Borislav Petkov:

 - Remove code for a no-longer supported Technology Systems 5500 board

 - Use named initializers for struct acpi_device_id in the OLPC platform
   driver

* tag 'x86_platform_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/platform/olpc: Use named initializers for acpi_device_id
  x86/platform: Remove Technology Systems 5500 board
2026-10-20 11:23:33 -10:00
Linus Torvalds
dd8845db6d - Document and cleanup the signal frame handling with the goal to allow
process migration between CPUs with different FPU capabilities but which use
   only a common set of FPU features, i.e., think checkpoint/restore. By
   Andrei Vagin
 
 - Consolidate how XSTATE features are checked by doing them once during boot
   with the intent of removing cpu_has_xfeatures(). Latter will happen in the
   next cycle. Work by Eric Biggers
 
 - Other cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrW6K8ACgkQEsHwGGHe
 VUqFJg//WXn5Lu71l3TnoucbDjvdKoTvYH1zwrvxJirPsWK5+12Hvr2psTwh2GPF
 6xEYJJEJHMt5VzSo+vjA5aHwqZOFhgQefBEpZqzgWYUBZ7q0ALsGbVzF1iVYNRTW
 MHYg8V7OMdlq6mgB06sdTJbIG+EfiQch2EiefMK7PdBa+fU2oxBMbSDvCPl537ug
 yF6+Qv/sKDKPZdZNvA6d5Vy/k0UpV4Cd1YyWhFjJtiYU1bSBjL1AazM5b9qMbl4E
 t2hlZ+Agi7yucsoZ+tD1IMJsjYyRByZPPQAGNvqZv1YOYWp6LnbHi8cKSpY+N8zS
 RnVao7PkfyZzjcV0q4fYpzzGIiZZWwpa9k1y98F7MBVEi7hWG5VaguNDI6+2xvs8
 FQDNGG1TWtjPltgxsO4ouy2QzbrwzRiWfpP2YHAx5BsYUue5IFeIF3LlwPz0pKz6
 2tfsIuMQe5kr43Q3g/LwJuaISLS0rhAXXPceWI8Oiz+sJSsjadnQgOG/tLyySfpF
 Kea3OIexbpzQ+DtaxQXzPeGp80sOdG9QontV1Ce4HpieWizKSN3ggqcbhae3aUlh
 P0fGALhhlLZFpwkyRkcCbRcyu0yrCaNmfwG9KWa4gajGVCfr9Y/WvyBhsT7nTfaQ
 +ngSKg968mDmgdD0SwJ/ejpJg4cGeAAMj7q/VN15qUlEgomkTEg=
 =OJI1
 -----END PGP SIGNATURE-----

Merge tag 'x86_fpu_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 FPU state updates from Borislav Petkov:

 - Document and cleanup the signal frame handling with the goal to allow
   process migration between CPUs with different FPU capabilities but
   which use only a common set of FPU features, i.e., think
   checkpoint/restore (Andrei Vagin)

 - Consolidate how XSTATE features are checked by doing them once during
   boot with the intent of removing cpu_has_xfeatures(). Latter will
   happen in the next cycle (Eric Biggers)

 - Other cleanups

* tag 'x86_fpu_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/fpu: Remove additional remnants of math emulation
  x86/fpu: Remove unnecessary checks for X86_FEATURE_FPU
  selftests/x86: Add tests for signal frame FPU portability
  x86/fpu: Pre-fault only required size of xstate buffer
  x86/fpu: Fix potential underflow in xstate_calculate_size()
  x86/fpu: Document reasoning of FX-only fallback
  x86/fpu: Extract restore_from_ia32_fxstate() and clean up fpu__restore_sig()
  x86/fpu: Clean up and rename variables in signal frame handling
  x86/fpu: Document signal frame layout and portability
  xor: Add AVX-512 optimized xor_gen()
  xor: Remove redundant X86_FEATURE_OSXSAVE check
  lib/crc: x86: Stop using cpu_has_xfeatures()
  lib/crypto: x86: Stop using cpu_has_xfeatures()
  crypto: x86 - Stop using cpu_has_xfeatures()
  um: Check for missing AVX and AVX-512 xstate bits
  x86/fpu: Check for missing AVX and AVX-512 xstate bits
2026-10-20 11:03:51 -10:00
Linus Torvalds
42e6e6a6ff - Rework early CPU features detection code to handle a case where recorded
CPU capabilities are temporarily cleared in an interruptible region. The
   practical implication of this lead to, for example, KASAN complaining due to
   5-level pagetable support disappearing intermittently; by Ihor Solodrai
 
 - AMD Zen5 started reporting TLB sizes as multiples of 32 so adjust the TLB
   sizes reporting code to consider that
 
 - Return the proper retval when trying to enable user shadow stacks
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrW4dsACgkQEsHwGGHe
 VUqz6g//Rq7VGkkJDJi/mJayrTOaaC9relkWPENz52uY2L9WMO+JEbMCMZZy1qaZ
 E62uAJgE1KJC+CBQma/ZqkzPUSUFMEdqyY6rlOAxbr1FBeQoo/r44u0Sg2m8apbd
 pXqJs1vVZeT6/QWr54f4bcIcPhKdAjk6n4JmMFsTUiRFQ/9QhzjI31fshE0Ay3OM
 2RrHTwUIZFtnKCiKg8BH5L8rv9gIupHwRBeF9gu8H7sXkVbzjlm+90hypmaKN0hB
 A/pExvfN+7t/8aLZFSJbjMzdih0OZfkNGeLr5BZAOMO9UmvSBbZD9QfedbqGcb5t
 VcKAK4ulKwdKH2anI69ddzMwMFsca6EzuorNRXjtpT7TFC62hBiVJ6/9AX9gcNQ9
 2G09wfcb6Pf4UndHJMYtb/BeWJ7b6Ar75jGktlm64LTwkdnLPELcJH4DUHCsWk4i
 /rvstNOinhTDr2dZ3P4TcwaoTcUwYCmfP0l6m1Eg7j5d4g1JDyiIN1wqfZlH735c
 1zlP/Kt7A52qOdms/9fCKvMYt+S20qxZuUgZJM/aBtXPNVd89iVwDmC303Xx6Ko3
 bKGi50SbrTxakKb1APLOK+NtUEboUz4Lgm3R7dAjoRopiJtr5qWX3PdCXSekix82
 tuW/x5EHTidrtZhr55Cwk9/lJ9wrsnzlP6nwEwc9iruT99ph33c=
 =jQ60
 -----END PGP SIGNATURE-----

Merge tag 'x86_cpu_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 cpu feature updates from Borislav Petkov:

 - Rework early CPU features detection code to handle a case
   where recorded CPU capabilities are temporarily cleared in
   an interruptible region.

   The practical implication of this lead to, for example, KASAN
   complaining due to 5-level pagetable support disappearing
   intermittently (Ihor Solodrai)

 - AMD Zen5 started reporting TLB sizes as multiples of 32 so adjust
   the TLB sizes reporting code to consider that

 - Return the proper retval when trying to enable user shadow stacks

* tag 'x86_cpu_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/cpu: Don't transiently clear the boot CPU's capabilities
  x86/cpu: Move 32-bit SEP setup into identify_cpu()
  x86/cpu: Inline generic_identify() into identify_cpu()
  x86/cpu: Initialize boot CPU cpuinfo defaults early
  x86/cpu: Factor init_cpu_info() out of identify_cpu()
  x86/CPU/AMD: Fix Zen5 TLB sizes reporting
  x86/shstk: Return the correct error value when user shadow stacks are disabled
2026-10-20 10:38:57 -10:00
Linus Torvalds
1bd2400fba - The usual pile of cleanups all over the place
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWxsEACgkQEsHwGGHe
 VUpORw//ewNN98w+vxSwE5a6gyktne4q2SXaF9h6ictnyx4BIG0BxDFj5m2WD0pd
 hRyiRA5YR9i6L8c2plHBoiho1PGMq+B61mJk/nNua+SUrC9CX3aC3iXZd2NoZIp7
 5BcgqmXzxP1kJcSUJPc7PX3PDUFpsfCvKqb0R4ILP1ieE5CRqsTrRcHqQpifDUgz
 zNq1EP4r5F/ckBSjKByRX/NA+x55S4iC7byaONJNs3KkJ2HXy9a6q9BXL3D8oRTP
 5jtGEApNlbr8f8pZuDVGO/Jta9ideTVE+LmaHV6vMTK2b3ZvXBigc2LIWp7os2JX
 8lVcmeqYdOnOavZSwEBKdmpOndfBJScgGXqxoFnqfWSW+tNUL0nCaYglai1HwEIl
 wy7eqGHCRaZlB2rV6cEnXXHfLcJBaFjd2MeLO3G8FqcKI/EStUd55wIP0j3A1KKA
 BidwLdFoCKWDyr1tGy2eRkFyHPvvtQfmBq9OJTnSu7LCegHLu443GwMi+xEZ726g
 3no4d70iJff3xQeaqQeCir0gk1IEf7w0P03LHPXXUa5D8S0sVafBif6oAydwU8E0
 Vx/WvjwPtbU9snMiKlOwT8vHk4TTVt9PKLqar1KlEu/lPpQpvMldKKV3XeQ17kkj
 0AvZbnqfsPkvWPMRNTWCUZ348q/1CDIXxiFalJ2iBZXVZPy4e3c=
 =ShiB
 -----END PGP SIGNATURE-----

Merge tag 'x86_cleanups_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 cleanups from Borislav Petkov:

 - The usual pile of cleanups all over the place

* tag 'x86_cleanups_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/asm: Remove CR4 read fault handler
  x86/um: Remove unused <asm/required-features.h> header
  x86/cpu: Constify struct x86_cpu_id
  x86/asm/string_64: Remove unused linux/jump_label.h include
  x86/mtrr: Fix kernel-doc notation of amd_set_mtrr()
2026-10-20 10:23:12 -10:00
Linus Torvalds
5dcf33085c powerpc/align: use get_user_instr() for a user-mode instruction
fix_alignment() already reads the instruction with
copy_inst_from_kernel_nofault() when the PC is a kernel address, and
only uses __get_user_instr() when it is not.  That pointer is an
ordinary user address, so read it with get_user_instr().  On powerpc
__get_user() already does might_fault() and opens user access for the
read itself, so the only difference is the address check.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 10:14:13 -10:00
Linus Torvalds
52907f0e47 powerpc/signal64: use scoped user access in setup_trampoline()
setup_trampoline() writes the seven words of the on-stack sigreturn
trampoline with __put_user(), relying on the frame having been checked
when the frame setup opened its user write access.  It is called after
that access has been closed again, so each of the seven writes opens and
closes user access on its own.

Write them inside one scoped_user_write_access_size() covering the
whole trampoline instead.  Everything in it is a store, so a write-only
window is enough, and the instruction cache flush stays outside it.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 10:13:50 -10:00
Linus Torvalds
2f0bb47c00 powerpc/signal64: use get_user() for the single context reads
swapcontext and rt_sigreturn read the signal mask with
__get_user_sigset(), and rt_sigreturn also reads the MSR and uc_link
words of the transactional-memory path, each with one __get_user()
after an access_ok() on the whole context.

Make the helper get_user_sigset(), built on get_user(), and use
get_user() for the other two.  On powerpc __get_user() already does
might_fault() and opens user access for the read itself, so the only
difference is the address check, which these pointers pass anyway.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 10:13:50 -10:00
Linus Torvalds
cc3ff64abc powerpc/signal32: use get_user() for the single context reads
A few places in the 32-bit and compat signal code read a single field
with __get_user(): the uc_regs and MSR words in swapcontext and the
transactional-memory sigreturn and setcontext paths, and uc_link in
rt_sigreturn.  They are not part of a run of accesses, and either rely
on an earlier access_ok() or on compat pointers being below 4GB.

Use get_user().  On powerpc __get_user() already does might_fault() and
opens user access for the read itself, so the only difference is the
address check, which these pointers pass anyway.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 10:13:50 -10:00
Linus Torvalds
a79bb50808 KVM: PPC: Book3S HV: use get_user()/put_user() for the HPT fd
kvm_htab_read() and kvm_htab_write() check the user buffer with
access_ok() once and then move each HPT entry with two __put_user() or
__get_user() calls, with real work between entries.  Each of those
accesses opens and closes user access on its own, so the up-front check
saves nothing.

Use put_user() and get_user().  On powerpc the only difference is the
address check: __get_user() and __put_user() already do might_fault().
kvm_htab_write() holds mmu_setup_lock across the loop, but it already
reads each header with __copy_from_user() under that lock, so nothing
new happens under it.  The access_ok() calls stay.

This is part of getting rid of __get_user() and __put_user() entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-10-20 10:13:49 -10:00