Commit Graph

1486207 Commits

Author SHA1 Message Date
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
f3b035ba59 - Push down into arch code the rounding of bandwidth control user values due
to the different ways ARM and x86 report MBA
 
 - Fix task reporting for the default group for systems which support only
   bandwidth monitoring, aka Haswell vintage computing
 
 - The usual fixlets and improvements
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWwDkACgkQEsHwGGHe
 VUoLXxAAkPL5Hg2ZHbGK4p8XQcj+/rBQkpLYhR+QXqC0fIu4Xa3La6G3er941cO8
 Jih6DMUBPuDBgg+147DHu4KXpE9eZY0ZEb9cZ53imtmLTM6+lFZqi9oe0h5XDrIl
 fiPHI6dwLTkGAIGxpEf2CUamR6dUSMvuOu2ADxdB0z44wlmyY77QyjFLNyM9w/wK
 I3+I8U+m16RdQjbU+WmHC8dzmUNpAdK5Ya9EoVVO4nM3lYCaJjBkDzQhxkLeVDUI
 /JmF9iQDB2UP/MrEidm7uIi/m7w7GCiR82lI6V/IeOjZlVJ/8u6s7Vwk20LWU5qv
 78Q7ZTfhVHvqGSdM+i4pQe6ethrFt8/kkDqH/Yz+QZoAfGpKEML3XKJCQHPaOY09
 DN7MXrtsNxqby7ejZCALIWCGPTxjUcUzjOkMwinKBvw2xY+02QzPAunS+GEU8smR
 75d5/SWKvHTI9pFqkvGT4XzT/eVP3ZfnvZLoh1dI7wIhIbs3Z6UX1ZKnL2vi6JnE
 FpRpahd+SHx8NSx/Z+ZzlotBAqd82sV+FjxeBNaxkGAQRgD2etyufu7Dwy9kFNt/
 wajJxcnJMENh21Xn5Q31YoF/WoL6+xGvETsjr5U3AG276NLXdcB8URkcRExeo4j0
 10b3kiHra2aT4w4qjU1O5IKizUk4cFP44IPNuRnXQA7nC5jKCt4=
 =c84l
 -----END PGP SIGNATURE-----

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

Pull x86 resource control updates from Borislav Petkov:

 - Push down into arch code the rounding of bandwidth control user
   values due to the different ways ARM and x86 report MBA

 - Fix task reporting for the default group for systems which support
   only bandwidth monitoring, aka Haswell vintage computing

 - The usual fixlets and improvements

* tag 'x86_cache_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  fs/resctrl: Ensure default group reports tasks on monitor-only systems
  x86,fs/resctrl: Add event group descriptions for Intel Diamond Rapids
  x86/resctrl: Update documented unit for the "activity" event
  fs/resctrl: Simplify pseudo_lock_measure_trigger()
  fs/resctrl: Avoid extra call to strlen() in schemata_list_add()
  fs/resctrl: Factor MBA parse-time conversion to be per-arch
  arm_mpam: resctrl: Add pass-through resctrl_arch_preconvert_bw()
  x86,fs/resctrl: Add resctrl_arch_preconvert_bw()
2026-10-20 10:11:04 -10:00
Linus Torvalds
06ad059fbd - AMD Zen6's BTB has per-context tagging so there's no need for the expensive
SRSO SafeRET mitigation anymore; add glue to detect and handle that
 
 - Fix Spectre v2 mitigation reporting for RETPOLINE=n builds
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWtS0ACgkQEsHwGGHe
 VUp7lw//Yx9S9LO2wsEkztuCoCRAY/G8duz+3rsH6hknqH0GivYPJlURdIqvET2p
 Zk2YPvQ5vhAvcDFbfH/bRL2a70Fs7CGAxmXWmLtEWjVdlKu0J5xPGT4a9cynBGbt
 RQ2QECNUjmU/v92W3KVFTNtWZjZk5V1gFW3syHI3kqUJpVsHE1ja9y+bkwlt/mqL
 s/J4SiWpT8WdT4CVEifbfaDOkwXbQl+5Jz05RbEmwgi4gZcx3BJyuKe+qLpBH1qV
 qLSBerQdZJQMoNDd9Hr/Xlgv4Z5pJV27mKZBdisEs5v1LVFe5PdV3uqZgyTjzpax
 rCRDzUWyEmhZS3JtqnYiotmn5XDTHYFn2g/BiD7N04FMIUMJTcqYPQsGV1STZCnU
 h+N8X9tP/o6WDRNrzowBuCdd6j514UPbkJwYwB+E1Ts3A+s3K9dLoTupALA+2wzU
 3pszdb+1ylLn0ov54cR5C/5Tw7Ww4VXZnyFmDPxHRx2xVUM2RtL0LlAnLjFOgehG
 JWoyk3hoeWqrhkFJFKDgFpOjdRkZPTEpGbsYKCJ6FUaIugCwkSIQ6NWLc7HkhuHS
 889UECcr3hLVbjsABSclDFXTzNjIKKtQONoZHtRIh9E1+2YKzJkV81KXhUPSj5DC
 MUwHw6yOQzt60jHqUouQeIkT5UWnr9D//6movYV1lpBEoZv9J8M=
 =S3Gn
 -----END PGP SIGNATURE-----

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

Pull x86 CPU speculation updates from Borislav Petkov:

 - AMD Zen6's BTB has per-context tagging so there's no need for the
   expensive SRSO SafeRET mitigation anymore; add glue to detect and
   handle that

 - Fix Spectre v2 mitigation reporting for RETPOLINE=n builds

* tag 'x86_bugs_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/bugs: Fix CONFIG_MITIGATION_RETPOLINE=n mitigation reporting
  x86/bugs: Adapt SRSO mitigation to Zen6
2026-10-20 09:49:28 -10:00
Linus Torvalds
40082fb401 - Rework the early decompressor some and drop the version of panic() there
which used vsnprintf() supplied by the EFI stub even in legacy boot cases,
   where the EFI stub is not present. By Ard Biesheuvel
 
 - Fix unbootable VMs with CONFIG_PVH=y and CONFIG_KASAN_GENERIC=y where the
   compiler decides not to inline __builtin_{memcmp,memset}(). Force the
   inlining with the kernel's own __inline_* versions; by Mauricio Faria de
   Oliveira
 
 - Cleanups and fixlets
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWqywACgkQEsHwGGHe
 VUosgRAArTmZt7OyMOLFM9dPSzGStHUHmwkAEtpLxnPpysDmJmACqQzXInwVyGxv
 qT5plJJFlmDKaIYuX0MQZmVIg2EvoCTgBpX+ib055zzGE2H3B/xtO180v2FWjROE
 fwff+RR7TT6D5zESJJBcB+gR+x8fcxP1LnOw/CV6FmUCizm9n88qm35wdWEhpxBV
 Gq+7TCW/hY5dvXcUyCoEEdUBoGEH/0tEuIRqloRzLElPE03YqxHsCcgZwYsqrz3p
 ORod/OQN2fGhHK7/Kkk17eJEI2BvGPD6UClYuWjB4WGGR5+TBcywz6iqs9SFWJyM
 s7X10JyyayeEVKf6X7M3JmSKYTx4YPYsKgVfYQIZBo56g4qCEXOpaWoD3yTHMQBl
 fmweGa149ydAEd5rH3NKhucVbVm4G+R4veDgYymB88X6fgI8uSi1oLBXADlfAM4o
 KEIh8o9PMVU6ZpUoEHOK3d3OufhbQE3NSy5EzZ94SKKDbatJ4GXrIxpjX6S3pyDl
 HDI9aDbqOdZ3YeX+TNAOfFQgi/9NcHl9sS2pmZC4E9NpFTToneqOiFlxQCJVgqNV
 EzlSwf4iqtlD7Ied8LrS7gRzuW2ePQpDUjpPECHmNrSDtRs7g8rsaDqEKoY9HqlD
 SCiGATk6YP0/2VH1KoyJ+BtK4bCoQS16snX3Qb5Eo2iDnM03Zkc=
 =ZphT
 -----END PGP SIGNATURE-----

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

Pull x86 boot updates from Borislav Petkov

 - Rework the early decompressor some and drop the version of panic()
   there which used vsnprintf() supplied by the EFI stub even in legacy
   boot cases, where the EFI stub is not present (Ard Biesheuvel)

 - Fix unbootable VMs with CONFIG_PVH=y and CONFIG_KASAN_GENERIC=y where
   the compiler decides not to inline __builtin_{memcmp,memset}(). Force
   the inlining with the kernel's own __inline_* versions (Mauricio
   Faria de Oliveira)

 - Cleanups and fixlets

* tag 'x86_boot_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/boot: Drop unused implementation of panic()
  x86/boot: Move unaccepted memory handling out of the decompressor
  x86/tdx: Share tdx_panic() with the EFI stub
  x86/pvh: Really inline memcmp() and memset() to fix unbootable VMs
  x86/asm: Group inline string functions
  x86/asm, x86/boot: Carve out inline memcmp() into a separate header
  x86/boot: Remove redundant "cc" clobber in memcmp() and document it
  x86/boot: Use BASE_BAUD and DEFAULT_SERIAL_PORT
2026-10-20 09:26:29 -10:00
Linus Torvalds
95731ee131 - Fix local_{add,sub}() to support source immediates which are wider than
signed 32-bit quantities
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWlRwACgkQEsHwGGHe
 VUpW1xAArsoHFs2aQ8QP402yRuOHhe/nxkBNBRUB4DTjvCEoYqeh2iHjPQ8edM2/
 pQQF/z0+J9doXVfI1ZoOK6bg0Kem7mlkJQegs2196F666CxqeVrHVJxim5zBNtZN
 OiAKIWuzZYyu35ktYoiI5oG1vuGmS+61wtVY4JZIalH5FW5xarsX92oqfPNltI22
 y6dFfJbaGbh2fpnU02qObp21nIHkl+fflD1qGhB+Xq5CbFwGcjxeWrliDwk+kSUu
 HUHBi4zN09aolMSyb35FquVJfJYtiRnphubTfhru7OIvdPhe/FpVaQ11BbkhX9gP
 U7z7JlX+2O5MBjfEWr8+3DiC8cvH8HGVbVbysr4OpBsVNmU4Gbv3XwWbLhREk1h7
 /XqVDPW4zRcilA9y9V1fr3Yef2TiR14Owq9zkaRrFfLHDoUSklwjH7okIjlu++sO
 3yHZDHNhHVhjAjx6Adb5em7drn2kEQpis/Vbv+mrXPW1zevmGHaFG9P3R/4EJA17
 69CjjLAMitYvRwGBkk1WkCgQXMqpL48ixb/lY8rKYzobqQeaH97lINaS7cvT0uq4
 o/0CLPdj8PVKJN1Uuc8rwvvjzHqnfrMENO5AULbEwIY1KFmW723A5Ebt0bFY8M97
 Ou76PyOZBSHDNOAlYwvxsdIdQst1JNvkp7WNtjtq13Z+ToSBiOc=
 =BI6b
 -----END PGP SIGNATURE-----

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

Pull x86 asm update from Borislav Petkov:

 - Fix local_{add,sub}() to support source immediates which are wider
   than signed 32-bit quantities

* tag 'x86_asm_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/local: Support large immediate values in local_(add|sub)()
2026-10-20 08:35:14 -10:00
Linus Torvalds
ae171014b7 - Orphan several EDAC drivers: i82975x, x38, xgene, i3200. Those have been
receiving just drive-by updates and no one really uses them. At least there
   are no traces of usage on the mailing lists. So, with the advent of
   AI-generated fixes frenzy, and because no one can really test fixes on
   those, it is time to sunset them and point them towards the eternal happy
   hunting-grounds
 
 - Add a dummy EDAC driver with which the EDAC core glue can be exercised in
   a VM for the cases where one does not necessarily have access to the
   hardware. This glue should be extended with all the necessary functionality
   that needs and can be tested this way
 
 - Add an EDAC driver to reset bitfix filters in Intel hardware. Bitfix
   filters are a hw mechanism for tracking stuck bits in memory and CPU arrays
   due to, e.g., silicon aging. Those filters can become clogged by transient
   errors accumulating over a long system uptime so this intel-bff (LOL :))
   driver glue resets those filters on overflow. Work by Qiuxu Zhuo and Tony
   Luck
 
 - Export get_cpu_cacheinfo_id() for use by the new intel-bff driver
 
 - i10nm: Handle the case where hw disables memory controllers which leads to
   reporting the wrong memory controller when reporting an error
 
 - The now-usual AI-powered fixes and other misc cleanups and updates all over
   the place
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmrWVvwACgkQEsHwGGHe
 VUrXsRAAteG50/4VEksBuT4XiEx8HuNtP9Zec12ecpBqRartDKm3I/HiszvT7NT8
 Viqv3Rycdv4aE+oCw17ndK2+9w8kL9uY9UrF62MaXgq2VJUFEJzXS0LhNUq25Y6Y
 8ILyrhSEXvDplL2cDwuPX96I2aJJAdSAD1rxyHjzj6hufYgg5DIfxfWRKR3Qs9F2
 KnG3fxgxJZnT/9eo45Lo1y11r0MRUb8i5a3GNDGDtzP002H1VnOEcnis/BAyPNRR
 1U8cLk5Xx2x522NfhVrVj88YmQt+BQQpKdsNNP67ep2V1SIBjN3HR+GV7x0F1XXk
 q5DwfJWcw4qy9AaSo1/WecOt3cd68LA4DIj9alVM9j4ciWofw5zf8WlRqOaUZvSH
 n6tQECnzGWGs7EQIsPmE5xOwhrVBMDxNvra7NuImUJA/ArBoHnZpUURVygaWFone
 YEnufy2z9mDCi/ADqjqQGpkebYF7CxbqSPE5yUNe/0/fp1iWWZLVvLu1i75GoPxI
 yzvhwle5DUdrxCRzrlzD2Hsky7naFcBfNeARwZVMfO78LT7LopSmdKnx+qzQI3s5
 FWI88H5GN3QuROgJZ402SECWrQiRDMtE9VB6samqPdkIEsW7lR+mF8ZT6vMC6uza
 YujndnAZXQ3tZAuas2LuSqbo/Imr2+EL6LNPwMCLTfVQ14rcUxk=
 =dtPh
 -----END PGP SIGNATURE-----

Merge tag 'edac_updates_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras

Pull EDAC updates from Borislav Petkov:

 - Orphan several EDAC drivers: i82975x, x38, xgene, i3200. Those have
   been receiving just drive-by updates and no one really uses them. At
   least there are no traces of usage on the mailing lists. So, with the
   advent of AI-generated fixes frenzy, and because no one can really
   test fixes on those, it is time to sunset them and point them towards
   the eternal happy hunting-grounds

 - Add a dummy EDAC driver with which the EDAC core glue can be
   exercised in a VM for the cases where one does not necessarily have
   access to the hardware. This glue should be extended with all the
   necessary functionality that needs and can be tested this way

 - Add an EDAC driver to reset bitfix filters in Intel hardware. Bitfix
   filters are a hw mechanism for tracking stuck bits in memory and CPU
   arrays due to, e.g., silicon aging. Those filters can become clogged
   by transient errors accumulating over a long system uptime so this
   intel-bff (LOL :)) driver glue resets those filters on overflow. Work
   by Qiuxu Zhuo and Tony Luck

 - Export get_cpu_cacheinfo_id() for use by the new intel-bff driver

 - i10nm: Handle the case where hw disables memory controllers which
   leads to reporting the wrong memory controller when reporting an
   error

 - The now-usual AI-powered fixes and other misc cleanups and updates
   all over the place

* tag 'edac_updates_for_v7.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
  MAINTAINERS: Orphan drivers/edac/i3200_edac.c
  EDAC/skx_base: Fix ambiguous bitwise and logical operator style
  EDAC/i10nm: Fix mdev reference leak in i10nm_get_ddr_munits()
  MAINTAINERS: Orphan drivers/edac/xgene_edac.c
  MAINTAINERS: Orphan drivers/edac/x38_edac.c
  MAINTAINERS: Orphan drivers/edac/i82975x_edac.c
  EDAC/dummy: Add a dummy EDAC driver
  EDAC/ie31200: Disable PCI device when probing fails
  EDAC/{bluefield,loongson}: Use named initializers for acpi_device_id
  MAINTAINERS: Update Qiuxu Zhuo's email address
  EDAC/intel-bff: Report frequent filter overflows
  EDAC/intel-bff: Compute unique ID for overflowed filter
  EDAC/intel-bff: Reset bitfix filter when it overflows
  EDAC/intel-bff: Add Diamond Rapids support
  EDAC/intel-bff: Add stub Intel bitfix filter driver
  x86/mce: Add enumeration for Intel bitfix filter reset
  cacheinfo: Export get_cpu_cacheinfo_id() for loadable modules
  EDAC/i10nm: Fix Granite Rapids ADXL MC mapping
2026-10-20 08:14:43 -10:00
Linus Torvalds
303bff3637 Core features:
- Remove big-endian kernel support: CONFIG_CPU_BIG_ENDIAN has depended
    on BROKEN for a while, so drop the remaining code (BE hypervisor
    object, BPF JIT, assembly/crypto/library routines, endianness helper
    macros, selftests) and force a little-endian build
 
  - Add preemptible this_cpu_*() operations (read/write, RMW, xchg,
    cmpxchg and cmpxchg128) that no longer need to disable preemption
    around the per-CPU address generation and access
 
  - Preparation patches for implementing CONFIG_HOTPLUG_PARALLEL on
    arm64
 
 Memory management:
 
  - Treat faults taken by EFI runtime firmware as kernel faults
 
  - Clear PTE_WRITE for EFI_MEMORY_RO mappings (with hardware dirty state
    management enabled, this is not truly read-only)
 
  - Raise the default ARCH_MMAP_RND_BITS for 48-bit and 52-bit VA
    configurations (28/26/24 bits for 4K/16K/64K pages)
 
  - Implement clear_page[s]() using memset()
 
  - Enable BBML2 no-abort (a.k.a. BBML3) for the NVIDIA Rigel CPU
 
 Perf and PMU:
 
  - Support for HiSilicon's ITS PMU
 
  - Add support for some new events: INST_SIMD_ALU_VEC for Apple PMUs and
    a cycle counter for the latest version of HiSilicon's MN PMU hardware
 
  - A bunch of fixes to the CXL PMU driver to address pre-existing issues
    from Sashiko
 
  - Fix generation of PERF_RECORD_ITRACE_START records for SPE and ETM
    drivers
 
  - Reduce excessive stack consumption in the Marvell DDR PMU driver
 
  - Minor driver updates and cleanups all over
 
 Arm Confidential Compute Architecture (CCA):
 
  - Add an Arm SMCCC bus for firmware services discovered through SMCCC
    and move the TRNG and CCA guest (TSM provider) drivers onto it,
    removing the dummy CCA platform device and adding a sysfs ABI for
    Realm guests
 
  - Move the Realm Service Interface (RSI) code out of arch/arm64/ into
    drivers/firmware/arm_rmm/
 
  - Add the host side of the Realm Management Interface (RMI): detect,
    configure and activate the RMM, add SRO support and wrappers for the
    Realm RMI commands
 
  - Block hibernation (new arch hook in the PM core) and kexec while the
    RMM is active. To be revisited in the future with proper support for
    deactivation
 
  - Handle Granule Protection Faults (GPFs) taken by the host, caused by
    accesses to memory delegated to the RMM. In a future patch, the
    exception table lookup will be limited to is_kdump_kernel() cases
 
 MPAM (Memory Partitioning And Monitoring):
 
  - Add support for the MPAM firmware-backed (Fb) interface, allowing
    MSC accesses to be mediated by firmware
 
  - Fix a list of theoretical issues with the driver (MSC access error
    propagation, MBWU monitor save/restore and locking, resctrl class
    handling, error interrupt restore, maximum number of PARTIDs)
 
  - Add the mailing list and a missing file to the MAINTAINERS entry
 
  - Document when to set arm64.nompam
 
 Errata and CPU features:
 
  - Add the NXP i.MX8QM/8QP workaround for the Cortex-A53 cache coherency
    issue (ERR050104), using a new ARM64_CPUCAP_SOC_ERRATUM capability
    type for SoC-level errata
 
 Miscellaneous:
 
  - Mask debug exceptions (DAIF) around the hardware breakpoint register
    manipulations when called from generic kernel code
 
  - Don't zero the SVE state buffer when the SVE state is live
 
  - Return -EPERM instead of -EBUSY from the GCS prctl() locking
    failures (matching x86), with the selftest updated. Slight ABI change
    but no software deployment yet
 
  - kselftest: fix unsound MTE fault skipping by introducing MTE-safe
    memory accessors, avoid copying each signal test binary more than
    once
 
  - Update sysreg definitions (fix three enum values and two field names,
    mark architecturally dropped fields as RES0) and remove the TME
    transaction state check from the BRBE driver
 
  - Fix the description of ARM64_HAS_LPA2 and remove a redundant
    ID_AA64MMFR0 define
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE5RElWfyWxS+3PLO2a9axLQDIXvEFAmrRImIACgkQa9axLQDI
 XvG+mw/+Lu/PONW1zxo4M65u3vR2bTBqhx8Xo3MP15ANaNVEb3guiUX0ZGAMVdz7
 NgN5NAQFQ5lwb8V8F5LSPGPlHTZ/KEYbiu2IRqwNvUrr2xU+Bz2AZKGvTfScEokO
 PiNfe84I7pWG+U77eBotZ5TxBQiLRe+8VWetIlPOQK9QUm0PG6Z50vhBBahg5kvJ
 b0nf2K3mSIscQRskykkCfIAwTShJM1NvW4+Ygfz6UjHaTtvPg+wsHPMZunKLJW5F
 tbXjZxcJQPziTl7lsRZuKbBrW7Sm5XRl54Q5Tl5ToXQ/C8h2jKjaNoqyXfV+ETJx
 MnFMQfmSIXuKlPuhZTiZK1viVXJe886iCi0vavMwKIR1zNJBKWLWeFz7cepe/jfq
 PHnZo9dX9dNRS7vzBGVq1aYUe/pn5eVeYrUQjMWCyKF2aLvSLm5n4Tf+XtvDUrkA
 O5EuP7sHL8xY9wCJ+Mw45gX1sQiJRy2jBOBbUvZ2/F6ACgG8dvKS9lhpbIn8IsKU
 rFkwacTcsUCoKCnthOwupRApUU/S2fiyzEoUc/R/gDubmnDET3nLcSsspg/FacqP
 OOq/6ErxAQ3HA5ltK0Siq8/qud9mnpYa0xyoxs7EED3jpX2A3lLf9UZduZ+r/2IP
 k5KI+4yRkYPBqGoFjwO8nMrk8jgvZzAtTMh86EOI4LZkcNEvuzU=
 =YdKt
 -----END PGP SIGNATURE-----

Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 updates from Catalin Marinas:
 "Here are the arm64 updates for 7.4.

  The more interesting bits are the removal of big-endian kernel support
  (already marked BROKEN for some time), preemptible this_cpu_*()
  operations and MPAM support for the firmware-backed (Fb) interface.

  CCA (Arm's confidential compute) is slowly trickling in with host RMI
  (Realm Management Interface) support and some refactoring, including a
  dedicated SMCCC bus to advertise firmware services. There are also the
  usual PMU updates for new hardware and a few fixes/cleanups.

  Core features:

   - Remove big-endian kernel support: CONFIG_CPU_BIG_ENDIAN has
     depended on BROKEN for a while, so drop the remaining code (BE
     hypervisor object, BPF JIT, assembly/crypto/library routines,
     endianness helper macros, selftests) and force a little-endian
     build

   - Add preemptible this_cpu_*() operations (read/write, RMW, xchg,
     cmpxchg and cmpxchg128) that no longer need to disable preemption
     around the per-CPU address generation and access

   - Preparation patches for implementing CONFIG_HOTPLUG_PARALLEL on
     arm64

  Memory management:

   - Treat faults taken by EFI runtime firmware as kernel faults

   - Clear PTE_WRITE for EFI_MEMORY_RO mappings (with hardware dirty
     state management enabled, this is not truly read-only)

   - Raise the default ARCH_MMAP_RND_BITS for 48-bit and 52-bit VA
     configurations (28/26/24 bits for 4K/16K/64K pages)

   - Implement clear_page[s]() using memset()

   - Enable BBML2 no-abort (a.k.a. BBML3) for the NVIDIA Rigel CPU

  Perf and PMU:

   - Support for HiSilicon's ITS PMU

   - Add support for some new events: INST_SIMD_ALU_VEC for Apple PMUs
     and a cycle counter for the latest version of HiSilicon's MN PMU
     hardware

   - A bunch of fixes to the CXL PMU driver to address pre-existing
     issues from Sashiko

   - Fix generation of PERF_RECORD_ITRACE_START records for SPE and ETM
     drivers

   - Reduce excessive stack consumption in the Marvell DDR PMU driver

   - Minor driver updates and cleanups all over

  Arm Confidential Compute Architecture (CCA):

   - Add an Arm SMCCC bus for firmware services discovered through SMCCC
     and move the TRNG and CCA guest (TSM provider) drivers onto it,
     removing the dummy CCA platform device and adding a sysfs ABI for
     Realm guests

   - Move the Realm Service Interface (RSI) code out of arch/arm64/ into
     drivers/firmware/arm_rmm/

   - Add the host side of the Realm Management Interface (RMI): detect,
     configure and activate the RMM, add SRO support and wrappers for
     the Realm RMI commands

   - Block hibernation (new arch hook in the PM core) and kexec while
     the RMM is active. To be revisited in the future with proper
     support for deactivation

   - Handle Granule Protection Faults (GPFs) taken by the host, caused
     by accesses to memory delegated to the RMM. In a future patch, the
     exception table lookup will be limited to is_kdump_kernel() cases

  MPAM (Memory Partitioning And Monitoring):

   - Add support for the MPAM firmware-backed (Fb) interface, allowing
     MSC accesses to be mediated by firmware

   - Fix a list of theoretical issues with the driver (MSC access error
     propagation, MBWU monitor save/restore and locking, resctrl class
     handling, error interrupt restore, maximum number of PARTIDs)

   - Add the mailing list and a missing file to the MAINTAINERS entry

   - Document when to set arm64.nompam

  Errata and CPU features:

   - Add the NXP i.MX8QM/8QP workaround for the Cortex-A53 cache
     coherency issue (ERR050104), using a new ARM64_CPUCAP_SOC_ERRATUM
     capability type for SoC-level errata

  Miscellaneous:

   - Mask debug exceptions (DAIF) around the hardware breakpoint
     register manipulations when called from generic kernel code

   - Don't zero the SVE state buffer when the SVE state is live

   - Return -EPERM instead of -EBUSY from the GCS prctl() locking
     failures (matching x86), with the selftest updated. Slight ABI
     change but no software deployment yet

   - kselftest: fix unsound MTE fault skipping by introducing MTE-safe
     memory accessors, avoid copying each signal test binary more than
     once

   - Update sysreg definitions (fix three enum values and two field
     names, mark architecturally dropped fields as RES0) and remove the
     TME transaction state check from the BRBE driver

   - Fix the description of ARM64_HAS_LPA2 and remove a redundant
     ID_AA64MMFR0 define"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (144 commits)
  arm64: cpufeature: Enable BBML2 for NVIDIA Rigel
  arm64: cputype: Add NVIDIA Rigel definitions
  arm64: raise default ARCH_MMAP_RND_BITS for 48-bit and 52-bit VA
  arm64/debug: mask debug exceptions when called from common code
  kselftest/arm64: signal: copy each test binary only once
  kselftest/arm64: Check for -EPERM not -EBUSY in the locking test
  arm64: gcs: Return -EPERM not -EBUSY for prctl() locking failures
  perf: arm_brbe: Remove the check for TME transaction states
  arm64: sysreg: Mark fields the architecture dropped as RES0
  arm64: sysreg: Fix the names of two misspelt fields
  arm64: sysreg: Fix three incorrect enum values
  arm64: smp: Defer RCU registration during secondary CPU bringup
  arm64: smp: Don't bother printing the I-cache policy for each CPU
  arm64: smp: Defer update of secondary CPU capabilities
  arm64: smp: Tidy up cpuinfo init and cpufeature updates
  arm64: smp: Tidy up smp_prepare_cpus()
  arm64: cpufeature: Store every ID register with its overrides applied
  arm64: cpufeature: Read MPAMIDR_EL1 in __cpuinfo_store_cpu()
  arm64: cpufeature: Add read_cpuid_with_overrides()
  arm64: cpufeature: Check arm64_ftr_regs[] before the first store
  ...
2026-10-20 07:55:19 -10:00
Linus Torvalds
c3134590a8 Microblaze patches for 7.4-rc1
- Add Kunit support
 - Update signal handling
 
 Small changes:
 - coding style, typos
 - don't use "new" ASM pseudocode
 - fix refcount leak in cpuinfo code
 - prevent ptrace writes to MSR and pt_mode
 - enable Xilinx DMA driver by default
 - build userprogs for the correct endianness
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSXAixArPbWpRanWW+rB/7wTvUR9QUCatXqTwAKCRCrB/7wTvUR
 9dVPAQDoX+aAPWQMEYOCOmY7NDNPKoSVMz5Q9Ex0ISroB953fAEAt6wkHIMPLkkg
 rytGQfkiGaJiUvHl+7kiUzkoKpx9XwU=
 =loPP
 -----END PGP SIGNATURE-----

Merge tag 'microblaze-v7.4' of git://git.monstr.eu/linux-2.6-microblaze

Pull arch/microblaze updates from Michal Simek:
 "Some issues were found by AI but nothing dramatic.

  The signal changes are related to upgrading the toolchains supported
  by AMD. Hardened MicroBlaze cores are used in AMD/Xilinx chips, and
  they will be supported for another 10+ years. New tests were run as
  part of this effort, and that's how the signal stack issues were
  found.

  The KUnit patches have been reviewed by David, and he agreed that they
  can go through my tree.

  Summary:
   - Add Kunit support
   - Update signal handling

  Small changes:
   - coding style, typos
   - don't use "new" ASM pseudocode
   - fix refcount leak in cpuinfo code
   - prevent ptrace writes to MSR and pt_mode
   - enable Xilinx DMA driver by default
   - build userprogs for the correct endianness"

* tag 'microblaze-v7.4' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Build userprogs for the correct endianness
  microblaze: Enable xilinx dmas and axi emac drivers
  kunit: qemu_configs: Add microblaze configurations
  microblaze: reset: Provide a power off handler through an unaligned PC
  microblaze: reset: Call POWER_OFF handlers
  microblaze: Pass -m{big,little}-endian through KBUILD_CPPFLAGS
  microblaze: uaccess: Zero out destination on failed get_user()
  microblaze: fix typo "multipler" in comment
  microblaze: prevent ptrace writes to MSR and pt_mode
  microblaze: CCF: fix refcount leak
  microblaze: preserve the MSR carry flags across signals
  microblaze: restore the ABI argument home area below pt_regs (PTO)
  microblaze: don't clobber r3/r4 restored by rt_sigreturn
  microblaze: reserve the ABI argument-home area in the signal frame
  microblaze: wire up sigaltstack
  microblaze: drop unneeded semicolon
  microblaze: Fix MB_MANAGER build with older binutils
2026-10-20 07:52:21 -10:00
Linus Torvalds
f47d223627 vfs-7.4-rc1.sync_close
Please consider pulling these changes from the signed vfs-7.4-rc1.sync_close tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlwAKCRCRxhvAZXjc
 orrgAQDrCihXTPRcJkiQfDH6LGeRdV+vD0xf2Sp39MMuDOrAggEA+eya4nPNqY8n
 K7DK7PJZ/DvyEHckxQQpgmGGqlE4bw0=
 =zb7I
 -----END PGP SIGNATURE-----

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

Pull file closing updates from Christian Brauner:
 "This makes closing files synchronous for close_range(), exec and exit.

  Since fput() was switched to task work every final __fput() of an
  exiting task is queued on task work and run from exit_task_work().
  exec and close_range() do the same. For a task with a large descriptor
  table that is a cmpxchg() and a TIF_NOTIFY_RESUME test-and-set per
  file plus a list entry for any later task_work_cancel() to search
  under pi_lock, and then a second pass over every struct file that
  isn't cache hot anymore by then. Oleg and Neil have pointed this out
  over the years.

  close_files(), close_range() and close-on-exec now flush and put each
  file inline the way close(2) does. Kernel threads aren't affected.
  They share init_files which init_task pins forever so their
  exit_files() never drops the last reference, and their fput() keeps
  punting to a workqueue. The one place that could put a table from a
  kthread context, a failing copy_process(), can't hold the last
  reference while the source table is alive.

  On a 64 vCPU KVM guest tearing down 4096, 65536 and 1M descriptors
  scattered at random positions in the table:

                           4096 fds        65536 fds        1M fds
    exit                   1045 -> 895 us  18.9 -> 14.9 ms  429 -> 306 ms
    execve, close-on-exec  1393 -> 1190 us 21.4 -> 16.9 ms  471 -> 325 ms
    close_range()          1179 -> 988 us  21.9 -> 17.4 ms  484 -> 337 ms

  So that is 16-21% or 40-150 ns per closed file, largest at 1M
  descriptors. With eight processes tearing down 65536 descriptors each
  at once it stays at 16-21% because the second pass over 16 MB of
  struct file is what gets expensive when CPUs compete for the cache.

  With 32 or 64 processes both kernels are bound by pushing millions of
  files through slab and rcu and the difference shrinks to 4-8%. Files
  whose own release dominates gain less, 13% for eventfds, 11% for
  pipes, 6% for AF_UNIX sockets. close(2) is untouched and will-it-scale
  is within 2%.

  The spufs coredump support is removed. It was the only reason
  do_coredump() unshared the descriptor table. gdb dropped Cell
  debugging in 9.1 and binutils in 2.34, the Cell blades are gone and
  nothing on the PlayStation 3 produces or reads these notes. With that
  unshare_files() goes away, exec installs its private table through the
  new switch_files_struct() and the coredump startup completion becomes
  a plain thread count waited on with the new wait_var_event_state().

  Three fixes for the synchronous close are included. A failed fork
  released its files under scx_fork_rwsem and deadlocked against the bpf
  link's release. A session leader's exit released its tty before
  disassociate_ctty() ran and the foreground job lost its SIGHUP, so the
  tty is hung up before the files are closed now. And descriptor tables
  are walked from the highest descriptor down which restores the order
  the deferred puts had and keeps a few long-standing release ordering
  bugs from deadlocking exit"

* tag 'vfs-7.4-rc1.sync_close' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fs: close files from the highest descriptor down
  coredump: factor out coredump_wait_inactive()
  exit: hang up the tty before closing the files
  fork: release the files of a failed fork after sched_cancel_fork()
  coredump: replace the startup completion with a thread count
  sched: add wait_var_event_state()
  coredump: drop core_state->dumper
  fs: make close_cloexec_files() synchronous
  fs: rename do_close_on_exec() to close_cloexec_files()
  fs: make close_range() synchronous
  fs: make close_files() synchronous
  fs: add filp_close_sync()
  fs: remove unshare_files()
  fs: move unshare_fd() to fs/file.c
  fs: add switch_files_struct()
  coredump: stop unsharing the file descriptor table
  fs: don't open-code file_close_fd() in close_fd()
  powerpc: remove coredump support
2026-10-19 21:03:21 -10:00
Linus Torvalds
58aeff92ee vfs-7.4-rc1.shared.super
Please consider pulling these changes from the signed vfs-7.4-rc1.shared.super tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlwAKCRCRxhvAZXjc
 ojDwAP9WqfdL1zdLrCVIEGuIlAuCIBHlqx0WGuafrPYgZd8PmgD/f0qdhXyDaZs4
 e9HXjY41WhrC032FwBMkJ3MzCKcCSwE=
 =GdeH
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.4-rc1.shared.super' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull superblock updates from Christian Brauner:
 "This renames vfs_get_super() to get_tree_super() and exports it so a
  filesystem that needs its own superblock matching policy can reuse it
  instead of open-coding sget_fc() plus fill_super().

  erofs uses it to share a superblock between file-backed mounts"

* tag 'vfs-7.4-rc1.shared.super' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fs: rename vfs_get_super() to get_tree_super() and export it
2026-10-19 20:55:04 -10:00
Linus Torvalds
a6656aefd3 vfs-7.4-rc1.shared.net-next.pidfd
Please consider pulling these changes from the signed vfs-7.4-rc1.shared.net-next.pidfd tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlwAKCRCRxhvAZXjc
 ooS3AP9/x0Naa93wtIOgcrAYPdb61lcqtH9ktLlKMsi5jhE64wEAiFS7qzGjZMJ4
 H7sq/Qmjt63nyB44LFrHI0z0K62IHAQ=
 =Z9oc
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.4-rc1.shared.net-next.pidfd' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull pidfd updates from Christian Brauner:
 "This adds thread specific pidfds to af_unix sockets.

  SO_PASSPIDFD and SO_PEERPIDFD hand out a pidfd for the thread-group
  leader. A coredump server on the coredump socket can't get a handle on
  the thread that took the signal and is writing the dump, and anything
  doing per-thread authentication has the same problem. The sending and
  the connecting thread are recorded in addition to the thread-group
  leader and sk_peer_pid becomes an array indexed by pid type.

  SO_PASSPIDFD_THREAD works like SO_PASSPIDFD but delivers an
  SCM_PIDFD_THREAD cmsg for the sending thread. Both options are
  independent so a receiver can ask for both. On SOCK_STREAM sockets
  recvmsg() only stops merging data at a thread boundary when the
  receiver asked for a thread pidfd. SO_PEERPIDFD_THREAD returns a pidfd
  for the thread that called connect(), listen() or socketpair(). pidfs
  records the coredump on the dumping thread's struct pid too so its
  pidfd reports it like the leader's does. Selftests for af_unix and the
  coredump socket are included"

* tag 'vfs-7.4-rc1.shared.net-next.pidfd' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  selftests/coredump: check the dumping thread's pidfd
  pidfs: record the coredump on the dumping thread's pid too
  selftests/net: SO_PEERPIDFD_THREAD
  net: add SO_PEERPIDFD_THREAD to get a thread-specific pidfd
  af_unix: record the pid of the connecting thread
  net: turn sk_peer_pid into an array indexed by pid type
  selftests/net: SO_PASSPIDFD_THREAD
  net: add SO_PASSPIDFD_THREAD to get a thread-specific SCM_PIDFD
  af_unix: record the pid of the sending thread
  pid: add helpers to operate on a struct pid array
2026-10-19 20:32:52 -10:00
Linus Torvalds
2a49d49159 vfs-7.4-rc1.netfs
Please consider pulling these changes from the signed vfs-7.4-rc1.netfs tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlwAKCRCRxhvAZXjc
 oqmyAQDBxxJ69Ve2Op0/xHMSheI6dMZ7sLddKEARiZ1sBbKfaAEAscxpRMN+yRjE
 pt7GqzUAm6cdxadcwQPojsV8ZieNmww=
 =35YD
 -----END PGP SIGNATURE-----

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

Pull netfs updates from Christian Brauner:
 "This contains the netfs and cachefiles changes for this cycle from
  David.

  Cachefiles learns to cache the most common class of files properly,
  files that are created or truncated, written once sequentially and
  closed. So far it relied on the backing filesystem's idea of what is
  stored and asked with SEEK_DATA and SEEK_HOLE before every read it
  prepared, two seeks per read, and the backing filesystem is free to
  insert or remove runs of zeros which produces false positives and
  false negatives. The object type in the state xattr is now actually
  set to CACHEFILES_CONTENT_{SINGLE,ALL,BACKFS_MAP} instead of zero. For
  files written contiguously the type is ALL, the backing file's i_size
  tracks how much is cached and the object size lives in the xattr, and
  reads skip the seeks entirely. Netfslib queries the cache occupancy
  through a new ->query_occupancy() method that returns up to two
  extents at once, ->prepare_read() only limits the size of a cache read
  anymore and a new ->collect_write() lets the cache update its metadata
  once a contiguous run of writes completes. The state xattr is preset
  when the tmpfile is created so ENOSPC from setxattr can't scrap a
  fully written cache file. Two fixes for this followed, one for resize
  handling where the cache's idea of the size can be stale and one for
  an unset error that hung a request on a failed cache write.

  Preparatory work converts file positions that can't be negative to
  uoff_t, removes the writethrough code whose locking looked like it
  could deadlock with ceph snapshots, makes the deprecated PG_private_2
  support opt-in so mm can get its page bit back, adds helpers for the
  NETFS_RREQ_ALL_QUEUED barriers and adds the cache object id to the
  read and write tracepoints. Plus an unused header removal and two
  documentation fixes"

* tag 'vfs-7.4-rc1.netfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fscache, cachefiles: Fix resize handling
  cachefiles: Fix unset error when calling netfs_prepare_write_failed()
  netfs: remove unused fscache_internal.h header
  cachefiles: Preset the state xattr when creating a new file
  cachefiles: Don't rely on backing fs storage map for most use cases
  netfs: Document the remote size member and its accessors
  cachefiles: Add a tracepoint to log insufficient space errors
  netfs, cachefiles: Add a couple of traces for write failure
  cachefiles: Clean up cachefiles_do_prepare_read()
  netfs: Set subrequest->source at alloc before trace emission
  netfs: Add some functions to wrap the all-queued handling
  netfs: Make deprecated PG_private_2 support opt-in
  netfs: Add the cache object ID to netfs_read/write tracepoints
  netfs: trace: Rejig a couple of the tracepoints
  cachefiles: Fix path of the "debug" module parameter in help paragraph
  netfs: trace: Change the "clear" folio traces to "endwb"
  netfs: Remove the writethrough code
  netfs: Use uoff_t instead of unsigned long long and loff_t
2026-10-19 20:12:19 -10:00
Linus Torvalds
0cbcaf75a1 vfs-7.4-rc1.mount
Please consider pulling these changes from the signed vfs-7.4-rc1.mount tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlwAKCRCRxhvAZXjc
 okTnAP42ymJnRxXT0sSaNQ8Sk9PIRQ+1evElkdr0LfGkBp5ApAEAjtRL+o4LCjd9
 WRE1+n+xwuQyPHUv9UghlPi8Qnr7ggU=
 =nfhQ
 -----END PGP SIGNATURE-----

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

Pull mount updates from Christian Brauner:
 "This adds OPEN_TREE_DROP_MNTNS_MOUNTS.

  crun started using OPEN_TREE_NAMESPACE to set up the container's mount
  namespace and open_tree(OPEN_TREE_CLONE) for the sources of its bind
  mounts. That fails on any host with a mount namespace pinned below
  such a source. The recursive clone picks the pinned namespace up and
  move_mount() refuses to attach the tree with ELOOP. Only a younger
  mount namespace may ever be bound into an older one or mount namespace
  references could form a loop. A namespace created with
  OPEN_TREE_NAMESPACE is younger than everything else on the system so
  from inside it every pinned namespace is older. By the time this fails
  setns() has run and the host tree is out of reach, so the runtime has
  to predict the situation beforehand and lose the optimization. snapd
  pins mount namespaces under /run/snapd/ns so on Ubuntu that is any
  container bind mounting the host root.

  Every other path crossing a mount namespace boundary already leaves
  these mounts behind, copy_mnt_ns() and create_new_namespace() both do.
  Only get_detached_copy() asks for them.

  The new flag lets a caller get a clone without them. It stays opt-in
  because open_tree(OPEN_TREE_CLONE) plus move_mount() is mount --rbind
  through a file descriptor and dropping them by default would silently
  lose /run/snapd/ns/*.mnt on a live system. It requires AT_RECURSIVE,
  is a no-op with OPEN_TREE_NAMESPACE and skips locked nsfs mounts the
  way copy_mnt_ns() does, so nothing new is exposed. Selftests are
  included"

* tag 'vfs-7.4-rc1.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  selftests/filesystems: test OPEN_TREE_DROP_MNTNS_MOUNTS
  mount: add OPEN_TREE_DROP_MNTNS_MOUNTS
2026-10-19 20:06:27 -10:00
Linus Torvalds
7ed37e9d5c vfs-7.4-rc1.misc
Please consider pulling these changes from the signed vfs-7.4-rc1.misc tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 oiocAQDQrd6xDocGA55sJ45KSw1tHYQh5CYH8zml+T9D1agMmwEA5oGUQWEJAoN3
 Y2zXG7WoZcdnKQv3FWRYWhjRmXNxUQk=
 =dbn3
 -----END PGP SIGNATURE-----

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

Pull misc vfs updates from Christian Brauner:
 "Fixes:

   - aio: a keyed poll completion on an epoll instance could recurse
     into the same epoll waitqueue lock when the result eventfd is
     watched by that very instance. An unprivileged process could make a
     CPU spin on the recursive lock. eventfd-backed poll completions are
     always deferred now.

   - fsnotify_inoderemove() is only called once the inode is really
     dead, no nlink and no aliases, and open_by_handle_at() can't add an
     alias to a dead inode anymore. The race could crash fsnotify or
     lose inode mark notifications.

   - devtmpfs: the conversion of the public instance to ->get_tree()
     broke reconfiguring the shared superblock's options on later mounts
     which made the boot time defaults permanent. A reconfigure context
     is kept in fc->fs_private so the parse ops can forward options to
     the underlying filesystem.

   - ufs truncated the 64-bit directory size to an unsigned int in
     ufs_last_byte(). A crafted image with a 4 GiB directory produced an
     out-of-folio read in ufs_find_entry() and, with
     CONFIG_UFS_FS_WRITE, a write into an adjacent page.

   - devpts rejects max=0 instead of silently lifting the per-instance
     pty limit. The value wrapped into ida_alloc_max() and became
     unlimited.

   - fs_pin publishes pins with the rcu list helpers so the kill paths
     reading the lists under rcu see the initialization.

   - dentry_kill() reports a Tasks-RCU quiescent state. Its
     cond_resched() is the only reschedule point on the dentry teardown
     path and cond_resched() isn't a quiescent state for Tasks-RCU, so
     Meta kept seeing rcu_tasks stalls in btrfs subvolume deletion.

   - writeback sizes foreign flushes by the target wb's dirty pages
     instead of the memcg-wide count which over or undersized a single
     bdi flush.

   - nfsd READ emitted two fsnotify access events on the iterator path
     since vfs_iocb_iter_read() already sends one. A READ on a krb5i or
     krb5p mount showed up twice in inotify.

   - pipe and splice pass a poll key when waking readers and writers so
     epoll, poll() and select() waiters only wake for the event they
     asked for.

   - the iso8859-14 Unicode to charset tables had page01 duplicated as
     page1e so 29 code points mapped to the wrong bytes and 22 that
     aren't in the charset were accepted.

   - orangefs doesn't wait for an unmount service operation that never
     returns on system shutdown and uses ssize_t for strscpy() errors.

   - __register_chrdev() checks the kobject_set_name() return value.

   - selftest fixes: the openat2 tests hardcoded O_LARGEFILE to 0x8000
     which is O_NOFOLLOW on powerpc, resolve_test makes /tmp a
     mountpoint so RESOLVE_NO_XDEV has a boundary to trip over,
     file_stressor moves into its own directory with a 30 minute
     timeout, the kernfs listxattr test skips when SELinux exposes
     security.selinux, the namespaces active reference tests wait for
     the thread via a PIDFD_THREAD pidfd since pthread_join() returns
     before exit_nsproxy_namespaces(), the idmapped_tmpfile test chowns
     its directory into the mapped range, the clone3 CLONE_CLEAR_SIGHAND
     test adds CLONE_VM so it fails for the intended reason, the pidfd
     PPID error message prints the values it compares and fscontext_ns
     gets a .gitignore.

  Cleanups:

   - vmcore prints the release of the crashed kernel from the VMCOREINFO
     note so a kdump that dies before the dump lands still says which
     kernel it was for.

   - initramfs allocates hardlink hash entries with the validated cpio
     name length instead of PATH_MAX, which put every entry in
     kmalloc-8k.

   - the unused dax_layout_busy_page() is removed,
     dax_layout_busy_page_range() becomes static and dax_folio_init()
     drops a redundant list initialization.

   - vfs_empty_path() is removed, it has had no callers since
     getname_maybe_null().

   - comment and documentation fixes in aio, bpf_fs_kfuncs,
     fs-writeback, inode, read_write, squashfs and the vfs.rst copy of
     struct file_system_type"

* tag 'vfs-7.4-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (38 commits)
  selftests/filesystems: Fix idmapped_tmpfile layer dir ownership
  selftests/namespaces: Wait for thread exit via pidfd in active-ref tests
  writeback: size foreign flushes by target wb dirty pages
  initramfs: Reduce hardlink hash allocation sizes
  fs: remove unused vfs_empty_path()
  dcache: report a Tasks-RCU quiescent state in dentry_kill()
  vmcore: report the release of the crashed kernel
  splice: pass a poll key when waking pipe readers and writers
  pipe: pass a poll key when waking writers after a resize
  orangefs: use ssize_t instead of size_t for error codes...
  orangefs_super: don't wait on service operation on system shutdown.
  docs/vfs: Fix the struct file_system_type copy
  nls: fix the Unicode to charset tables of iso8859-14
  selftests/filesystems/openat2: make /tmp a mountpoint inside private namespace
  selftests/filesystems/openat2: fix O_LARGEFILE definitions for non-arm64 architectures
  fs: fix misleading comments in read_write.c
  squashfs: fix inode number description in documentation
  fs: fix typos in comments
  fs/dax: Make dax_layout_busy_page_range() static
  fs/dax: Remove unused dax_layout_busy_page()
  ...
2026-10-19 19:30:45 -10:00
Linus Torvalds
96a377ba00 vfs-7.4-rc1.lookup
Please consider pulling these changes from the signed vfs-7.4-rc1.lookup tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ohALAP95TywGM0X9vNlKadgGMzD4ISQ0lo9xrdWVZ+eKN3DHSwEA/F9DnWdCX+gs
 pNVcTf8cqjRUEUSDN8TcLSV12LOIBgc=
 =yoIV
 -----END PGP SIGNATURE-----

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

Pull path lookup updates from Christian Brauner:
 "This prepares for Neil's changes to directory locking. The goal is for
  the VFS to lock the dentry and not the parent directory and to push
  the i_rwsem parent locking down into the filesystems where it can be
  kept, removed or adjusted as each filesystem sees fit.

  The next step in that is to swap the lock order of d_alloc_parallel()
  and i_rwsem so code can wait on i_rwsem while holding an in-lookup
  dentry. Two things have to change before that can happen. Nobody may
  call d_alloc_parallel() while holding i_rwsem, and nobody may d_drop()
  a dentry while it is being worked on since that effectively unlocks an
  in-lookup dentry and lets another one be allocated too early.

  So d_splice_alias() learns to handle hashed dentries in addition to
  unhashed and in-lookup ones, which is what ->atomic_open() needs and
  removes the reason filesystems d_drop() first. d_alloc_trylock() is a
  non-blocking d_alloc_parallel() for the filesystems that prime the
  dcache from readdir, smb, nfs, fuse and ceph, where waiting for a
  concurrent lookup is pointless. d_duplicate() creates an in-lookup
  dentry with the name of an existing one for silly-rename and
  whiteouts. LOOKUP_SHARED tells ->lookup() how the parent is locked so
  it can drop and retake it. DCACHE_PAR_LOOKUP is tracked by lockdep now
  with a per filesystem type key, and overlayfs gets its own class since
  it stacks over itself. And a d_flags bit is reserved for filesystem
  private use.

  Also included is Mateusz's fix for the spurious dentry reference cycle
  on open. __legitimize_path() grabs a reference, do_dentry_open() grabs
  another and terminate_walk() drops the first. do_dentry_open()
  consumes the held reference now. Opening the same file read-only on a
  20-core VM goes from 4,043,375 to 5,629,378 ops/s in will-it-scale"

* tag 'vfs-7.4-rc1.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  VFS: d_duplicate: repair comments to avoid kernel-doc warnings
  ovl: provide private lockdep class for dentry->dep_map
  VFS: rename lookup_map to dep_map
  VFS: per-fs-type lockdep key for dentry in-lookup locking
  VFS: reserve a d_flags bit for fs-specific usage
  VFS: add lockdep monitoring of DCACHE_PAR_LOOKUP lock.
  VFS: Add LOOKUP_SHARED flag.
  VFS: add d_duplicate()
  VFS: introduce d_alloc_trylock()
  VFS: enhance d_splice_alias() to handle hashed dentries
  VFS: fix various typos in documentation for start_creating start_removing etc
  fs: avoid spurious dentry ref/unref cycle on open
2026-10-19 18:59:41 -10:00
Linus Torvalds
0ddc887102 vfs-7.4-rc1.kernfs
Please consider pulling these changes from the signed vfs-7.4-rc1.kernfs tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ojr5AP42ZHmQU1u1W2WZvSp0d7z2i9Hp9j5ezK1JJjZQSE6FcgD+KalCPX7v9jB8
 OQ0fQnauE2Ji3+qXO0tbIwij7gWP2wc=
 =9ucf
 -----END PGP SIGNATURE-----

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

Pull kernfs updates from Christian Brauner:
 "This contains kernfs scalability work from Shakeel driven by what Meta
  sees in their fleet. kernfs_rwsem is per kernfs root, so sysfs and
  cgroupfs each have one for the whole machine, and every create, remove
  and rename takes it for writing. rwsems don't let readers steal the
  lock once a writer is queued, so one cgroup being created or a device
  being renamed parks the entire incoming reader stream in
  uninterruptible sleep. Daemons that poll cgroup files in a loop turn
  that into a convoy and the two that hurt most, oomd and below, are the
  ones that are supposed to relieve memory pressure and record what
  happened.

  kernfs_dop_revalidate() took kernfs_rwsem for read once per path
  component of every walk into a kernfs mount. Nothing it reads needs
  the semaphore. kn->active is an atomic_t, kn->__parent and kn->name
  are rcu pointers, kn->ns can be compared instead of dereferenced and
  the directory revision is a plain counter. The callback runs under rcu
  now. Readers walking cgroupfs and sysfs while another thread churns
  cgroups, renames netdevs and plugs devices went from 48,593,360 read
  acquisitions and 1,744,517 contentions to 1,280,280 and 429,846 on an
  8-CPU VM and path walk throughput improved 35-53%. LOOKUP_RCU still
  returns ECHILD because kernfs_iop_permission() forces every walk out
  of rcu-walk anyway. That is left for later.

  kernfs_fop_readdir() held the semaphore across dir_emit(). dir_emit()
  copies to userspace and under memory pressure that fault goes to
  reclaim with the lock every create, remove and rename needs held for
  reading. Meta sees 120 second allocation stalls in filldir64() from
  below and systemd-oomd stuck behind it. The lock is dropped around
  dir_emit() now. Since the entry the listing stopped on can disappear
  in that window and two entries can share a hash, readdir resumes on
  the full (hash, ns, name) key and the fallback search lands after the
  missing entry instead of repeating or skipping one. The repeat was a
  pre-existing bug between two getdents(2) calls.

  Three more lock holds are shortened. kernfs_notify_workfn() no longer
  holds kernfs_rwsem across fsnotify() which allocates against the memcg
  of the watching cgroup that is already under pressure. The open node
  is allocated outside the hashed open file mutex, the most contended
  lock in kernfs on their fleet with 2.19M waiters over 29 days and a
  77ms median hold. A new node is activated without dropping and
  retaking the write lock, lock_stat says 1200 -> 830 write acquisitions
  for five dummy netdevs, and kernfs_rename_ns() allocates the new name
  before and frees the old one after the lock so a rename can't enter
  reclaim or wait out a grace period with it held.

  Three standalone fixes come with selftests. Same-parent renames take
  kernfs_rename_lock too so kernfs_path_from_node() can't build a path
  that never existed. Decoding a file handle takes the semaphore so a
  decode racing rmdir() can't hash an inode after the removal's
  ilookup() pass and lose IN_DELETE_SELF. And kernfs_create_link() reads
  the target's uid and gid under kernfs_iattr_rwsem so a chown in
  between can't give the link an owner the target never had. The kernfs
  selftests grew from two xattr checks to coverage of dentry
  revalidation, rename, namespace tagging, file handles and readdir
  under churn"

* tag 'vfs-7.4-rc1.kernfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  kernfs: free the old name outside kernfs_rwsem
  kernfs: allocate the new name outside kernfs_rwsem
  kernfs: activate a new node without dropping kernfs_rwsem
  selftests: cover readdir resuming at a removed entry
  kernfs: don't hold kernfs_rwsem across dir_emit()
  kernfs: resume readdir on the full entry key
  kernfs: don't repeat or skip an entry when readdir resumes
  kernfs: don't hold kernfs_rwsem across notification delivery
  kernfs: allocate the open node outside the open file mutex
  kernfs: fix up the unlocked attribute reads on the creation paths
  kernfs: don't lose IN_DELETE_SELF when decoding a file handle
  kernfs: take kernfs_rename_lock for same-parent renames too
  selftests: cover kernfs file handles and same-parent rename
  selftests: cover kernfs dentry revalidation
  kernfs: Remove kernfs_rwsem from dentry revalidation
  kernfs: Avoid namespace dereference in d_revalidate()
  kernfs: Prepare directory revisions for lockless reads
  kernfs: Use VFS lookup context in d_revalidate()
2026-10-19 18:52:22 -10:00
Linus Torvalds
27dd2772e6 vfs-7.4-rc1.iomap
Please consider pulling these changes from the signed vfs-7.4-rc1.iomap tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 okLFAQDtL+joq4F75iD2qaULpmj7kWby23E7u88ccIVUONbpWgD+L0S5lPCd4upL
 fGyRMlQOybiRX1uHH13xGPU9wZ2Iggk=
 =ZSC6
 -----END PGP SIGNATURE-----

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

Pull iomap updates from Christian Brauner:
 "This contains the iomap changes for this cycle.

  The bulk is lazy bounce buffering for checksummed reads. XFS bounce
  buffers every direct read on a device that requires stable pages for
  checksumming so that userspace modifying the buffer while the read is
  in flight can't corrupt the data and fail the checksum.

  That burns DRAM bandwidth and CPU for copies that are almost never
  needed and, since the bounce buffer was a bio_vec, produced smaller
  and unaligned I/Os with 4k pages, i.e. 1 MB minus 4k.

  Now the read goes to the user buffer first and only a checksum failure
  allocates a bounce buffer and reads again. Integrity verification
  moves out of iomap into the filesystem so it can handle errors its own
  way, T10 PI handling for direct I/O moves into ->submit_io() to match
  buffered I/O, and a sysfs knob restores the old behaviour for the rare
  application that really does modify in-flight buffers.

  The block side gains bio_prepare_reissue(), exports
  fs_bio_integrity_{alloc,free}(), caps atomic writes by the PI buffer
  size and fixes an integer overflow in max_integrity_io_size() and a PI
  verification bug with an initial bvec offset. The old read side bounce
  buffering in the block layer is removed. This is a branch shared with
  the block tree and may also reach you through the block pull request.

  Three error handling regressions are fixed:
   - A failed ->writeback_submit() left wpc->wb_ctx pointing at an
     already completed ioend which was then submitted a second time and
     corrupted ip->i_ioend_list on XFS
   - iomap_fiemap() lost an iteration error when it flushed the pending
     extent and marked a truncated list as complete
   - A failed direct I/O bio lost its error when the sub-block tail
     zeroing succeeded. An XFS error tag to inject the writeback failure
     comes with it.

  iomap_dio_hole_iter() respects the block size alignment when
  iov_iter_zero() stops short at a page boundary, which btrfs with 8k
  blocks on 4k pages hit as an assertion since it disables page faults
  during direct I/O. The homegrown deferral of error completions to task
  context is replaced with bio_complete_in_task(). Plus an unused
  parameter, two typo fixes and a kernel-doc fix"

* tag 'vfs-7.4-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (34 commits)
  fs/iomap: document ret parameter of iomap_iter_continue
  iomap: follow the alignment requirement for iomap_dio_hole_iter()
  iomap: don't lose a failed direct I/O bio's error when zeroing the tail
  iomap: don't lose a fiemap iteration error when emitting the last extent
  xfs: add an error tag to inject a ->writeback_submit() failure
  iomap: don't resubmit an ioend after ->writeback_submit() failed
  iomap: use bio_complete_in_task for buffered simple dio read failures
  iomap: use bio_complete_in_task for buffered write failures
  iomap: use bio_complete_in_task for buffered read failures
  block,iomap: remove the old read side bounce buffering support
  xfs: log a message at mount time when using integrity protection
  xfs: add error injection for lazy bounce buffering
  xfs: add support for lazy direct read bounce buffering
  iomap,xfs: move integrity verification to the file system
  xfs: use BIO_COMPLETE_IN_TASK for bounce buffered read I/Os
  iomap: better read bounce buffering support
  block,iomap: fix protection information verification with initial bvec offset
  xfs: move PI generation into xfs_submit_zoned_bio
  iomap,xfs: move T10 PI handling for direct I/O into ->submit_io
  iomap: add a IOMAP_IOEND_INTEGRITY flag
  ...
2026-10-19 18:33:02 -10:00
Linus Torvalds
00b04f4495 vfs-7.4-rc1.idmap
Please consider pulling these changes from the signed vfs-7.4-rc1.idmap tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 opFuAPwLL5l3D3GSRyD+SyOjKYThylgowvH9c2BcLWbSAIO6yQD9F05GX+rrcbUq
 9ijolxAaQZYpEWsemZIIHx6BBwdDBA4=
 =IH8Z
 -----END PGP SIGNATURE-----

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

Pull vfs idmap constification from Christian Brauner:
 "This makes struct mnt_idmap const throughout the tree.

  A mount's idmapping is immutable. The only thing modified after
  alloc_mnt_idmap() is the reference count and that is hidden behind
  mnt_idmap_get() and mnt_idmap_put(). Everything else only reads from
  it. That is the same model struct cred uses and the idmapping is
  sensitive enough to deserve it.

  The conversion goes bottom up through the vfs{g,u}id and fs{g,u}id
  helpers, the privilege checks, acl, xattr and quota and then every
  inode operation that takes an idmap, so ->permission(), ->getattr(),
  ->setattr(), ->create(), ->mkdir(), ->mknod(), ->symlink(),
  ->rename(), ->tmpfile(), ->get_acl(), ->set_acl() and ->fileattr_set()
  with their implementations in every filesystem, plus the LSM hooks.

  struct vfsmount, struct mount_kattr and struct kstatmount store a
  const pointer and nop_mnt_idmap and invalid_mnt_idmap live in rodata,
  so anything that tries to modify them faults instead of silently
  corrupting the initial idmapping"

* tag 'vfs-7.4-rc1.idmap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (27 commits)
  fs: make nop_mnt_idmap and invalid_mnt_idmap const
  fs: port mnt_idmap() and file_mnt_idmap() to const mnt_idmap
  fs: port vfs_*() helpers to const mnt_idmap
  fs: port ->setattr() to pass const mnt_idmap
  fs: port ->getattr() to pass const mnt_idmap
  fs: port ->create() to pass const mnt_idmap
  fs: port ->symlink() to pass const mnt_idmap
  fs: port ->mkdir() to pass const mnt_idmap
  fs: port ->rename() to pass const mnt_idmap
  fs: port ->mknod() to pass const mnt_idmap
  fs: port ->tmpfile() to pass const mnt_idmap
  fs: port ->get_acl() to pass const mnt_idmap
  fs: port ->set_acl() to pass const mnt_idmap
  fs: port ->fileattr_set() to pass const mnt_idmap
  fs: port xattr to const mnt_idmap
  fs: port ->permission() to pass const mnt_idmap
  fs: port acl to const mnt_idmap
  fs: port inode_init_owner() to const mnt_idmap
  fs: port inode_owner_or_capable() to const mnt_idmap
  fs: port privilege checking helpers to const mnt_idmap
  ...
2026-10-19 17:57:49 -10:00
Linus Torvalds
a1d4585be1 vfs-7.4-rc1.file
Please consider pulling these changes from the signed vfs-7.4-rc1.file tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 osd6AP4nuqrNhsMzcp4zPk4rbMVhvJL9O3ccnoE6TLn8Mg7uLwD/WtjKIVtKAPkv
 gz58C2i14vDLLbKAAGK0P8c1EF0ZuAE=
 =jY1x
 -----END PGP SIGNATURE-----

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

Pull file table updates from Christian Brauner:
 "This annotates struct fdtable's fd array with __counted_by_ptr so
  KASAN and the fortified functions can bounds check it against max_fds
  and adds a KUnit suite for fdtable. A follow-up uses __struct_size()
  in the test since sparse doesn't know __builtin_dynamic_object_size().

  FD_PREPARE() is simplified. It was built as an ACQUIRE-style guard on
  infrastructure that was never needed. The ACQUIRE machinery and
  CLASS_INIT() go away, the variable is declared with __cleanup()
  directly, struct fd_prepare loses its err field since the fd either
  holds the descriptor or the error, and callers get a const pointer to
  the guard behind a UNIQUE_ID() name so they can't shadow it. Code
  generation is identical"

* tag 'vfs-7.4-rc1.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  file: make struct fd_prepare const and kill its err field
  cleanup: remove CLASS_INIT()
  file: declare the FD_PREPARE() variable with __cleanup() directly
  file: simplify FD_PREPARE()
  vfs: use __struct_size() in the fdtable KUnit test
  vfs: Add KUnit tests for fdtable
  vfs: Annotate struct fdtable's fd field with __counted_by_ptr
2026-10-19 17:35:50 -10:00
Linus Torvalds
ada21d495c vfs-7.4-rc1.coredump
Please consider pulling these changes from the signed vfs-7.4-rc1.coredump tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ouhIAP9q03aGe3fMs3tnLWC+JzSc1D48MMmo71rPxGnV6G6V+AEAzZV6Xkq8eFTU
 Zbwq6FhYvhptWeNGyNa9phUDFcBQIw4=
 =Pt3z
 -----END PGP SIGNATURE-----

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

Pull coredump updates from Christian Brauner:
 "This adds sparse coredumps and per-request memory type selection to
  the coredump socket protocol.

  A coredump sent over the socket transfers every zero of every hole in
  every mapping. For a process with 128 threads that's 1 GB of mostly
  thread stacks, 8 MB reservations with a few pages touched, and the
  holes sit in the middle of the dump rather than at the end. The
  coredump_filter bit that was proposed for this stops each PT_LOAD at
  the last populated page. But that mask says which kinds of memory to
  include and propagates across fork and exec, whereas what is selected
  here is an encoding. The usermodehelper isn't salvagable for this
  either. The coredump socket already has a handshake for exactly this.

  A server that raises COREDUMP_RECORDS in coredump_ack->mask gets the
  coredump as a sequence of records, each a struct
  coredump_record_header followed by what it describes. The stream ends
  explicitly with an end record that reports the size, so a missing one
  means truncation.

  With COREDUMP_SPARSE holes cross the socket as a bare header that says
  how many zero bytes were skipped. Reassembling the records gives back
  the same coredump, so a debugger and everything else still see an
  ordinary core file. Numbers from the selftests: the 128 thread process
  sends 1424153 bytes for a coredump of 1075150848 bytes, a 256 MB
  mapping with the first and the last page touched sends 188793 bytes
  for 268890112 bytes, and with COREDUMP_RECORDS alone the record
  overhead is under one percent.

  The selftests also simulate a server uploading to a blob store that
  can't seek and rewrites the program headers so the object is an
  ordinary ELF core file without the holes.

  COREDUMP_MEMORY_TYPES lets the server choose what memory to dump per
  request instead of relying on the static /proc/<pid>/coredump_filter
  of the crashing task. The request carries the default types and a mask
  of every type the kernel knows about, the ack carries the selection.
  Zero is valid and dumps the program headers and notes and nothing but
  the mappings that are always dumped.

  Preparatory cleanups refuse negative skips in dump_skip_to(), chunk
  every write at a page so a pipe or a socket never takes a short write
  in the middle of a record, make the dump helpers return bool and
  replace the core_dumped integer with COREDUMP_STATE_STARTED and
  COREDUMP_STATE_TRUNCATED flags.

  Also included is a fix for coredump_parse() reading core_pattern while
  it is being modified. The sysctl handler now validates a copy and
  publishes it under a spinlock and the parser works on a snapshot, so a
  rejected pattern is never visible and the rollback logic goes away.
  And to_kthread()'s lockless flags read is annotated with READ_ONCE()"

* tag 'vfs-7.4-rc1.coredump' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (29 commits)
  kthread: Annotate lockless to_kthread() flags access
  coredump: parse a snapshot of core_pattern
  selftests/coredump: test failed handshakes
  selftests/coredump: improve coredump size negotiation tests
  selftests/coredump: test COREDUMP_MEMORY_TYPES
  selftests/coredump: simplify the refusal tests
  tools: sync coredump.h header
  coredump: select memory types to include
  selftests/coredump: show how to inspect the task to decide how the coredump should be sent
  selftests/coredump: simulate a blob store
  selftests/coredump: put a hole in the middle of a sparse mapping
  selftests/coredump: hand the record stream to a sink
  selftests/coredump: test COREDUMP_RECORDS and COREDUMP_SPARSE
  coredump: describe the holes when COREDUMP_SPARSE is negotiated
  coredump: send the coredump in records if requested
  tools: sync coredump.h header
  coredump: add COREDUMP_SPARSE to the coredump socket protocol
  coredump: add COREDUMP_RECORDS to the coredump socket protocol
  coredump: clean up coredump state handling
  coredump: always chunk writes
  ...
2026-10-19 17:21:24 -10:00
Linus Torvalds
4effd80841 vfs-7.4-rc1.close_range
Please consider pulling these changes from the signed vfs-7.4-rc1.close_range tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ouFoAP9oJWCJRlKwbki5KP0P3O6/gnQXUz8gR07qxzWk8Gz/NgD/V3+MHkU8fX2w
 oTOGPuwrbbRNBTK/cmRG2kF6xxOPSw8=
 =jDl8
 -----END PGP SIGNATURE-----

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

Pull close_range updates from Christian Brauner:
 "This adds two new close_range() flags.

  CLOSE_RANGE_EXCEPT makes close_range() operate on all file descriptors
  outside of [fd, max_fd] instead of the ones inside. Alone it closes
  everything but the range. With CLOSE_RANGE_CLOEXEC it marks everything
  but the range close-on-exec. With CLOSE_RANGE_UNSHARE dup_fd() never
  takes a reference on what is dropped. So a task between
  clone(CLONE_FILES | CLONE_VM | CLONE_VFORK) and execve() that has the
  descriptors for the child in one window can shed the rest of the
  shared table in one call and nothing outside of the window is
  referenced by the child at any point.

  CLOSE_RANGE_CLOEXEC_ONLY closes the close-on-exec descriptors in the
  range and leaves everything else alone. Whatever the caller
  deliberately passes down, stdio, LISTEN_FDS, an inherited pipe, stays
  where it is. Combined with CLOSE_RANGE_EXCEPT it names the handful of
  close-on-exec descriptors that have to survive, the executable or an
  error pipe, and closes every other close-on-exec descriptor.

  Along the way dup_fd() stops copying a range in the middle of the
  table only to close it again. close_range(CLOSE_RANGE_UNSHARE) only
  avoided the copy when the range sat at the end of the table.

  Descriptors in a skipped range are never copied and no reference is
  taken on them, so ->flush() isn't called anymore for files from a
  table they were never part of. The flags are turned into an enum and
  selftests cover the window positions, the shared and the private table
  and the unshare form"

* tag 'vfs-7.4-rc1.close_range' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  selftests/core: test CLOSE_RANGE_CLOEXEC_ONLY
  file: add CLOSE_RANGE_CLOEXEC_ONLY
  file: let dup_fd() drop only close-on-exec descriptors
  selftests/core: test CLOSE_RANGE_EXCEPT
  file: add CLOSE_RANGE_EXCEPT
  close_range: turn the flags into an enum
  file: let dup_fd() drop everything outside of the range
  file: rename dup_fd()'s punch_hole to range
  selftests/core: test the hole CLOSE_RANGE_UNSHARE leaves behind
  file: let dup_fd() leave the punched hole behind
2026-10-19 17:11:41 -10:00
Linus Torvalds
550a7e28d8 vfs-7.4-rc1.binfmt
Please consider pulling these changes from the signed vfs-7.4-rc1.binfmt tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ohI7AP95N3Ty6xsiT14eGKl2jT6x265bpC4fodnQB098QdVNAQEA40ttNCy6j+i/
 ZR4Hy5e8OAqWdj87h7m4EW9ED5yUog8=
 =2LN3
 -----END PGP SIGNATURE-----

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

Pull binfmt updates from Christian Brauner:
 "This only lets punctuation delimit a binfmt_misc register string.

  Arbitrary delimiters never made sense and nothing uses them. Every new
  flag shrank the set of possible delimiters and made extensions more
  hazardous than they need to be. Letters, digits, whitespace, control
  characters, bytes above 0x7f and the backslash now get EINVAL.

  Everything deployed uses ':' anyway. This extends the fix that
  rejected a flag character as the delimiter.

  Selftests and documentation are included"

* tag 'vfs-7.4-rc1.binfmt' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  binfmt_misc: document the field delimiter
  selftests/exec: test delimiter restrictions
  binfmt_misc: only let punctuation delimit a register string
2026-10-19 17:02:56 -10:00
Linus Torvalds
b9a3eae945 vfs-7.4-rc1.bh
Please consider pulling these changes from the signed vfs-7.4-rc1.bh tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 ouV5AP0WoJkt78dAg29c1s5oPtTmeDzjZwXRcgG95LVb2V2x1gD7BKccTzIoivKQ
 BY+KdHWFpTrDD78+wWEkVosik2exxAw=
 =x2FH
 -----END PGP SIGNATURE-----

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

Pull buffer_head updates from Christian Brauner:
 "This stops the buffer_head write completion handlers from clearing
  BH_Uptodate when a write fails.

  A buffer whose write failed still holds exactly the data the
  filesystem asked to be written. It's the disk that is stale, not the
  buffer. Claiming otherwise has consequences. mark_buffer_dirty() warns
  when a filesystem redirties the buffer to retry the write, a buffer
  that isn't up to date gets re-read from disk which silently replaces
  the data with the stale on-disk copy, and the window between the write
  completing and BH_Uptodate being cleared is visible to anyone holding
  the folio lock.

  BH_Write_EIO already records that the last write failed. Every
  consumer is moved over to buffer_write_io_error(): the two core
  helpers in fs/buffer.c, adfs, ext2, omfs, exfat, fat, ext4, ocfs2,
  gfs2 and jbd2. Then write completion stops touching BH_Uptodate in
  both directions and BH_Write_EIO is cleared on successful completion
  instead of at submission, so a resubmission no longer hides an error
  that hasn't been fixed yet. bforget() and invalidation drop the flag
  so a reused block doesn't inherit someone else's write error.

  The groundwork for this removes b_page from struct buffer_head and
  lets a buffer_head point at memory outside the page cache. jbd2's
  shadow buffers sit on a slab folio today. A slab folio overloads
  ->mapping so mark_buffer_write_io_error() couldn't be called on them
  at all. They now point at the frozen data directly with b_folio NULL.

  Also included are documentation updates from Matthew for sb_bread(),
  sb_breadahead() and mmb_mark_buffer_dirty() and the removal of stale
  references to unmap_buffer() and mark_buffer_dirty_inode()"

* tag 'vfs-7.4-rc1.bh' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (27 commits)
  buffer: Rename label
  buffer: Refer to folios in comments
  buffer: Document mmb_mark_buffer_dirty()
  buffer: Document sb_bread(), sb_bread_unmovable() and sb_breadahead()
  fs: Remove references to mark_buffer_dirty_inode()
  buffer: clear BH_Write_EIO when a write succeeds, not when one starts
  buffer: Remove reference to unmap_buffer()
  buffer: stop touching BH_Uptodate on write completion
  jbd2: check for a fast commit write error with buffer_write_io_error()
  jbd2: say what jbd2_freeze_jh_data()'s assertion is actually checking
  jbd2: report journal write errors with BH_Write_EIO
  gfs2: check for a metadata write error with buffer_write_io_error()
  ocfs2: check for a stale write error before reusing a metadata buffer
  ocfs2: check for a metadata write error with buffer_write_io_error()
  ext4: check for a metadata write error with buffer_write_io_error()
  fat: check for a metadata write error with buffer_write_io_error()
  exfat: check for a directory write error with buffer_write_io_error()
  omfs: check for an inode write error with buffer_write_io_error()
  ext2: check for an xattr block write error with buffer_write_io_error()
  adfs: check for a directory write error with buffer_write_io_error()
  ...
2026-10-19 16:57:24 -10:00
Linus Torvalds
355da270c1 vfs-7.4-rc1.bfs
Please consider pulling these changes from the signed vfs-7.4-rc1.bfs tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 opHiAP0csRVd+U4nqcrpNanoYj4nTG6lvgiiBzD+hzUFBLJ2KQD6Aj8akdbzxCMz
 ScnMxAqO1blX4NLZ+jpJvRCe0XTdBw0=
 =fkoW
 -----END PGP SIGNATURE-----

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

Pull bfs removal from Christian Brauner:
 "This removes bfs, the filesystem UnixWare uses for its boot partition.

  It only supports contiguous files and has no subdirectories. The only
  data on such a partition are kernels and bootloader settings so there
  is no reason to access it from Linux anymore. The uapi header stays"

* tag 'vfs-7.4-rc1.bfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  bfs: remove the filesystem
2026-10-19 16:55:31 -10:00
Linus Torvalds
018cf9bf78 kernel-7.4-rc1.signal
Please consider pulling these changes from the signed kernel-7.4-rc1.signal tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlQAKCRCRxhvAZXjc
 ol44AP9GXKnV7oRC5J2uldXgoE7GQRjf790BwJSFf2qHGPJeUwD6AzK4IH2KIEmW
 XB8DEzDKabDKCt0bsTgM7NPqMXPOyA8=
 =o2lX
 -----END PGP SIGNATURE-----

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

Pull signal handling updates from Christian Brauner:
 "This stops TIF_NOTIFY_SIGNAL from interrupting work that can't be
  restarted and fixes a bunch of coredump and signal bugs.

  TIF_NOTIFY_SIGNAL kicks a task out of an uninterruptible sleep so it
  returns to userspace, runs its task work and goes back to sleep. That
  breaks coredumps: dump_interrupted() only lets fatal signals interrupt
  a dump and writes to a regular file ignore TIF_NOTIFY_SIGNAL. But the
  pipe and the socket paths check signal_pending() Adeep down in code
  that is shared with regular syscalls and bail. So a crashing process
  with io_uring requests in flight loses most of its coredump.

  In the selftest an unfixed kernel delivers 357324 of at least 5111808
  bytes. And io_uring isn't the only source. klp_send_signals(),
  bpf_task_work_schedule_signal(), landlock's tsync, kthread_stop() and
  the printk kunit test raise the bit as well, some of them from irq
  context against any task. So this can't be fixed per subsystem and the
  state has to be per-task and ambient.

  Add PF_NO_NOTIFY_SIGNAL and no_notify_signal_save()/restore() helpers
  modelled on memalloc_nofs_save(). Inside such a section
  signal_pending() ignores TIF_NOTIFY_SIGNAL. Coredumps, the smb send
  path, which hand-rolled its own version of this, and the pid namespace
  reaper, which busy-looped when the bit kept getting raised, are
  converted.

  The second part is a set of fixes that fell out of looking at the
  coredump code with kres and modelling it in TLA+:

  - coredump_finish() woke the parked threads without holding rcu. A
    parked thread can exit on a spurious wakeup and be freed before
    wake_up_process() takes its pi_lock.

  - Only SIGKILL and the freezers interrupt a dump now and the three
    freezers agree. Power management and cgroup v1 freezing aborted a
    dump while a cgroup v2 freeze either waited for the dump or cut it
    short depending on where the core went.

  - io-wq set its exit bit without a barrier against the task work that
    creates workers. On weakly ordered architectures exit could hang on
    worker_done.

  - retarget_shared_pending() slingshotted a shared signal to the dumper
    when a zapped sibling restored its signal mask. That set
    TIF_SIGPENDING on the dumper and truncated the core.

  - A tracer could clear the signal mask of a user worker with
    PTRACE_SETSIGMASK and inject a coredump signal. An io-wq worker of
    an SQPOLL ring dumping core deadlocks the whole group.
    PTRACE_SETSIGMASK is refused for user workers now and
    __set_task_blocked() enforces the fork-time mask.

  - exec cancels io_uring requests before de_thread() so a worker
    creation queued as task work can't add a thread to a thread group
    that de_thread() just took down.

  - No io threads are created from a PF_SIGNALED or PF_POSTCOREDUMP
    creator anymore. Such a worker was invisible to zap_process() but
    still decremented threads_remaining on exit so the dumper could
    leave coredump_wait_inactive() early.

  Also included are a comment that do_each_pid_task() needs
  tasklist_lock, a READ_ONCE() in pid_alive() and a regression test for
  fork() into a pid namespace whose ancestor lost its init"

* tag 'kernel-7.4-rc1.signal' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (21 commits)
  pid: use READ_ONCE() in pid_alive()
  selftests: pid_namespace: test fork with dead ancestor
  pid: document that do_each_pid_task() needs tasklist_lock
  signal: enforce the user worker signal mask in __set_task_blocked()
  fork: use SIG_KERNEL_ONLY_MASK for the user worker signal mask
  fork: don't create io threads once PF_POSTCOREDUMP is set
  fork: move the coredump and exec checks into create_io_thread()
  exec: cancel io_uring requests before de_thread()
  selftests/coredump: expect PTRACE_SETSIGMASK to be refused on a user worker
  selftests/coredump: test a user worker as the coredumping thread
  ptrace: refuse to change the signal mask of a user worker
  selftests/coredump: test shared signal retargeting during a dump
  signal: only SIGKILL and the freezers interrupt a coredumping task
  signal: don't retarget shared signals in a dying thread group
  io-wq: order the exit bit against worker creation task work
  coredump: hold RCU while releasing parked threads
  pid_namespace: prevent TIF_NOTIFY_SIGNAL from interrupting the reaper
  smb: prevent TIF_NOTIFY_SIGNAL from interrupting
  selftests/coredump: test that TIF_NOTIFY_SIGNAL doesn't truncate a coredump
  coredump: prevent TIF_NOTIFY_SIGNAL from interrupting coredumps
  ...
2026-10-19 16:22:15 -10:00
Linus Torvalds
e86d265826 namespace-7.4-rc1.misc
Please consider pulling these changes from the signed namespace-7.4-rc1.misc tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlQAKCRCRxhvAZXjc
 okOqAP98o3UxyJOsSJfNJpr0OnHzk/WHbt8Qm7Lmk0Xgt2h6BgD/Ypf5v68wiCaS
 eg6X3g3wR4tLMbdTkEy5tekLG80Alg4=
 =36S+
 -----END PGP SIGNATURE-----

Merge tag 'namespace-7.4-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull namespace updates from Christian Brauner:

 - Reject uid_map, gid_map and projid_map values that don't fit in a
   u32.

   map_write() parsed with simple_strtoul() and truncated modulo 2^32 on
   64-bit so "4294967301 1000 1" was installed as "5 1000 1" without an
   error. Each field is parsed with kstrtou32() now and selftests cover
   the out-of-range, negative and in-range cases. This isn't a security
   fix. The truncated values were valid ids and every later check still
   applied to them.

 - Annotate struct uid_gid_map's forward and reverse pointers with
   __counted_by_ptr and add a KUnit suite for inserting and sorting
   extents.

   insert_extent() wrote to forward[nr_extents] before bumping the count
   which the annotation flags, so it bumps first now. Two follow-up
   fixes rename the now global helpers to uid_gid_map_insert_extent()
   and uid_gid_map_sort(), since the btrfs self-tests have their own
   insert_extent(), and guard the declarations on CONFIG_KUNIT.

 - Drop the BUG_ON() NULL checks in copy_mnt_ns() and copy_utsname().
   create_new_namespaces() always passes a valid pointer and the other
   copy_*_ns() helpers don't check either.

 - Remove a dead key_put() on the create_user_ns() error path.

* tag 'namespace-7.4-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  selftests/namespaces: add uid_map/gid_map range tests
  userns: reject uid_map/gid_map values that do not fit in u32
  userns: declare the KUnit-visible helpers whenever KUnit is enabled
  userns: rename insert_extent() and sort_idmaps()
  userns: Add KUnit test suite for uid_gid_map
  userns: Add __counted_by_ptr attribute to struct uid_gid_map
  fs: namespace: drop BUG_ON() in copy_mnt_ns()
  uts: drop BUG_ON() in copy_utsname()
  userns: remove dead key_put() on the create_user_ns() error path
2026-10-19 16:09:10 -10:00
Linus Torvalds
def41b7bd4 ipc-7.4-rc1.misc
Please consider pulling these changes from the signed ipc-7.4-rc1.misc tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlQAKCRCRxhvAZXjc
 omTYAPkBx1efHh/CYYRuxLKrV91qPXudLFky3pnQg7TnOJseTQD+OhT3Dk53T0CN
 46LdledXlcU7uiCG7gSMY72XWXvL1Ac=
 =M1pi
 -----END PGP SIGNATURE-----

Merge tag 'ipc-7.4-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull ipc fix from Christian Brauner:
 "This fixes a leak in mqueue.

  A task in another thread group sharing the file table could register
  an mq_notify() and exit without closing the queue. The registration
  was never torn down and pinned the notification skb, the netlink
  socket, a pid reference and a user namespace reference forever.

  Stale registrations are released on inode eviction now"

* tag 'ipc-7.4-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  ipc/mqueue: release notification resources during inode eviction
2026-10-19 15:57:25 -10:00
Linus Torvalds
c03c1a1450 Linux 7.3 2026-10-18 13:14:58 -10:00
Linus Torvalds
f909e534f5 SCSI fixes on 20261018
All fixes in drivers (or the tape ULD) and one core fix to bsg (the
 block ioctl equivalent of sg_io).  The biggest is the race in auth
 updates fix in iscsi configfs, but the next biggest one is in bsg but
 the generic pieces of that are mostly threading reply_len.
 
 Signed-off-by: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
 -----BEGIN PGP SIGNATURE-----
 
 iLgEABMIAGAWIQTnYEDbdso9F2cI+arnQslM7pishQUCatTZmRsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDImHGphbWVzLmJvdHRvbWxleUBoYW5zZW5wYXJ0bmVy
 c2hpcC5jb20ACgkQ50LJTO6YrIWZfAD/ZC6Pwo0OMS8MuYYGwb+fF2YM0Msr+zAG
 4gDRU5yDWl0A/jEw1iFbmGyoNTtBTHSE9I38j/nRAaa+UT/JeS4q0g1E
 =wBqG
 -----END PGP SIGNATURE-----

Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
 "All fixes in drivers (or the tape ULD) and one core fix to bsg (the
  block ioctl equivalent of sg_io).

  The biggest is the race in auth updates fix in iscsi configfs, but the
  next biggest one is in bsg but the generic pieces of that are mostly
  threading reply_len"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: bsg: Pass reply_len to bsg_setup_queue() to fit UFS ARPMB replies
  scsi: libsas: Fix SMP IO deadlock during HA resume
  scsi: libiscsi: Validate the task named by a management response
  scsi: libiscsi: Validate the ITT reflected in a Reject PDU
  scsi: libiscsi: Reject a negative task index from parse_pdu_itt
  scsi: target: iscsi: Fix race in discovery auth updates
  scsi: target: Disable interrupts while holding delayed_cmd_lock
  scsi: st: Fix use-after-free race between st_remove() and st_open()
  scsi: st: Save the visited block for the partition the drive is in
  scsi: xen/scsifront: Check for a NULL shadow entry on a backend response
2026-10-18 09:06:02 -10:00
Borislav Petkov (AMD)
5dbc181a22 Merge remote-tracking branches 'ras/edac-drivers' and 'ras/edac-misc' into edac-updates
* ras/edac-drivers:
  MAINTAINERS: Orphan drivers/edac/i3200_edac.c
  EDAC/skx_base: Fix ambiguous bitwise and logical operator style
  EDAC/i10nm: Fix mdev reference leak in i10nm_get_ddr_munits()
  MAINTAINERS: Orphan drivers/edac/xgene_edac.c
  MAINTAINERS: Orphan drivers/edac/x38_edac.c
  MAINTAINERS: Orphan drivers/edac/i82975x_edac.c
  EDAC/dummy: Add a dummy EDAC driver
  EDAC/ie31200: Disable PCI device when probing fails
  EDAC/intel-bff: Report frequent filter overflows
  EDAC/intel-bff: Compute unique ID for overflowed filter
  EDAC/intel-bff: Reset bitfix filter when it overflows
  EDAC/intel-bff: Add Diamond Rapids support
  EDAC/intel-bff: Add stub Intel bitfix filter driver
  x86/mce: Add enumeration for Intel bitfix filter reset
  cacheinfo: Export get_cpu_cacheinfo_id() for loadable modules
  EDAC/i10nm: Fix Granite Rapids ADXL MC mapping

* ras/edac-misc:
  EDAC/{bluefield,loongson}: Use named initializers for acpi_device_id
  MAINTAINERS: Update Qiuxu Zhuo's email address

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
2026-10-18 12:01:02 -07:00
Linus Torvalds
8486d35712 spi: Fixes for v7.3
A small collection of driver specific fixes, all quite important if you
 have the relevant hardware.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQReagvpf3TrrA7BoYYv73Ows9A4iQUCatTACAAKCRAv73Ows9A4
 if2lAQDfQLZHMIvrU2wGNFBX2CUe2repS3JyRnmRalP9nXSVkAEAgS4wY/wU8wzQ
 o+7ajrnUAZjgx/IK3HKoV0fXMOvlTAw=
 =1PL3
 -----END PGP SIGNATURE-----

Merge tag 'spi-fix-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi

Pull spi fixes from Mark Brown:
 "A small collection of driver specific fixes, all quite important if
  you have the relevant hardware"

* tag 'spi-fix-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: spi-fsl-lpspi: directly return ret in fsl_lpspi_transfer_one()
  spi: spi-fsl-lpspi: pass struct fsl_lpspi_data instead of struct spi_controller if possible
  spi: imx: fix slab corruption from undersized DMA bounce buffers
  spi: tegra114: assert CS GPIO for every transfer in a message
2026-10-18 08:59:16 -10:00
Linus Torvalds
3d679a244e regmap: Fixes for v7.3
The main thing here is a fix for lockdep warnings with MMIO regmaps that
 use a raw spinlock and a cache, some other lockdep fixes we'd done for
 the benefit of the maple tree on sleeping buses meant that we were doing
 allocations for those MMIO regmaps under a raw spinlock.  While fixing
 that Michael Reeves also noticed that the debugfs files were briefly
 available without the cache structures backing them.
 
 There's also a fix for interrupt freeing on error in regmap-irq which
 had been hanging around because it's not super urgent.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQReagvpf3TrrA7BoYYv73Ows9A4iQUCatS/PwAKCRAv73Ows9A4
 idqeAP4y6bdFUzY0e9Ntiixana3IyzJ2dxzrjHIFHcOZl02UhwD8D2jWwFIw0CIs
 izZUkBabg5UyIeM1NkzZWtmDhkZTaAk=
 =AS9J
 -----END PGP SIGNATURE-----

Merge tag 'regmap-fix-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap fixes from Mark Brown:
 "The main thing here is a fix for lockdep warnings with MMIO regmaps
  that use a raw spinlock and a cache, some other lockdep fixes we'd
  done for the benefit of the maple tree on sleeping buses meant that we
  were doing allocations for those MMIO regmaps under a raw spinlock.

  While fixing that Michael Reeves also noticed that the debugfs files
  were briefly available without the cache structures backing them.

  There's also a fix for interrupt freeing on error in regmap-irq which
  had been hanging around because it's not super urgent"

* tag 'regmap-fix-v7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
  regmap: Drop map lock during cache init and exit
  regmap: Remove debugfs before cache teardown
  regmap: irq: Free the irqdomain we create
2026-10-18 08:36:29 -10:00
Linus Torvalds
72732cbee6 i2c-fixes for v7.3-rc8
Three independent clock management fixes, plus one for a simple
 reset mask blunder in the qcom-cci interrupt handler.
 
 - qcom-cci: prevent lost reset requests during interrupt handling
 
 - qcom-geni: preserve the selected source clock
 
 - viai2c-wmt: fix clock reference leak
 
 - xiic: fix clock disable warnings during removal
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQScDfrjQa34uOld1VLaeAVmJtMtbgUCatTkqQAKCRDaeAVmJtMt
 bmntAQCohnAvbkYQh6VfaPl5TzQPytHWTMg3AiqyLeDWs7MuAAD/RQS6vFQMyzvj
 kD1fK/ocHIs/D59T21JiOzhhiNSSNwo=
 =SdHD
 -----END PGP SIGNATURE-----

Merge tag 'i2c-fixes-7.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux

Pull i2c fixes from Andi Shyti:
 "Three independent clock management fixes, plus one for a simple
  reset mask blunder in the qcom-cci interrupt handler"

* tag 'i2c-fixes-7.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux:
  i2c: xiic: restore non-managed runtime PM to fix clk WARN flood
  i2c: qcom-cci: Fix HALT_ACK reset request being dropped
  i2c: qcom-geni: Restore the source-clock selection policy
  i2c: viai2c-wmt: Fix clock leak in wmt_i2c_probe()
2026-10-18 08:16:56 -10:00
Linus Torvalds
a0ff06b3a7 firewire fixes for 7.3-final
Fix a regression introduced in v6.19. It affects cancellation of the
 timer for split transaction timeout when handling a response. The issue
 is unlikely to occur in practice.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQE66IEYNDXNBPeGKSsLtaWM8LwEwUCatQ4OwAKCRCsLtaWM8Lw
 E2sNAP49Zw/nOmC9OaYKthJtKUup5Oi+4kxQnNjnDDNIraa/2gEAnhum0sbs/PHt
 VCRl5/WMsHPQRgNMrihFO6G+2+KACgQ=
 =F+OT
 -----END PGP SIGNATURE-----

Merge tag 'firewire-fixes-7.3-final' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394

Pull firewire fix from Takashi Sakamoto:
 "Fix a regression introduced in v6.19. It affects cancellation of the
  timer for split transaction timeout when handling a response. The
  issue is unlikely to occur in practice"

* tag 'firewire-fixes-7.3-final' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
  firewire: core: fix race condition in split transaction handling
2026-10-18 08:13:58 -10:00
Linus Torvalds
53cbbb09c1 x86/core update:
- Emit the FineIBT paranoid "cs" prefix as a byte,
    to work around a GNU toolchain build warning (Kees Cook)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUo24RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1i2PhAAm4V2NsF3knhwSQ2WC55RTZbXmlYLAJAq
 57rUJejuVM7eHrNhsT0FJIesMLbIDHz5RzVSllN7ESBB5zEkbiyIxRonaG6WTiKk
 G0y/IyPsA4BWFp9Ojq5NyDhD95do0gTc08Oxd8eEeJULBzGAaErGl8ExX15SQJkh
 eMVdAN4RcathkVrgKbdTklXkECa9j4I+rfBlkX4g8bJ22mbi8h8nfYNrlkX9vncf
 IxWNwUh3eKAamLHnKeqbmDUOUrP7ss/hWGWRG0La7G+8jWoX3YlWQdzJeMtWzdV6
 unNeFIjjP4lvBtKDkfUBf0JZN+mKo/Zwl5dWNQ/A26vOJTJmmFx03YsuWYDXR0+Q
 Vqvm09PSSPbKdGWT7MmlJNhEdBUPOLmCSOT06hfHYKsk+Qkx8XMUIz/bTbNW5gVP
 eeok5YWMBn3dQ2B4+LfBqxwMeu+jripgJjN0bj1JOHwkMzYthRce3SHyWRW6hsIh
 oOReFnmxaImkh22ia1RLnPscp2efkV9InL5IpNXIH3MXpvlNiUfd0OiDMSGS6ici
 AnErf5LK1aXLI+agmBx+7XovUb7umnWpUyvLy3f93E6i6o3urGJ2Tg9Eq+pLJPOR
 OAYkzsdJiLCVZqiFm+S+8xNCmlnOs76rKk9bOElOBXUej80q0zwQXHzJ8Pl+yBU1
 zw54ecYyK8A=
 =xZLR
 -----END PGP SIGNATURE-----

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

Pull x86/core update from Ingo Molnar:

 - Emit the FineIBT paranoid "cs" prefix as a byte,
   to work around a GNU toolchain build warning (Kees Cook)

* tag 'x86-core-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/kcfi: Emit the FineIBT paranoid "cs" prefix as a byte
2026-10-18 07:48:22 -10:00
Linus Torvalds
23a38e7bb2 x86 fix:
- Fix kCFI decoding bug on CONFIG_FINEIBT=y kernels running in
    kCFI mode (Kees Cook)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUkT8RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1i61BAAiBzFw9ztotYF8xYfsdETueYkK9Qh04sz
 7zPFIe6XcGUCKO25EScQlG49wuLFO/n+tGuAEw4MgLsaM6wlzsAz1AY4xTVbkj4T
 G7dckQWn0gYt3kooqO+YyTLpko1EGWSngGvLFEEGHpP6rTYVzI3sckfWcJvM1GJ1
 UmfPnlOAJDDlzUeGzTJz6J7S5y5/Cb/AWTaktnHb2oiQo0TQFlo5vm2uWR7s4uRp
 80WesVJi+lWpCf3BS+qDovXI0wsJCV7g4DpaxZGKuLUspOUjAOqG0/X2LJuNz0jD
 PTZT4JZOf3q7k5av10nNRyu3FwSHm/6zR99UXeJgQDq6aLtaOAoEgOz7W0si10gS
 uEzzwL0JaavDDtaSUMI6x12bcGmBddCXT4+w+/xWyPSQEj+26JJ0cj5RG1KvXUg/
 iTHKd7PZHC6v2B1/8w6hexBxrYvpSb08eO/8w5kOO82fhhS/os5mvaPd1NafeUSM
 xqiQYRvGUjJPywdYAFZFeTU7HMZQAa9N3dhA0T1G4ERjqHhd/MufNgiFadh/1DA1
 VF+ManJ3KsG+BN0DcP9si5l9MTUJsy6f2n7BRjU4vvx7sCuhsAcQYNhGvAy1F7/0
 VsYIpFvFkyUY4SDGEoZw+5t5goAcWDFDZxdjsbXvjdsDpDIHfbWRwU6KpfcoQ7Qr
 s5STEOpNHhY=
 =vXkY
 -----END PGP SIGNATURE-----

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

Pull x86 fix from Ingo Molnar:

 - Fix kCFI decoding bug on CONFIG_FINEIBT=y kernels running in
   kCFI mode (Kees Cook)

* tag 'x86-urgent-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/kcfi: Decode the kCFI check from the trap address
2026-10-18 07:38:37 -10:00
Linus Torvalds
88328f850d Scheduler fixes:
- Fix __sched_setscheduler() class change race causing
    lost reschedules, exposed by recent RCU changes (K Prateek Nayak)
 
  - Fix s64 multiplication overflow in place_entity()'s vlag
    scaling code that can corrupt an entity's placement (Hui Su)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUkEcRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1j67g/+NaApCtC988ZaWipMkUyRsdYBQAxP+Nhy
 TkodntDpFgL4rqLe5guo8d3NXMLJwnvhygcAC7pVy0dfVzWai+ExAUiABggjtrjF
 mADPsPmhnzM/gNsgz//2hjJIpam5mivF9aIr20X04UtD9Dtn950RzKYqDibA6nv5
 wH7xeB8+vfBElH++le/8NmRCH+6IjVMvpzpDqphbtzssdUutDHkQQRC2epXzIm1/
 wjA0qoqoLWqyw1KgIcvP+ixvH1LT57b8K8NzJxnS4lsx62NzHiN+ZahkSmM9JNIY
 WEjqOC1C3NyjwyKcroTuaWLuvjxa0R6Rp5mWabEGHXbhQjDJmWiPgacsmYS1ywFz
 e5bzwpklcYqq/3x0JaYIhEt41zZ9HkN4X0TZzTsjDOotdxq8v3A81At39YycRRUZ
 l6cFvxbQZbCXBAHdIKVzQAAy3t19zK8xsj1mgyffseFGXXMrJucw+IHBL3ExxmSA
 WVZW9GRxStFvqzEBu0TxNFjH+VBBi4WGWotmQq4gRH1+gSQIbttwXYXZkt+B8nAT
 u9M/CKFeFqGzqF6wZWMjPo8l1sOo9lzdCwFjU78Tjz2tGsL1tuA1Uia8rCxE7Hnw
 josNULOdpiRhjrz9G0ycOyMtxu6GJ/sgoFeQiuKQ6MWsDI1xfdg/kM0EkWMkfXK2
 Lhc0okwHz5o=
 =bK3k
 -----END PGP SIGNATURE-----

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

Pull scheduler fixes from Ingo Molnar:

 - Fix __sched_setscheduler() class change race causing
   lost reschedules, exposed by recent RCU changes (K Prateek Nayak)

 - Fix s64 multiplication overflow in place_entity()'s vlag
   scaling code that can corrupt an entity's placement (Hui Su)

* tag 'sched-urgent-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched/fair: Avoid overflow in place_entity()
  sched/core: Call wakeup_preempt() for queued tasks during class change
2026-10-18 07:35:30 -10:00
Linus Torvalds
8573787061 Perf events fixes:
- Fix x86 Intel uncore driver bug on Diamond Rapids CPUs
    that erroneously always-cleared the invert bit (Guixiong Wei)
 
  - Fix accounting bug in the perf mlock 'gift' code causing
    unrelated RLIMIT_MEMLOCK functionality to fail (Lorenzo Stoakes)
 
  - Fix perf_pmu_migrate_context() bug leaving events behind during
    CPU hot-unplug (Haris Okanovic)
 
  - Update cgroup time when rotating multiplexed events, to fix
    time_running & scaled counts accounting bug (Antoine Huret)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmrUjygRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1jyHg/9EZ9g8CN+qf0pOiLM3yOZbyoe88VMZ2ZH
 QBYGc1JgBVrrjT6JQYjuNQLakv9BJmbgQ1S/xtpaD93CtzJDzK/Jsg4SwuTINlE7
 wB+P8lpoTMhE1tfP7rwOaGdZD9qmkJIwALaDmTFayk5z87MzEbSmlLzRRC2TlB8g
 R3hF4KOtYtBwQKCrPIXiHi/LbHmx0c0zP4J9M/MbRvNLM8iZ47mF5PL++mpLyuTS
 z+YhUu21cp5SAotOZNsgD1VrVOcPy0vpIdJVYSSC9+OWfvuENoqkcciyoSXWNkT0
 O7RbMtBwfS7k2+wA2JgQ8ETcGVB0+G45NWXwHBmLHuU5XK5/Whbzn5cUKhvIdS0J
 xnr1MCWm/R+cC6i/wgfH1ysd8VACI/51Lng88ckXaVmkUajj6RZPo+VB2FRG4pvq
 FMC/Ap/fSjk2SdAjKHRMp87g19aOsoz+aWb6nGZPApMj0EGcxpPAZAcMSi+HUNyI
 N5MmAOiD5imMPWB6UX3OCeDgjwUD2Hnbn3NkZeK2Glm7dUUr1MZTEgQ1QlnBv+Ou
 vYMkVVEVEq9NJVA2ShnBF5+wRwUpLzI0+9w8L7ZUQPkiYL9tXAB988qYaQ5k08SZ
 iUo9EVj48QFqR4ILNY4iAyp9AuT7LuKMF0cnO+O8rEGR8gxHBOBYLxVzR/xB12lq
 48D1b2q3EiQ=
 =AxtL
 -----END PGP SIGNATURE-----

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

Pull perf events fixes from Ingo Molnar:

 - Fix x86 Intel uncore driver bug on Diamond Rapids CPUs
   that erroneously always-cleared the invert bit (Guixiong Wei)

 - Fix accounting bug in the perf mlock 'gift' code causing
   unrelated RLIMIT_MEMLOCK functionality to fail (Lorenzo Stoakes)

 - Fix perf_pmu_migrate_context() bug leaving events behind during
   CPU hot-unplug (Haris Okanovic)

 - Update cgroup time when rotating multiplexed events, to fix
   time_running & scaled counts accounting bug (Antoine Huret)

* tag 'perf-urgent-2026-10-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf: Update cgroup time when rotating multiplexed events
  perf: Fix perf_pmu_migrate_context() leaving events behind
  perf: Track the perf mlock gift separately
  perf/x86/intel/uncore: Fix DMR CXL CM invert filter
2026-10-18 07:20:03 -10:00