Commit Graph

1467947 Commits

Author SHA1 Message Date
Ruoyu Wang
43eb13f133
i2c: ocores: Disable clock on failed resume
ocores_i2c_resume() enables the controller clock before reinitializing
the hardware. If the clock rate changed while the device was suspended,
ocores_init() may reject the resulting prescaler. The callback then
returns an error with the clock still enabled, while the controller
itself remains disabled.

Disable and unprepare the clock when ocores_init() fails so the failed
resume path balances the successful clk_prepare_enable() call.

This issue was found by a static analysis checker and confirmed by manual
source review.

Fixes: e961a094af ("i2c: ocores: add common clock support")
Signed-off-by: Ruoyu Wang <ruoyuw560@gmail.com>
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://patch.msgid.link/20260813153155.3953577-1-ruoyuw560@gmail.com
2026-08-19 21:55:52 +02:00
Carlos Song
a4c419356a
i2c: imx-lpi2c: reset controller in probe stage
Reset I2C controller in probe stage to avoid unexpected LPI2C controller
state left from previous stages and hang system boot.

Per the LPI2C reference manual, section 7.1.4 "Controller Control (MCR)"
and 7.1.20 Target Control (SCR), the RST bit (bit 1) description states:

  "The reset takes effect immediately and remains asserted until negated
  by software. There is no minimum delay required before clearing the
  software reset."

Therefore, it is safe to write 0 to MCR and SCR immediately after
asserting the RST bit without any additional delay.

Signed-off-by: Carlos Song <carlos.song@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260716071957.2670263-3-carlos.song@oss.nxp.com
2026-08-19 21:55:52 +02:00
Carlos Song
cbd043b00e
i2c: imx-lpi2c: properly unwind resources on probe failure
When probe fails at devm_clk_rate_exclusive_get() or clk_get_rate(),
which occur before runtime PM is initialized, the clocks enabled by
clk_bulk_prepare_enable() are never disabled.

When probe fails after runtime PM is initialized, the previous error
path called pm_runtime_put_sync(), which triggers the runtime suspend
callback. However, due to different clock management strategies on
different SoCs[1] (to avoid deadlocks between the global prepare_lock
and runtime PM), the callback may only disable clocks without
unpreparing them, causing an incomplete unwind.

Introduce a new error label 'clk_disable' to explicitly invoke
clk_bulk_disable_unprepare(). Replace pm_runtime_put_sync() with the
sequence of pm_runtime_disable(), pm_runtime_set_suspended() and
pm_runtime_put_noidle() to bypass the runtime suspend callback during
error recovery. During the LPI2C driver probe phase, clock APIs are
used exclusively to manage clocks. Once probing succeeds, clock
management is handed over to the runtime PM core.

[1] https://lore.kernel.org/all/20251125084718.2156168-1-carlos.song@nxp.com/

Signed-off-by: Carlos Song <carlos.song@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260716071957.2670263-2-carlos.song@oss.nxp.com
2026-08-19 21:55:52 +02:00
Pei Xiao
d1f112e2fa
i2c: busses: drop redundant dev_err_probe() around irq helpers
platform_get_irq(), devm_request_irq() and devm_request_threaded_irq()
already print an error message via dev_err_probe() on failure, so
wrapping their return value with another dev_err_probe() results in
duplicate error output.

Drop these redundant dev_err_probe() calls across i2c bus drivers
and return the error code directly instead.

Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/aea09858af6be39497325e2560267771ed62e6b0.1784537126.git.xiaopei01@kylinos.cn
2026-08-19 21:55:51 +02:00
Linus Torvalds
abea5c3493 i2c for v7.3
Core and helpers:
 - support bus recovery with single-ended GPIOs
 - acpi: clean up resource handling
 - acpi: force ELAN1300 to 100 kHz
 - algo-bit: allow consumers to skip the optional bus test
 
 Drivers:
 - use generic bus frequency definitions in nomadik,
   octeon-core, microchip-corei2c, k1, davinci and pnx
 - i2c-gpio: support multiple buses sharing the same SCL line
 - qup: propagate clock enable failures
 - spacemit: configure SCL timing and clean up clock handling
 - amd-asf: guard against oversized firmware length
 
 qcom-geni:
 - add tracepoints for bus setup, interrupts and errors
 - use dedicated completion events for abort and reset
 - distinguish address and data NACK handling
 - cancel transfers before falling back to abort
 - simplify runtime PM and resource management
 - refactor resource and serial engine initialization
 
 DT bindings:
 - convert Altera bindings to DT schema
 - convert Axxia bindings to DT schema
 
 New support:
 - R-Car Gen5 and R-Car X5H
 - Axiado AX3005
 - Qualcomm Nord SA8797P
 - Qualcomm SA8255p
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQScDfrjQa34uOld1VLaeAVmJtMtbgUCaoA//QAKCRDaeAVmJtMt
 bvzYAQDPhRd2O6BruFmCkxKKvlrxZ2AaHQX/ZHLNqLAq/oX4NwD8CSecgva9faf/
 bC+kTGoTMBhje3FEJFufHKe2YtmJdgg=
 =u6az
 -----END PGP SIGNATURE-----

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

Pull i2c updates from Andi Shyti:
 "The main changes are support for shared SCL lines in i2c-gpio, a
  larger qcom-geni update covering tracing and transfer recovery and
  support for R-Car Gen5.

  The rest is mostly smaller driver, core and DT binding updates.

  Core and helpers:
   - support bus recovery with single-ended GPIOs
   - acpi: clean up resource handling
   - acpi: force ELAN1300 to 100 kHz
   - algo-bit: allow consumers to skip the optional bus test

  Drivers:
   - use generic bus frequency definitions in nomadik, octeon-core,
     microchip-corei2c, k1, davinci and pnx
   - i2c-gpio: support multiple buses sharing the same SCL line
   - qup: propagate clock enable failures
   - spacemit: configure SCL timing and clean up clock handling
   - amd-asf: guard against oversized firmware length

  qcom-geni:
   - add tracepoints for bus setup, interrupts and errors
   - use dedicated completion events for abort and reset
   - distinguish address and data NACK handling
   - cancel transfers before falling back to abort
   - simplify runtime PM and resource management
   - refactor resource and serial engine initialization

  DT bindings:
   - convert Altera bindings to DT schema
   - convert Axxia bindings to DT schema

  New support:
   - R-Car Gen5 and R-Car X5H
   - Axiado AX3005
   - Qualcomm Nord SA8797P
   - Qualcomm SA8255p"

* tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux: (33 commits)
  i2c: core: support recovery for single-ended GPIOs
  i2c: rcar: add R-Car Gen5 support
  dt-bindings: i2c: rcar-i2c: Document R-Car X5H support
  i2c: i2c-gpio: Enhance driver for buses with shared SCL
  i2c: algo: bit: Allow to skip bit test
  i2c: qcom-geni: Add trace events for Qualcomm GENI I2C driver
  i2c: qcom-geni: trace: Add trace events for Qualcomm GENI I2C
  i2c: qup: Propagate clock enable failures
  i2c: qcom-geni: distinguish address-phase and data-phase NACK
  i2c: qcom-geni: use dedicated completions for abort and reset events
  i2c: qcom-geni: use cancel command before abort on transfer timeout
  dt-bindings: i2c: cdns: add Axiado AX3005 I2C variant
  i2c: qcom-geni: Use devm_pm_runtime_enable() for PM management
  dt-bindings: i2c: qcom,sa8255p-geni-i2c: Add compatible for Nord SA8797P
  i2c: nomadik: Use generic definitions for bus frequencies
  i2c: octeon-core: Use generic definitions for bus frequencies
  i2c: microchip-corei2c: Use generic definitions for bus frequencies
  i2c: k1: Use generic definitions for bus frequencies
  i2c: davinci: Use generic definitions for bus frequencies
  i2c: pnx: Use generic definitions for bus frequencies
  ...
2026-08-19 09:23:13 -07:00
Linus Torvalds
7711f4417f gpio updates for v7.3-rc1
GPIO core:
 - extend the gpio-regmap abstraction layer with more features allowing users
   to override configuration setting, translate register values and masks and
   enable/disable interrupts
 - extend GPIO kunit tests with suites verifying probe ordering by software
   node devlink support and software node hogs
 - shrink GPIO kunit initialization code
 - coding style updates (remove commas from sentinels where applicable)
 - with all users now converted treewide to using real firmware node links for
   software node GPIO lookup: remove the deprecated label-matching mechanism
   from from GPIO core
 - drop redundant return value check of nonseekable_open() in gpiolib-cdev
 - use IRQ trigger helpers where applicable
 
 Driver updates:
 - refactor error paths and logging in gpio-nomadik
 - use more modern interfaces for getting resources in gpio-rockchip,
   gpio-bt8xx and gpio-pca9570
 - add missing MODULE_DEVICE_TABLE() to gpio-sifive and gpio-vf610
 - drop unused FILONOFF macro from gpio-rcar
 - extend build coverage of ioport GPIO drivers with COMPILE_TEST=y
 - only enable the gpio-rtd driver by default with ARCH_REALTEK=y to avoid
   bloating the build
 - refactor coding style in several drivers
 - use correct endianess translation in gpio-pcf85x
 - add wake-up interrupt support to gpio-mvebu
 - apply initial value in direction output setter in gpio-by-pinctrl
 
 Misc:
 - replace linux/gpio.h inclusions treewide with linux/gpio/legacy.h which now
   exports all the deprecated APIs
 - select GPIOLIB_LEGACY in Kconfig where required treewide
 - use software nodes for gpio-keys in MFD drivers
 
 Devicetree bindings:
 - describe the realtek rtd1625 GPIO controller
 - document new models for gpio-pca95xx and gpio-cadence
 - document new property in gpio-rockchip
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmqET1QACgkQBZ0uy/82
 hMMXLRAArm8tuPq9ehmJIBwSxXmK4HGM9x2PBXBOtv7NZ4x5skSpsMOmJBlb9r3S
 EJ7IK7DIqb1XIilRxgfLwmza9e4wXEQ3OK7lrxx/9qW52XKvJ0JxoUhEw4vn9etJ
 N3qc4p2EByR98PLWrnPmcDyG8oZDzBixcDsaeuvulIDtFklTpTRH0FHuEJQ1sEfa
 2y7/K6/n2Gru56u2iTjW8AIIfG18h2SG9Pm92UL006O6Xl8bKHexrmb98WEpIKoU
 UzKGgQ/alnOFsevt6zuB30StX6qKmagdu1+dRpVypczBaoUjs6YG4EfJQJ0mw/vR
 qBzui/HsGwYlkMmHgVoqSbm0khIS9vd85NSVTk/jC45+ZGyJRmdCJh30VBpXjOy4
 3zEVrZUo0kMIW/foszAqCZrn1P5kpmlwXR3oP89NwMzzEQQFzVjdirXih+dmhq0e
 /nxUjAY2CmEXd4wep183Swobqadi2tyuktWnE1mz/YH2Tv/KlMzzwIQEXyd4jSOc
 gOh8ACVp/wdsvihF+E/kjuRaLs3JX5nvoIMQu0CZAAl6TAYmCrXJbMDSLncY/4jv
 sCWuUVEowR3V+1RpVD++eIOsrD8ItNdn0aY3aXL1ez7oUCsisI651oRUCS/is1S/
 fw4DN5gTdNt+iNUWHIJM3lOPjTPO6hCPXAyht3B6pibCibiI1Dk=
 =rUDt
 -----END PGP SIGNATURE-----

Merge tag 'gpio-updates-for-v7.3-rc1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio updates from Bartosz Golaszewski:
 "GPIO core:
   - extend the gpio-regmap abstraction layer with more features
     allowing users to override configuration setting, translate
     register values and masks and enable/disable interrupts
   - extend GPIO kunit tests with suites verifying probe ordering by
     software node devlink support and software node hogs
   - shrink GPIO kunit initialization code
   - coding style updates (remove commas from sentinels where
     applicable)
   - with all users now converted treewide to using real firmware node
     links for software node GPIO lookup: remove the deprecated
     label-matching mechanism from from GPIO core
   - drop redundant return value check of nonseekable_open() in
     gpiolib-cdev
   - use IRQ trigger helpers where applicable

  Driver updates:
   - refactor error paths and logging in gpio-nomadik
   - use more modern interfaces for getting resources in gpio-rockchip,
     gpio-bt8xx and gpio-pca9570
   - add missing MODULE_DEVICE_TABLE() to gpio-sifive and gpio-vf610
   - drop unused FILONOFF macro from gpio-rcar
   - extend build coverage of ioport GPIO drivers with COMPILE_TEST=y
   - only enable the gpio-rtd driver by default with ARCH_REALTEK=y to
     avoid bloating the build
   - refactor coding style in several drivers
   - use correct endianess translation in gpio-pcf85x
   - add wake-up interrupt support to gpio-mvebu
   - apply initial value in direction output setter in gpio-by-pinctrl

  Misc:
   - replace linux/gpio.h inclusions treewide with linux/gpio/legacy.h
     which now exports all the deprecated APIs
   - select GPIOLIB_LEGACY in Kconfig where required treewide
   - use software nodes for gpio-keys in MFD drivers

  Devicetree bindings:
   - describe the realtek rtd1625 GPIO controller
   - document new models for gpio-pca95xx and gpio-cadence
   - document new property in gpio-rockchip"

* tag 'gpio-updates-for-v7.3-rc1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (61 commits)
  gpio: gpio-by-pinctrl: Apply initial value in direction output wrapper
  dt-bindings: gpio: rockchip,gpio-bank: Add rockchip,grf property
  gpio: Use IRQ trigger mask helpers
  gpio: allow COMPILE_TEST for IOPORT drivers
  gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
  gpio: regmap: Add IRQ enable/disable helpers
  gpio: regmap: Add set_config callback
  gpio: regmap: Add value_xlate callback
  gpio: regmap: Add gpio_regmap_operation to extend reg_mask_xlate callback
  gpio: regmap: Order kernel-doc descriptions with the actual appearance
  gpio: regmap: Apply default resource callbacks for regmap IRQ chip
  gpio: regmap: Provide default IRQ resource request and release callbacks
  Revert "gpio: realtek: Add driver for Realtek DHC RTD1625 SoC"
  gpib: gpio: replace linux/gpio.h inclusion
  Input: matrix_keyboard - replace linux/gpio.h inclusion
  phy: replace linux/gpio.h inclusions
  pcmcia: replace linux/gpio.h inclusions
  ASoC: replace linux/gpio.h inclusions
  mfd: replace linux/gpio.h inclusions
  sh: replace linux/gpio.h inclusions
  ...
2026-08-19 09:10:07 -07:00
Linus Torvalds
d0d82a84c9 power sequencing updates for v7.3-rc1
- add support for new devices to pwrseq-pcie-m2
 - make device matching more fine-grained for cases where the same combo
   chips are wired differently on the M.2 card (and - for instance - don't
   require serial device creation because they expose BT over USB) in
   pwrseq-pcie-m2
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmp9fyoACgkQBZ0uy/82
 hMNUbA/+Kx/J/EaKdgQ3anbjdfByUuVHAAKOLOiLmIgK+EjH1TnBAABXYPwinExy
 a7wb3th7VyHRAIXkVArHJ3cIQg2B2N+L2A+9ABV5z0GGRgzFUaDZv7yn5++LxrAd
 oZ8ug8JcmUmqccdRa7mH0GkQLMK8mWZ/zBnGvd6q8qXFE4wHxM9IUIAyiyMVAqjj
 lX0X2vPaRCAaWzT17iehkA5liZV23ViVcwFj1EK03bFW0nkb/TeyHcuUbHmKdN+6
 YhDkg8g/FGP3gq1T5YPKq3sRzI4qQPRvw5xaynFqn/v156jd7/7rEz+F4LApF1xF
 1S19he1UK1sndouo8CclqEhY1MfgIs/8Gp7PiDK9Koksuc82BYxO9+NzKSnPcImK
 bMiUOwuY37Mpbe0y2j1gmgxVdFcEzksrMTlw2oguVFDfrzUcmL2VdP4J2i8GJqo5
 JKRMhQNwuSF11G1Ke7qKPuve1zbFvxNXcwRzeQK+TXOFcmzU4/akIS6RcDy3Oa3o
 e/lw2DB4vHSbviF7BBgf2aPWCcYJkenG3yUKaSkPBDIE+4q45Xm2bdtwGgJqqof9
 22O7w/MWOk/+WWRVISPHmoJTXuTmhWseFp5W/0EAzLg4C2tNNr/5yB1+S6psOJud
 PV+IF+hkb2IjGr+bTmpv1muFI715r+1Z/6L1hPhWS2Yf6aJkCRQ=
 =1mGa
 -----END PGP SIGNATURE-----

Merge tag 'pwrseq-updates-for-v7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull power sequencing updates from Bartosz Golaszewski:
 "This a very tiny pull for v7.3 from the power sequencing tree. It only
  contains a handful of updates to the pwrseq-pcie-m2 driver:

   - add support for new devices to pwrseq-pcie-m2

   - make device matching more fine-grained for cases where the same
     combo chips are wired differently on the M.2 card (and - for
     instance - don't require serial device creation because they expose
     BT over USB) in pwrseq-pcie-m2"

* tag 'pwrseq-updates-for-v7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  power: sequencing: pcie-m2: Match WCN6855 and WCN7851 UART BT variants by subdevice ID
  power: sequencing: pcie-m2: Add QCA2066 (QCNFA765) BT serdev ID
  power: sequencing: pcie-m2: Add PCI ID for NXP 88W9098 and AW693 Bluetooth
2026-08-19 09:08:06 -07:00
Linus Torvalds
a288cd69f7 pwm: Changes for v7.3-rc1
A bunch of cleanups---in C and Rust---and  a devicetree and driver
 extension for a new SoC variant.
 
 Thanks for Biju Das, Francis Laniel, Guru Das Srinagesh, Markus Elfring,
 Mikko Perttunen, Thierry Reding, and Yi-Wei Wang for their changes and
 further Alexandre Courbot, Benno Lossin, Chen Wang, Geert Uytterhoeven,
 Jon Hunter, Laurent Pinchart, Michal Wilczynski, Mikko Perttunen, and
 Rob Herring for valuable review feedback.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmqCN9MACgkQj4D7WH0S
 /k6YZwgAkCOWUj5cZbcFfNE+AoUyuikvH8zfECfDInGDJMOSSP1BJp1Gfby04D4w
 kPtSvIEpECri6xVkW8vYRKZV2HZVeXCiKFXK8Yz/Z2udOOsDmkTsTBKlYQmyY5nO
 lEOhUnXZ2IgpnAfRRcPmtBxzTQdLpH8Y9xncj77Mhl4qbMqsHC886C4RbxiDyksw
 EAd6U30MbbkPHntQB1/s4rBtqSR9B72L/d84BD9Kbq+N2wvZYpGd9Ym9fG2z3SQg
 rb3XGh+9kE38CO9e+CxTjlzq0wmIq90kJlmHmoPJGazlW2pmDj2pyYr/yEd6w4VM
 85pzQx6oXgx09N53nD3+ncs+SynDoQ==
 =dAjh
 -----END PGP SIGNATURE-----

Merge tag 'pwm/for-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux

Pull pwm updates from Uwe Kleine-König:
 "A bunch of cleanups - in C and Rust - and a devicetree and driver
  extension for a new SoC variant.

  Thanks to Biju Das, Francis Laniel, Guru Das Srinagesh, Markus
  Elfring, Mikko Perttunen, Thierry Reding, and Yi-Wei Wang for their
  changes and further Alexandre Courbot, Benno Lossin, Chen Wang, Geert
  Uytterhoeven, Jon Hunter, Laurent Pinchart, Michal Wilczynski, Mikko
  Perttunen, and Rob Herring for valuable review feedback"

* tag 'pwm/for-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
  pwm: th1520: use vertical import style
  rust: pwm: replace `core::mem::zeroed` with `pin_init::zeroed`
  pwm: rzg2l-gpt: Drop unused rzg2l_gpt_chip parameter from rzg2l_gpt_calculate_prescale()
  pwm: Use seq_putc() calls in pwm_dbg_show()
  pwm: tegra: Add support for Tegra264
  pwm: tegra: Parametrize duty and scale field widths
  pwm: tegra: Modify read/write accessors for multi-register channel
  pwm: tegra: Avoid hard-coded max clock frequency
  pwm: tegra: Prefix driver-local macros and functions
  dt-bindings: pwm: Document Tegra264 controller
  pwm: lpss-pci: Unify coding style of pci_device_id array
  pwm: Unify coding style of of_device_id arrays
  pwm: Unify coding style of acpi_device_id arrays
  pwm: Use named initializers for arrays of acpi_device_id
  pwm: pca9685: Drop unused assignment of acpi_device_id driver data
  pwm: pxa: Depend on OF and simplify accordingly
  pwm: Use named initializers for platform_device_id arrays
  pwm: mc33xs2410: Initialize spi_device_id arrays using member names
2026-08-19 09:03:59 -07:00
Linus Torvalds
1be05c6afb Input updates for v7.3-rc0
- A new driver and device tree binding for Imagis ISA1200 haptic motor
   controller
 
 - Improvements to input core opening, closing and inhibiting devices,
   ensuring devices are fully ready before delivering events, deferring
   handler start() until the device is opened, resyncing state on
   uninhibit, and rejecting inhibit requests during unregistration
 
 - Updates to cap11xx capacitive touch driver to support Microchip
   CAP1114, optional hardware reset GPIO handling, and per-chip LED
   constraints
 
 - Fixes for MELFAS MMS114 touchscreen driver hardening incoming data
   parsing, endianness fixes for I2C packet layout, Y-resolution
   configuration, and refactoring to use chip variant descriptors
 
 - Updates for psmouse driver resolving a potential UAF during protocol
   disconnect, cleaning up PNP ID matching, and making use of guard()
 
 - Fix for FocalTech PS/2 protocol to prevent coordinate underflow and
   cursor jumps at boundaries
 
 - A change to Synaptics driver to enable InterTouch (SMBus) mode on
   Dell Inspiron 3521
 
 - Refactoring of PA-RISC keyboard support in gscps2 to supply keymaps
   via software node device properties, removing architecture-specific
   tables from the generic atkbd driver
 
 - Updates to Samsung keypad driver to keep interrupts disabled while
   device is closed, along with wakeup logic cleanups and use of
   pm_runtime_active guards
 
 - Updates to NXP i.MX SNVS power key driver to report press events
   during resume to avoid lost events, and error handling cleanups
 
 - Updated TCA8418 keypad driver enabling overflow mode per hardware
   errata
 
 - Conversion of ROHM BD718x7 and BD71828 PMIC drivers to instantiate
   gpio-keys child devices using software nodes instead of platform data
   (coming from MFD immutable branch)
 
 - Updates to Synaptics RMI4 driver to use touchscreen dimensions from
   platform data when specified
 
 - Firmware update speed optimization for IC Type 0x19 in ELAN I2C driver
 
 - A fix to Azoteq IQS5xx driver to validate firmware record spans
   against programmable map size
 
 - Update to Samsung SUR40 contact count based on PixelSense
   specification
 
 - A number of updates to device tree bindings, including TI TPS65217
   power button schema conversion and new compatibles for FocalTech
   FT3D81 and Synaptics S3706B
 
 - Other assorted driver cleanups, style fixes, and conversions to
   modern string and cleanup helpers
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQST2eWILY88ieB2DOtAj56VGEWXnAUCaoFTdwAKCRBAj56VGEWX
 nPMxAP9MpDgWs3mIjYFwg555CQyD0ZD44WOC48yQtt7hfYW/GQEArVmBQY0YW9D6
 DiSCos8VK7bCZFcLwrVpe+BzbP6E2QA=
 =FEOj
 -----END PGP SIGNATURE-----

Merge tag 'input-for-v7.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input updates from Dmitry Torokhov:

 - A new driver and device tree binding for Imagis ISA1200 haptic motor
   controller

 - Improvements to input core opening, closing and inhibiting devices,
   ensuring devices are fully ready before delivering events, deferring
   handler start() until the device is opened, resyncing state on
   uninhibit, and rejecting inhibit requests during unregistration

 - Updates to cap11xx capacitive touch driver to support Microchip
   CAP1114, optional hardware reset GPIO handling, and per-chip LED
   constraints

 - Fixes for MELFAS MMS114 touchscreen driver hardening incoming data
   parsing, endianness fixes for I2C packet layout, Y-resolution
   configuration, and refactoring to use chip variant descriptors

 - Updates for psmouse driver resolving a potential UAF during protocol
   disconnect, cleaning up PNP ID matching, and making use of guard()

 - Fix for FocalTech PS/2 protocol to prevent coordinate underflow and
   cursor jumps at boundaries

 - A change to Synaptics driver to enable InterTouch (SMBus) mode on
   Dell Inspiron 3521

 - Refactoring of PA-RISC keyboard support in gscps2 to supply keymaps
   via software node device properties, removing architecture-specific
   tables from the generic atkbd driver

 - Updates to Samsung keypad driver to keep interrupts disabled while
   device is closed, along with wakeup logic cleanups and use of
   pm_runtime_active guards

 - Updates to NXP i.MX SNVS power key driver to report press events
   during resume to avoid lost events, and error handling cleanups

 - Updated TCA8418 keypad driver enabling overflow mode per hardware
   errata

 - Conversion of ROHM BD718x7 and BD71828 PMIC drivers to instantiate
   gpio-keys child devices using software nodes instead of platform data
   (coming from MFD immutable branch)

 - Updates to Synaptics RMI4 driver to use touchscreen dimensions from
   platform data when specified

 - Firmware update speed optimization for IC Type 0x19 in ELAN I2C
   driver

 - A fix to Azoteq IQS5xx driver to validate firmware record spans
   against programmable map size

 - Update to Samsung SUR40 contact count based on PixelSense
   specification

 - A number of updates to device tree bindings, including TI TPS65217
   power button schema conversion and new compatibles for FocalTech
   FT3D81 and Synaptics S3706B

 - Other assorted driver cleanups, style fixes, and conversions to
   modern string and cleanup helpers

* tag 'input-for-v7.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (61 commits)
  Input: rmi4 - use platform data instead of query, when available
  Input: elan_i2c - sort include statements
  Input: elan_i2c - optimize update speed for IC Type 0x19.
  Input: elan_i2c - use device-id/acpi.h for ACPI IDs
  Input: reject inhibit and uninhibit requests on unregistering devices
  Input: defer handler's start() until device is opened
  Input: call handler->start() when uninhibiting device
  Input: clear inhibited flag before re-opening device on uninhibit
  Input: ensure device is ready before delivering events
  Input: gscps2 - supply PA-RISC keyboard keymap via device property
  Input: synaptics_i2c - return 0 explicitly on success
  Input: rmi_smbus - remove conditional return with no effect
  Input: pmic8xxx-keypad - remove conditional return with no effect
  Input: focaltech - use signed coordinates to prevent underflow
  Input: psmouse - use guard() for resource management
  Input: psmouse - modernize PNP ID parsing
  Input: psmouse - clean up locking around disable_work_sync()
  Input: psmouse - fix use-after-free during protocol disconnect
  Input: samsung-keypad - use pm_runtime_active guard
  Input: samsung-keypad - keep interrupt disabled while closed
  ...
2026-08-19 08:59:24 -07:00
Linus Torvalds
e8bf40d154 chrome-platform-firmware: Updates for v7.3
* Fixes
 
   - Don't map no-map memory regions for CBMEM entries.
   - Check bound of coreboot table entries.
 
 * Cleanups
 
   - Fix typo in docs.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCaoJ4OxMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0FaQBAMc6loxNAMroK625wbCxO2IT/wlDASTI
 pu3MTiLy/YvxAP9ba8Vb6BC1/UGb0Wdri/CsKhvmoxoPkf6dStyhs6ovDA==
 =WVTG
 -----END PGP SIGNATURE-----

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

Pull chrome platform firmware updates from Tzung-Bi Shih:
 "Fixes:
    - Don't map no-map memory regions for CBMEM entries
    - Check bound of coreboot table entries

  Cleanups:
  - Fix typo in docs"

* tag 'chrome-platform-firmware-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  firmware: coreboot: Validate table bounds
  firmware: coreboot: Skip no-map CBMEM entries
  docs: ABI: testing: Fix typo
2026-08-19 08:49:43 -07:00
Linus Torvalds
c36a4991e2 chrome-platform: Updates for v7.3
* New
 
   - Add post_power_on_delay_ms for Hana in of_hw_prober.
 
 * Improvements
 
   - Use dumb trackpad prober for Spherion in of_hw_prober.
 
 * Fixes
 
   - Check bound of firmware-reported data in cros_ec_sensorhub and
     cros_ec_typec.
   - Fix memory overread in cros_ec_sensorhub.
   - Fix resource leak in cros_ec_debugfs.
   - Clamp payload length for LIGHTBAR_CMD_SET_PROGRAM_EX in
     cros_ec_lightbar.
 
 * Cleanups
 
   - Drop unused platform_device_id driver data.
   - Remove redundant log.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCaoJ2DxMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0+7EA/0xXn94u/by9d2gBbTSmM8zAm0vJUEig
 h2gBS1/mfB78AP907nez2SFGc0LBQM+Bc6v63IXOl30TW8iP8p1PLjqtAg==
 =ysx4
 -----END PGP SIGNATURE-----

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

Pull chrome platform updates from Tzung-Bi Shih:
 "New:
   - Add post_power_on_delay_ms for Hana in of_hw_prober

  Improvements:
   - Use dumb trackpad prober for Spherion in of_hw_prober

  Fixes:
   - Check bound of firmware-reported data in cros_ec_sensorhub and
     cros_ec_typec
   - Fix memory overread in cros_ec_sensorhub
   - Fix resource leak in cros_ec_debugfs
   - Clamp payload length for LIGHTBAR_CMD_SET_PROGRAM_EX in
     cros_ec_lightbar

  Cleanups:
   - Drop unused platform_device_id driver data
   - Remove redundant log"

* tag 'chrome-platform-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  platform/chrome: of_hw_prober: Add delay for hana trackpads
  platform/chrome: lightbar: Limit payload to max packet size
  platform/chrome: cros_ec_debugfs: Unregister panic notifier
  platform/chrome: cros_ec_debugfs: Clean up console log on probe failure
  platform/chrome: cros_ec: Remove redundant dev_err()
  platform/chrome: sensorhub: Fix dropped timestamp events and log spam
  platform/chrome: sensorhub: Fix memory overread in ring handler
  platform/chrome: cros_ec_typec: Reject out-of-bounds PD cap count
  platform/chrome: of_hw_prober: Use dumb trackpad prober for Spherion
  platform/chrome: Drop unused assignment of platform_device_id driver data
  platform/chrome: sensorhub: Bound the EC-reported sensor number
2026-08-19 08:27:06 -07:00
Linus Torvalds
bd5f485f3f soc: Arm platform updates for 7.3
The 32-bit Arm platforms are a bit more interesting this time: I refreshed
 an earlier series to mark code as deprecated that does have the tendency
 of getting in the way of cleanups and new features but has close to zero
 users. Among these are:
 
  - 22 of the remaining 28 legacy board files that predate the current
    devicetree based descriptions, using old chips from Intel and Marvell.
    The remaining six board files are for TI OMAP1 and Samsung s3c64xx
    chips and all still have known users.
 
  - support for Cortex-M3/M4/M7 and ARM1136r0 CPU cores and the 25
    machines based on these. These all use devicetree but the CPU
    support causes disproportional work. Most of them are just
    reference boards, the notable exceptions being the Nokia N800/N810
    tablet and the Buglabs BUG platform.
 
  - be8, be32, oabi and iwmmxt userspace binaries, which were mostly
    associated with the platforms now scheduled for removal and
    are increasingly problematic to support with modern toolchains.
 
 Nothing is actually removed at this point, to ensure that any remaining
 users continue to have the 7.3-LTS for a while longer. Patches for
 removal are currently being tested.
 
 Other updates include a continued work to convert GPIO number based
 interfaces to descriptors, a patch to restore little-endian mode
 on the one Arm platform (ixp4xx) that only worked in big-endian mode
 recently, and some minor cleanups and bugfixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqDZgkACgkQmmx57+YA
 GNkxaRAAxCSAoS6sqq8qoRKcRAfJOVYiaSv5O4sHFt7lzoSUZD1kVn0USNrHLcbZ
 mdeFBCQTiyjMD7IqS+gF+G9LshuE6g7h7D9fr/YeMMog2tzTfEdjiMBRlNUtXHri
 OUqP35navxMiP1B9yoGhWFbvZ7I2STkJSQ6atNye8dlFOHE22SWDSFRd7X/kVrN9
 DJne9qMrcUOHwJv7hxTJXoCbtKxLyfQtwg+MLHz6dEcVYhf2XJKZYeVUiVA6UT4S
 6219qQ/WFiug4ALZRbjmAuaPQu+nf9kI1ZrzGFsFkNAhZ44GPUK1n+MBieQKp5pF
 zf8wp3159Erg+0XM2/dVPXH49oX+Nllz3C1b3mmfIoBdSdJ/D8PNyZzwbQRQPjwd
 p7Mh5Vdq/hz+9XxRPKGLqNik/IzyXifMbC+uQR1++SRT/JWTcH3fedwQvKuX/5vS
 uPvMekbkVRrYfBgrTJTmtlxQJz5iLpS69QnHmI+nwKTPsY18LKHMVG8VXZxeP9iY
 RDJw5mPGv84RaTTM0NaVYSmk5vsNv5YQeUfLWojovBC83mTe9RKZDloJsOYXRRXh
 CgcjhCskNPfWoKUUFk9NqOjBjXtzcOcxXFXrJw0ADT7JC9r1E1PdUIW0ND4LKypP
 OnXxJL9TGTmNEvPEKlOyD6FymbOrLAoHsr33CD3TTLwB/8ZKKmw=
 =FH1e
 -----END PGP SIGNATURE-----

Merge tag 'soc-arm-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC platform updates from Arnd Bergmann:
 "The 32-bit Arm platforms are a bit more interesting this time: I
  refreshed an earlier series to mark code as deprecated that does have
  the tendency of getting in the way of cleanups and new features but
  has close to zero users. Among these are:

   - 22 of the remaining 28 legacy board files that predate the current
     devicetree based descriptions, using old chips from Intel and
     Marvell. The remaining six board files are for TI OMAP1 and Samsung
     s3c64xx chips and all still have known users.

   - support for Cortex-M3/M4/M7 and ARM1136r0 CPU cores and the 25
     machines based on these. These all use devicetree but the CPU
     support causes disproportional work. Most of them are just
     reference boards, the notable exceptions being the Nokia N800/N810
     tablet and the Buglabs BUG platform.

   - be8, be32, oabi and iwmmxt userspace binaries, which were mostly
     associated with the platforms now scheduled for removal and are
     increasingly problematic to support with modern toolchains.

  Nothing is actually removed at this point, to ensure that any
  remaining users continue to have the 7.3-LTS for a while longer.
  Patches for removal are currently being tested.

  Other updates include a continued work to convert GPIO number based
  interfaces to descriptors, a patch to restore little-endian mode on
  the one Arm platform (ixp4xx) that only worked in big-endian mode
  recently, and some minor cleanups and bugfixes"

* tag 'soc-arm-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (41 commits)
  MAINTAINERS: Drop redundant lists from various Samsung entries
  ARM: tegra: Replace __ASSEMBLY__ with __ASSEMBLER__
  ARM: tegra: Fix OF node reference leaks in IRQ init
  ARM: lpc32xx: remove a few manually populated OF devices
  ARM: lpc32xx: only run SoC init on LPC32xx hardware
  firmware: imx: scu: manage mailbox channels and global handle
  ARM: sa1100: h3xxx: convert gpio-keys to use software nodes
  ARM: sa1100: collie: convert gpio-keys to use software nodes
  ARM: sa1100: assabet: convert gpio-keys to use software nodes
  gpio: sa1100: register software node for GPIO controller
  ARM: ixp4xx: Relax endianness
  ARM: replace linux/gpio.h inclusions
  soc: imx9: devm_kasprintf error handling
  ARM: mark mv78xx0 support as deprecated
  ARM: mark axxia platform as deprecated
  ARM: mark Cortex-M3/M4/M7 based boards as deprecated
  ARM: mark footbridge as deprecated
  ARM: mark RiscPC as deprecated
  ARM: mark mach-sa1100 as deprecated
  ARM: orion5x: mark all board files as deprecated
  ...
2026-08-18 19:50:40 -07:00
Linus Torvalds
6eb1ea5ff4 soc: defconfig updates for 7.3
Just the usual updates to the main defconfig files as well as the omap2
 specific one, to enable more loadable modules for better default
 hardware support.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqDZfQACgkQmmx57+YA
 GNmmRA//b6TBVM2OAAqAM+gjUeY1pGQJab3kJHGpE+13vOn39PhQv8/V8qUcv9mv
 i9w15ivsaS/KKjTYuGc09A7fctSt5g1oPY2PA5v3d4ao4dygqVEIGwUIE0hldNAy
 1BZF+dMoRd07doKFZesG1d0l85Mec5j999OI+MluFfSWwO9sg8Ht9LxAwHCwrxcl
 Go4oJd16l47FIJ4G6eE8qa+qUy44zWeamhQGpEStQOyQIZsFjAk1OFpIvdRH7MEg
 zB0T41vTtYuxyZ8gEv71rrDkK74HS/Zychxw+I7snhna5jTfh11smm1zr9fHUiwN
 93vrrzqqpldanJiExaAxF9z5LLYTajpQB/uM7Em5ytD+zSxlra1r/KCQrfmRGjdZ
 XdaP25vx6ivUhyJDFUPXzb6s8ujmybxdNfn7uxq24IzwZAsntJEvP1hbpSssZP7K
 s7Z0kCfjUurvVXiIC557AHI38C1tH7IN+shFR1I+Iql8K4X1tWODWWp8ghLryQxe
 V92F7WghM1wgE72M38sN3/knkNr/OjCJp2sjkl1rLxEtHWXg1sXS3uvxALiOAPsu
 z363cPF3L0FmlaEiZ577D+7q864fowbfgpZJzsaY4Xij7zE1XILUgThQRRPwno9S
 dwhgnUmy5rAc8SsF9K+tGWMQVlUneVKgZe+Evh4uFdBIfc4T47E=
 =iSun
 -----END PGP SIGNATURE-----

Merge tag 'soc-defconfig-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC defconfig updates from Arnd Bergmann:
 "Just the usual updates to the main defconfig files as well as the
  omap2 specific one, to enable more loadable modules for better default
  hardware support"

* tag 'soc-defconfig-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  riscv: defconfig: thead: enable PCA953X GPIO driver
  arm64: defconfig: Enable drivers for BeagleBadge
  arm64: defconfig: Enable Qualcomm BAM-DMUX WWAN driver
  arm64: defconfig: Enable Sound DMIC driver
  arm: omap2plus_defconfig: Enable multi-LED
  arm64: defconfig: Enable Qualcomm reference device EC driver
  ARM: omap2plus_defconfig: enable things required by iwd
  arm: multi_v7_defconfig: Enable BRIDGE and DP83848_PHY for TI AM57xx, AM437x and AM335x
  arm64: defconfig: Enable Allwinner LRADC input driver
2026-08-18 19:47:08 -07:00
Linus Torvalds
368cf60c36 soc: drivers for 7.3
The SoC driver changes once more consist of many small fixes and
 cleanups, that are to a large part the result of automated testing. On
 platform specific drivers, this includes SoC specific code for xilinx,
 freescale/nxp, qualcomm, TI, aspeed, omap, tegra, samsung, rockchip,
 renesas, ixp4xx. In firmware drivers, we see a similar picture for
 SCMI and qcomtee.
 
 Aside from these, we see actual new hardware support in a few
 areas:
 
  - The Apple platform gets a new driver for low power states
 
  - Updates to Qualcomm platform drivers add several new
    hardware specific features and additional SoCs.
 
  - Amlogic SoC support for A1 and T7 is added
 
  - The Mediatek MMSYS driver is refactored as a cleanup.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqEtqAACgkQmmx57+YA
 GNlpfQ//VD7d15DccC3OJCsG9s9vBF0Hd7etv8ceX3PWbIuLon8QBOR91/uJaaYd
 33yWieJa3zNajOYqfNOAX7hD1N1UsXGmxJxpWcWlsfrhfXGiSctrQGxnOMdf0d6X
 LLhWR5Q+7H9utKSFshFzdUA0aDDvsQhSBl/zmnC68+qd105XAddaPMXmw5jfDNNQ
 6PO1f0iXwkkHel3Eq9EkNDomEWBndL7/s17f7IdRS0Sr+7iBp+Ey3ePG0sJ0MQBU
 H7IifUfMr5GxfVhIM9yVmnvLH07OhNunJyzKhQkCiWQzFa/8biNhEvGH4kJ67Is0
 XVB74chM/bo1EF6TVIY64ylpmCXPk5XWVwXZlhnwEI8npBFYrcSZJBAZ5vNUHMsT
 2Rw4lCczQemFaBFVGzNw+8j8K7712Sm1yfiU2LlN871JfGYxpeaC9N6o+NB8Oikt
 lS9fY8B3K2VzRM5w4Etp9SL3DPJ3N3LQ2gkCO0f/y+pu6n3IwrYGsJhocMOubcMn
 ImkI+StNUtCizWUGhHqcsOlXIdyoYRXx+Ex3y6hk1QqBIPNQHdY1lfkCXHicbpxf
 YVeUaelTGJp6mXFwx7Q10vD2679UyZYrMh4/cVsNskk1GlgDiiNCozVVdIa2/YnV
 qQNyoAzwPupI9fhyoFSoSzblhrESgTPnuTc6Rkl9I0y4ki3cqVM=
 =NeRc
 -----END PGP SIGNATURE-----

Merge tag 'soc-drivers-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC driver updates from Arnd Bergmann:
 "The SoC driver changes once more consist of many small fixes and
  cleanups, that are to a large part the result of automated testing.

  On platform specific drivers, this includes SoC specific code for
  xilinx, freescale/nxp, qualcomm, TI, aspeed, omap, tegra, samsung,
  rockchip, renesas, ixp4xx. In firmware drivers, we see a similar
  picture for SCMI and qcomtee.

  Aside from these, we see actual new hardware support in a few areas:

   - The Apple platform gets a new driver for low power states

   - Updates to Qualcomm platform drivers add several new hardware
     specific features and additional SoCs.

   - Amlogic SoC support for A1 and T7 is added

   - The Mediatek MMSYS driver is refactored as a cleanup"

* tag 'soc-drivers-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (157 commits)
  soc: qcom: make QCOM_PDR_MSG selectable
  soc: qcom: ubwc: Fix missing include
  soc: qcom: ubwc: Fix link error when QCOM_SMEM=n
  media: iris: Guard the QCOM_UBWC_CONFIG select with QCOM_SMEM
  drm/msm: Guard the QCOM_UBWC_CONFIG select with QCOM_SMEM
  dt-bindings: arm: qcom,ids: Add SoC ID for Snapdragon SDM 850
  firmware: xilinx: Clear firmware notifiers across kexec transitions
  firmware: xilinx: Release all peripheral devices from firmware
  firmware: xilinx: Add support to clear EL3 PM state
  firmware: xilinx: Propagate actual error from feature check
  firmware: xilinx: Use TF-A feature check for TF-A-specific APIs
  bus: fsl-mc: drop unused assignment of acpi_device_id::driver_data
  soc: fsl: qe: check platform_driver_register() in qe_ic_of_init()
  phy: lynx-10g: use RCW override procedure for dynamic protocol change
  soc: fsl: guts: implement the RCW override procedure
  dt-bindings: fsl: layerscape-dcfg: define DCFG_DCSR region
  soc: fsl: guts: make fsl_soc_data available after fsl_guts_init()
  soc: fsl: guts: make it easier to determine on which SoC we are running
  soc: fsl: guts: add a central fsl_guts_read() function
  soc: fsl: guts: add a global structure to hold state
  ...
2026-08-18 19:40:29 -07:00
Linus Torvalds
cbe8aadf15 soc: devicetree updates for 7.3
There are two new mystery SoCs with very little public information
 about them so far, Qualcomm's Cortex-A78C based "Shikra" and
 Altera's Cortex-A720 based Agilex72 SOCFPGA.
 
 We have also gained support for a couple of SoCs from the
 2023/2024 timeframe that have been in the making for a while:
 
  - The Apple platform gains support for M3 Pro, Max and Ultra SoC,
    following the basic M3 support from 7.2.
 
  - Samsung Exynos 1580 is a high-end mobile phone SoC from 2024
 
  - Canaan K230 is a RISC-V based 64-bit AI SoC, based on the
    earlier K210 chip
 
  - Sophgo SG2000 is a mixed Arm/RISC-V chip that was already
    supported using the Arm core but is now also added for RISC-V
    along with several other variants of the cv18xx series
 
 In terms of newly added machines we have reference platforms
 for all the chips above, plus
 
  - only four 32-bit Arm boards: two older phones and two
    older industrial/embedded boards; using Allwinner, Qualcomm and
    Rockchip SoCs
 
  - Three laptops und three phones using Qualcomm SoCs
 
  - Ten 64-bit Rockchips based single-board computers, along with one
  NAS box and a game console.
 
  - Seven industrial/embedded boards and modules using NXP i.MX8/9 SoCs.
 
  - A Lenovo desktop box based on NVIDIA Jetson Xavier NX
 
  - A few more single-board computers based on Allwinnner A133,
    Spacemit K1 and TI AM62.
 
 As usual, there is a constant stream of minor cleanups and fixes
 towards addressing the 'dt-check-style --mode strict' warnings,
 and everyone is expected to address those warnings for new
 submissions now.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqDZaMACgkQmmx57+YA
 GNkkiRAAusVNTkNVcpq+QGDhd6DfLd+d4vcvTJkBZ5WyJuqKs1qZPFIMQ0iMW1cY
 hahBeYoowRX1oaB7KZc/MBE0IkOna35CEwiL6dm553xq+P208auqpNLpXTSKWsvx
 jW4eYpdA6Bt6SM9J/583Ix71b5UFsLV+W3YKT2CBUZYn9yilAEz6kPa/Hxxa1Sia
 3841Fdy6jcqusw1alzLQvrR7FxdtPFCs1f/a/GzBmZI7fxnj/cBwVghinSF9F0XW
 BzDaUjMDzBYqSlMb7auNH0IpDeVuTx2Pch+YLrE8YVVPVf3nawd48ziwXO6zRsGx
 HccLDuHpBqwnHsAh+bWi9UdxUSzjGW4KQ/W8Fj6O2SNqxPqrK2hyRYMp+76Tl65x
 2diQOajmnZ4m8E5ToWsxpRxrlo6TKo33W63HglGIA24vr0gEi9FpA3kYiaWP2ZBD
 qZz5xMeRmO1son1vtWX1CzsWFdogqBuGdztOyMoY4viSeY/ltT1EvIC0AiTIeSOt
 krOFFDxwHvu+HOPJJ15VCVwEutUnGytB2nwBc/krhNS6MSlwg9DpY53RAhBxl0Jh
 KXpPqBUpbl0Flty2rxdPx2EAt7MqeLTNXSSdzP7tvvumsT1Ik+zlPk+MkgLZ0Y5u
 71fJrcij+0LeFDCzw81jGLoYSCw+9aNaELcF+OluL6rK8YFaBOE=
 =RQan
 -----END PGP SIGNATURE-----

Merge tag 'soc-dt-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC devicetree updates from Arnd Bergmann:
 "There are two new mystery SoCs with very little public information
  about them so far, Qualcomm's Cortex-A78C based "Shikra" and Altera's
  Cortex-A720 based Agilex72 SOCFPGA.

  We have also gained support for a couple of SoCs from the 2023/2024
  timeframe that have been in the making for a while:

   - The Apple platform gains support for M3 Pro, Max and Ultra SoC,
     following the basic M3 support from 7.2.

   - Samsung Exynos 1580 is a high-end mobile phone SoC from 2024

   - Canaan K230 is a RISC-V based 64-bit AI SoC, based on the earlier
     K210 chip

   - Sophgo SG2000 is a mixed Arm/RISC-V chip that was already supported
     using the Arm core but is now also added for RISC-V along with
     several other variants of the cv18xx series

  In terms of newly added machines we have reference platforms for all
  the chips above, plus

   - Only four 32-bit Arm boards: two older phones and two older
     industrial/embedded boards; using Allwinner, Qualcomm and Rockchip
     SoCs

   - Three laptops und three phones using Qualcomm SoCs

   - Ten 64-bit Rockchips based single-board computers, along with one
     NAS box and a game console.

   - Seven industrial/embedded boards and modules using NXP i.MX8/9
     SoCs.

   - A Lenovo desktop box based on NVIDIA Jetson Xavier NX

   - A few more single-board computers based on Allwinnner A133,
     Spacemit K1 and TI AM62.

  As usual, there is a constant stream of minor cleanups and fixes
  towards addressing the 'dt-check-style --mode strict' warnings, and
  everyone is expected to address those warnings for new submissions
  now"

* tag 'soc-dt-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (864 commits)
  Revert "riscv: dts: spacemit: k3: add i2s0-i2s5 nodes"
  Documentation/process: maintainer-soc: Mention expectation about dt-check-style
  ARM: dts: helios4: add SATA regulator supplies
  ARM: dts: helios4: add vcc-supply to GPIO expander
  ARM: dts: helios4: add vcc-supply to EEPROM
  arm64: dts: turris-mox: fix usb3 phys
  arm64: dts: ti: Correct white-space style
  arm64: dts: ti: k3-am64: Fix MDIO clock reference for ICSSG0 node
  arm64: dts: qcom: talos-evk: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: sa8155p-adp: Fix swapped USB and UFS QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: eliza-mtp: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: lemans: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: glymur: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: kaanapali: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: sar2130p: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: sm8750: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: sm8650: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: purwa: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: hamoa: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  arm64: dts: qcom: sc8180x: Fix swapped USB QMP PHY vdda-phy/vdda-pll supplies
  ...
2026-08-18 19:36:32 -07:00
Linus Torvalds
ca58a3dde6 alpha updates for v7.3
- alpha: read $gp and $sp explicitly for clang
 - alpha: pass -Wa,-mev6 only when using GNU as
 - alpha: annotate hardirqs-off on IPL 7 interrupt entry
 - alpha: run the remote RTC access in a worker, not an IPI callback
 - alpha: don't leak hardware-fabricated FP exception bits to user space
 - alpha: fix ieee_swcr_to_fpcr setting FPCR_DNOD unconditionally
 - alpha: enable lockdep hardirq state tracking
 - alpha: use raw spinlocks for low-level platform locks
 - alpha: provide ftrace return address support for lockdep
 - alpha: make irqflags helpers operate on IPL state
 - alpha: add ARCH_STACKWALK-based stacktrace support
 - alpha: enable regset-based ptrace and core dumps
 - alpha: marvel: Fix lock ordering in init_io7_irqs()
 - alpha: marvel: Fix irq_set_status_flags to use correct IRQ number
 - alpha: remove unnecessary architecture-specific <asm/device.h>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTIw07U9ivnHy+tugnaDr6nZQzE/AUCaoNScQAKCRDaDr6nZQzE
 /N/VAQC7mKFoSOIYkyCFCu0+XQM8GTCog8bsnvnUphqNMpK5GAD+MIg5Jw3Xyr3S
 dLhniCgl7mhG1tTcdJCO6iqvYAq4eA4=
 =Es5X
 -----END PGP SIGNATURE-----

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

Pull alpha updates from Magnus Lindholm:
 "This contains two fixes for Alpha floating-point exception handling,
  two clang-related fixes, the preparatory changes from the
  generic-entry series, an interrupt-entry lockdep fix, two Marvel/EV7
  IRQ fixes, an RTC fix, and one header cleanup.

  The generic-entry preparation adds regset-based ptrace and core dumps,
  ARCH_STACKWALK and lockdep hardirq-state tracking. These changes are
  useful independently and enable previously missing debugging
  facilities on Alpha.

  The final patch switching Alpha to GENERIC_ENTRY is intentionally not
  included in this pull request. I am deferring that change to allow
  further testing and to reduce the risk of conflicts with ongoing
  entry-path work elsewhere in the kernel"

* tag 'alpha-for-v7.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/lindholm/alpha:
  alpha: read $gp and $sp explicitly for clang
  alpha: pass -Wa,-mev6 only when using GNU as
  alpha: annotate hardirqs-off on IPL 7 interrupt entry
  alpha: run the remote RTC access in a worker, not an IPI callback
  alpha: don't leak hardware-fabricated FP exception bits to user space
  alpha: fix ieee_swcr_to_fpcr setting FPCR_DNOD unconditionally
  alpha: enable lockdep hardirq state tracking
  alpha: use raw spinlocks for low-level platform locks
  alpha: provide ftrace return address support for lockdep
  alpha: make irqflags helpers operate on IPL state
  alpha: add ARCH_STACKWALK-based stacktrace support
  alpha: enable regset-based ptrace and core dumps
  alpha: marvel: Fix lock ordering in init_io7_irqs()
  alpha: marvel: Fix irq_set_status_flags to use correct IRQ number
  alpha: remove unnecessary architecture-specific <asm/device.h>
2026-08-18 19:33:32 -07:00
Linus Torvalds
d10e148b27 csky 7.3 Release Notes
- Fix a4/a5 restoration in syscall trace path
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEE2KAv+isbWR/viAKHAXH1GYaIxXsFAmqDoKgSHGd1b3JlbkBr
 ZXJuZWwub3JnAAoJEAFx9RmGiMV75qIP+QHF0YLconew7zBRAwSLtIYApTpZOqKa
 btIs20Tw4H4NpwQXAzYlRj1MOJXFZUl4/7FIfAnlHK7F2K63s54M6flrwKMomSNb
 w/vSpiMhFwAPioXMO+/C5yBEqUCi9xv9uhF50BRcnbdFrtPIVdMaLxnfGLsCR5JL
 ZD814UmniatzbM5HZbdlr6BWluC+3dUUTqltuo8lJPKD4boksi5RD0l1dLtktxxT
 XxDjjiNLF3SLWxXharjOSsNtG2elEQ0NBalQuT7yHwbefCmZKZgrV+YNEt1dVTOM
 m/BdG2LivzdAHJ4TvZzR1MMFs5IvK1iMvBdsjXfmccnAtOQRhoG/0LNyQHnA2B5J
 WcsCNRgfkoWpyo5GP8hbO6XrQ9qqhdQnfIahbJRc+sBe/eKYOBq8o1qE+w22OEnd
 GaPuB/PevnNwH3pCO4j/SVARqfpN1SvQ47JA+8ChjlxpnahIhSCdsur8gIoe7eDx
 qsw9o51DrBf5T4ifo2C/9CbTR9KZYuwKb9GcgJ7fvbACpaaJcojBURCpnmLFbm2U
 ESMRLWrm93+O7GBsXM2wd/G7/M3mxx+BoDji7ST43m5t7Ufj196JthS7CVXbFA7n
 tjKGoowFTRLnQwDfQNVO7RVVhv+8/lT5H2WPQrCobsvvuMBfWzUBjBSR/e4Y13eO
 axVFernowXgN
 =B+B5
 -----END PGP SIGNATURE-----

Merge tag 'csky-for-linus-7.3' of https://github.com/c-sky/csky-linux

Pull csky update from Guo Ren:

 - Fix a4/a5 restoration in syscall trace path

* tag 'csky-for-linus-7.3' of https://github.com/c-sky/csky-linux:
  csky: Fix a4/a5 restoration in syscall trace path
2026-08-18 19:32:34 -07:00
Linus Torvalds
5808ac1889 - Get rid of static_cpu_has() - one less API to care about testing CPU
features
 
 - Unify the handling of CPU core types (performance, efficient, etc) by
   mapping the vendor-specific types to Linux ones
 
 - Continuation of the work of Ahmed Darwish to centralize CPUID leafs
   representation
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmqEomYACgkQEsHwGGHe
 VUqrVhAAmN1E0HRaRm2zUcJqDS2TVz9a//LTWI/i9pNtlhPrdGrPtaHfps89TGj3
 1TBiFPE6I4xbuTlumFBToqfPbJ8mw41s3ZnlAUk/QVkf0J7Qkra/tZ9dRsWpjwqJ
 y/PqzgW7qTtpye881VX0fNaOlV4CRAQiGv6StALRo9fXn1lWRfwCfFBjYeuMHS0H
 e8r0shF0petS7JdHyTWmzS3E50ETrGI6XNbkKjWFyMjolaeP3r4YP1ucj/B5KY1E
 CFjdBkgXM3PQ0K4Nax96PA15VoMorIuGhpjiv0phiA9itBay3x6EQfOhXoMWtgiE
 9gbgUfWUCx/n+U5tXwOaZnFBd8gnyT0QOENmojEf8GCIBoGgeff0g6djNAm36QlF
 Zyfq7EOMBCfkooddWEz6qhZdeP7SwKz0i0dHyJ6OroQKXVjnCXAUveyA3/1venYb
 HT/xP/BNDQc4+GpO1ZPCuottpC6CVPclWsVOrcnU4jBtZJRhvNTWQMbDpZUFUefO
 FIJi40u1cnHw1hk7t5dVACJAME5p4hUz9hlfZFMETbkxjFH7cJEKaGFO2JXhSsui
 NaLkCJQWgnJynnhNhdycRsdbC6+pAiayoajGe80hiwYrr3j0YhG5UKSrgUwD6uiq
 CxuFt7C8jLEsAcWBILVB5+S6vh+3peHRAm9m9LtgiDpRAM4vGGI=
 =IKxX
 -----END PGP SIGNATURE-----

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

Pull x86 cpuid updates from Borislav Petkov:

 - Get rid of static_cpu_has() - one less API to care about testing CPU
   features

 - Unify the handling of CPU core types (performance, efficient, etc) by
   mapping the vendor-specific types to Linux ones

 - Continuation of the work of Ahmed Darwish to centralize CPUID leaf
   representation

* tag 'x86_cpu_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/CPU: Rename struct cpuid_read_output to struct cpuid_output
  x86/cpu/scattered: Sort it properly
  x86/cpu: Use parsed CPUID(0x1)
  x86/lib: Add CPUID(0x1) family and model calculation
  x86/cpu: Use parsed CPUID(0x0)
  x86/cpu/transmeta: Rescan CPUID(0x1) after modifying capabilities
  x86/topology: Add TOPO_CPU_TYPE_LOW_POWER
  x86/topology: Name the AMD core-type values
  x86/topo: Map vendor CPU types to generic Linux such types
  x86/bugs: Don't use cpu-type matching in cpu_vuln_blacklist
  x86/cpu: Hide and rename static_cpu_has()
2026-08-18 19:09:42 -07:00
Linus Torvalds
bbd0571269 - The usual pile of smallish cleanups and fixlets all over the place
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmqEj4IACgkQEsHwGGHe
 VUoFdRAAvbLBiy7GJixnL2RqNuJ2AoScR09VsFeZ5yKO5y9T7dycZ6Ahkp2/CZVw
 aWTuFctTTcjF8B8nv/phw9RBnT1bSU3y+t/6w2kPgrCnjq8OZ3vH3VRsUyYLUhcN
 fxd45445bIWgbc9Jv6F8tyOdS/l9Lkc3NXTkHWKvDBru/XH4+UGU0tcNcvOiXoWi
 5UXmjm3Wj9DqsFxUkGAzFJVKXq+BD+3vqByNPqudo7HV+SY5jeGs921lgcfJtZwe
 lD3Sz8F7/eVH8Kb5pZt1uYHlorqy1SoZDIp559W9O0jmi3BLY4RmeTcvSu7fYGpT
 n5lV9n6aZDwBe45pbeoICHyRGnJP8fN2BygGNblL6Cfdh8Wx4U3UWqiAYsDKwOAi
 336bRp611RLStOBV8+mEmpTJ0KfK/HIhPxIvuk49zqHffVniRvMSbbr5DxF2iWbU
 21yRBrEtzqsWMI9c4GgZnHPSLw4pE2cznEd/xId6eAX4aBF/03y0IUvqJX9q85Lj
 9Swd2wdyZysetXN6Ibk8R7BqQqsW6gZtm+k7bdkdxN3MqDMy3rCk66bz00t2kVey
 OIfTtP8Ai1TAh7Y3mFXTT6S6y5RK4vM2L41QJalVLklhyBruYzhrpOz2RcafXm4n
 b5ebossw9TF4hRKdoxULLdNfVrnhgT+akNG6MS3ekZctrWULyt4=
 =/jsH
 -----END PGP SIGNATURE-----

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

Pull x86 cleanups from Borislav Petkov:

 - The usual pile of smallish cleanups and fixlets all over the place

* tag 'x86_cleanups_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/cpu: Remove unnecessary __maybe_unused annotations
  x86/msr: Document the I/O-like write semantics in the msr driver
  x86/apic: Ensure ICR register write value is handled as 32 bits
  x86/boot/compressed/head_64.S: Clean up SEV-related comments
  Documentation/arch/x86/amd-memory-encryption.rst: Fix typo
  x86/platform/quark: Fix kernel-doc warnings in imr.c
  x86/ras: Move contents from arch/x86/ras/Kconfig into drivers/ras/Kconfig
  x86/cpu: Move intel_get_platform_id() to cpu/intel.c
  x86/mm: Fix typo in comment
  x86/fpu: Fix kernel-doc formatting above fpu_enable_guest_xfd_features()
  x86/cfi: Use symmetric SYM_START and SYM_END in __CFI_TYPE()
  x86/cfi: Add __init_or_module annotations for fineibt
2026-08-18 18:34:58 -07:00
Linus Torvalds
94845e2929 - How refreshing: no new features but a whole pile of fixes to more or less
serious issues reported by Sashiko along with miscellaneous cleanups all
   over the place. All except one by Reinette Chatre, the one by Tony Luck
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmqEdnUACgkQEsHwGGHe
 VUoAYg/+PncYx3N2rKmJ8BpXOClNesiR6yivomKYqGe2SKIipADmie/l03td6/rj
 FC/uJnTAFpgB3jJSD6N/haC4hOLk590wCdAg204tCIV0eHPoXQ3UJeUt8aPBOeYK
 cMt3KlbKrLWulT8DkpnK8GWWEQsrvz+ah9Xmn4s9pw4oo4D4lNZMpWonTiQWENwZ
 If8KekkiztxZgEIbHKBNEk2Bt5SHhaICcwwaJAnPtCtrL762xqRRXvrZ/kvzebbu
 zTxkyEciTMqB+4TrbGy9EoWd0KsXsCqL4FtVa/yxu0M/dokHxNE/0xQQwyGcGzBP
 IYsnPchX/OuqJNGDTaf6WvBhkXBUZLngTA2ZzqVVSnBDmKEkFYYpHNvQGD52eLUE
 25zLYdtMvBht1+opQ++w1gMBsq/eUCADB+a1SDPg+RsR0HDi1TUDRmvHY3x/2UK7
 opsrnxv1ADGzMefloXqM5we2K3pScKAgc+v4MR+m5gDkTonmoDxS27XVtslrQYy1
 LqCqKiK7z3tHL/zYOCcTYXhmlacpuL+1DsnreTdxn4eZ+PieihoAE02Jhh/R2t0N
 6LhRF3sIDonHC+L4gXo2f7Agyg5z4jpZBikaO5QxSYAmeqlorzrPYQb2frf3xIL2
 0z4Zvl81Ch8FE80Ro/wlucp13gF2wWvxyqnu02+M7xj93YgJ+60=
 =aMLV
 -----END PGP SIGNATURE-----

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

Pull x86 resource control updates from Borislav Petkov:

 - How refreshing: no new features but a whole pile of fixes to more or
   less serious issues reported by Sashiko along with miscellaneous
   cleanups all over the place. All except one by Reinette Chatre, the
   one by Tony Luck.

* tag 'x86_cache_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  fs/resctrl: Inform user space when status buffer overflowed
  fs/resctrl: Communicate resource group deleted error via last_cmd_status
  fs/resctrl: Add last_cmd_status support for writes to max_threshold_occupancy
  fs/resctrl: Change last_cmd_status custom during input parsing
  fs/resctrl: Use accurate and symmetric exit flows
  fs/resctrl: Pass error reading event through to user space
  fs/resctrl: Use accurate type for rdt_resource::rid
  fs/resctrl: Change pattern used to track number of entries in enum resctrl_conf_type
  x86/resctrl: Protect against bad shift
  fs/resctrl: Use correct format specifier for printing error pointers
  fs/resctrl: Fix UAF from worker threads when domains are removed
  x86/resctrl: Ensure domain fully initialized before placed on RCU list
  fs/resctrl: Prevent deadlock and use-after-free in info file handlers
  fs/resctrl: Prevent use-after-free in rdtgroup_kn_put()
  fs/resctrl: Fix deadlock on errors during mount
  fs/resctrl: Move functions to avoid forward references in subsequent fixes
  x86,fs/resctrl: Document safe RCU list traversal
2026-08-18 18:32:24 -07:00
Linus Torvalds
ccb9331e13 - Remove the smp_locks alternatives machinery which was used to patch out lock
prefixes when running a SMP kernel on a uniprocessor machine
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmqD58YACgkQEsHwGGHe
 VUrzQRAAoaN6wL22NNqknd4axMd1ZDNo7mjwHqwQFH8dctba9nEHtnwhM+G0iqUP
 LAMpd4rJNClt14uMCSvN0zwx4SAB+/Dsn56ZN22TR74fWLjCBHuATgIzNCte2arF
 ifwP+qkiZJxixnYHKjE+CkbRPOd3xQr6nskte5/ywbbYoXjwve1GX3Lrf5YJ9mHJ
 IWZaRYHl5dd/tMlrN+Nv+AU0aK86gROdll6KLWE7LVrcDqLrjmigYOXvrFoUzMzR
 4aCSSq3ZkaMUNyCNyJqqAkK17xxxSbZLaSwgx/mpo/7jKeiLHYkbE7SPJFhpSu7R
 fC3/DqsbqqbkN7yOGJ2amQsqmvNbnVsv7/P3litw8r41S+QYjJLCB9BW3TvRa/Ff
 obeN52sJCilvCg4dYnaokl17EZ6bOTpapGQlPAFySUvemUDvFfsHFXeBvnPbzFhg
 6Mjf6ZPIf28yB/QUuJG6bESUdSodG/PUN5N4330tVuKQSJU0CnBHEWstsN5u9MVO
 aRecbdiWM69m9CUuwx9d+xoIa89aietaDSO7WvxdJe/psbL2GkO3jhl6BcdNQTi3
 7A5M0F0QkOfMgtL8N0Kz6URSgrcnj+e5XKG8AvSQ68vRUFd6OXu82eWGUIT6MUk7
 XULB9XeVQ8MkXwO+TDVsL6GkWcfCBy60JMO5ZibDZBRcFpsJfV4=
 =1kMm
 -----END PGP SIGNATURE-----

Merge tag 'x86_alternatives_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 alternatives update from Borislav Petkov:

 - Remove the smp_locks alternatives machinery which was used to patch
   out lock prefixes when running a SMP kernel on a uniprocessor machine

* tag 'x86_alternatives_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/alternative: Drop smp_locks glue
2026-08-18 18:11:25 -07:00
Linus Torvalds
b960327ab3 - Add mce=print_all to the mce= kernel cmdline params documentation
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmqD5f0ACgkQEsHwGGHe
 VUro6g/9EMxnAsu0yW+ToCSYkIM1lfrxSTzb8ZTJ+s5SzKcivUFL9L1tB+ENuVd/
 putZcKfpkzdNTccwfpmeK5FbywxwunN6CDN6hPjSPzHrvYprxauN4rtGhKlKDtdQ
 ysmvp1ZyrbkdkA+FooMINEOEFAC6NzEE61wrZzsxRH9GIXnSDqrFSQLUkj9l60LD
 q/6fx+EgswrmD41S/LvGfk6eGFSZXdBTMUMkzcBx2czGoexpuW10f72VaswDzMlz
 L8BhMFMn2LjKjvvmIv126BWjTE07g/KpbSaRWl4a9W2n6O+YzGGKfTNKBotQnUEx
 mazFnI7ovlpsaKP2i6QWlKiZ1tcDaziKze4KdYuhh+It64+U8/GaUb5YhJ3G7Vjf
 Zn4SaORe8NkFEXJHKl5DnjCsJW2khfKgujc5+q3GYAoodKTwCS4SOXpX0Gu7h4XW
 6O8Si5aeh25wRsl8UmnvllRHf9CkgqIAU26tebJP91W0JU75Dzq6b60i4TYVTD/P
 p0PYUbK6PbOBvIkbTWqSoHr8UCmwnmDEGna9dh7fe6tZJRgXG70I0fvAA+geBWWO
 u9+PQ2j7ZcarkFW3nHSZD/V1TbJXgEd28TlGJiagWv0koX43twxKBK9uExB2LxKi
 B914I9qRgB7VpUkbcfxn9hfmlML5bG/0Z+IcQPwD5SK8cgWSfF0=
 =YyZa
 -----END PGP SIGNATURE-----

Merge tag 'ras_core_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 MCE update from Borislav Petkov:

 - Add mce=print_all to the mce= kernel cmdline params documentation

* tag 'ras_core_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/mce: Document the mce=print_all command line parameter
2026-08-18 18:09:42 -07:00
Linus Torvalds
b126f6f594 * Fix pkey_alloc() return value when pkeys are not supported
* Allow preemption during IPI completion waiting to improve wakeup latency
  * Convert more x86 page table code to ptdescs
  * Fixes and cleanups for set_memory*() locking, mostly around large pages
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmqEeS8ACgkQaDWVMHDJ
 krDQmRAAqGxk8Wma2fmxe4eZlSmauJSgoPYGt5eBI1nNCwVH323hKXanjOZ0zQ6Z
 vF6IDxk2MqvBh3TXLOkbDtOi2A7IIvb+g7SEqvfEnmrv5PSaiBzZdcE6+zfkyq51
 BGg5TWQdaM5psiyS8D33OUmcYS1H0B9+x/dHU5nGDYRbQBeEXVwT8rL8MOYTQP8e
 Drjvk2gru7wwaXiDk6go26momhVAFMCGgVZKUlHfdi1jSschjEJhOl1YTvtMoQp9
 PukZ+gwgJfsZTBnfPTZwatWbUAb8ishUeIBOpLhMamoenScA7Cylh4zz/LKtedXy
 +jxt1VPN0J3kxHlCwV6X/bGNhiIpGWQIZgYVPwwWEPjFvBIzersuoPMOZAPG6ZB0
 pBnMg6fhu/dpUmHaKHLpRr/qsx19zzW2ftRLFyp4FY4i3o2fnhc4icPk/xBENETh
 luo9ETLLCa5zJWTN3y2cNzNFrizpHFrRTuRy3c0B512gaIh0gW1tmMom1Tl3meEj
 oaf2vOlRoW4S2PP60LWKtyl6H8wjzylqzKVGNpSkzBIC0a1+ln4jQhcfLMuigQwF
 DSA8tOFNL1DGC9MVQTHV0r799QJWs4lPt9lM1d/OzUeIzgWaDQ4aqTV5ni+zhwF8
 ZWYttRMWAceL4RwGEDsdVWuGay6mtIna8HTEDkG5/co+jmwoehw=
 =e5mx
 -----END PGP SIGNATURE-----

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

Pull x86 mm updates from Dave Hansen:
 "There are two things in here of note. First, there are fixes to reduce
  the time that the TLB flushing code sits around with interrupts
  disabled. It should be well tested, but it's certainly something to
  keep an eye on.

  Second is a little back-and-forth in the interactions between the
  set_memory*() locking and DEBUG_PAGEALLOC. There was a slightly
  painful re-discovery of why DEBUG_PAGEALLOC has special locking rules,
  but the code did end up better for it.

  Summary:

   - Fix pkey_alloc() return value when pkeys are not supported

   - Allow preemption during IPI completion waiting to improve wakeup
     latency

   - Convert more x86 page table code to ptdescs

   - Fixes and cleanups for set_memory*() locking, mostly around large
     pages"

* tag 'x86_mm_for_7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/pkeys: Fix pkey_alloc() return value when pkeys are not supported
  x86/mm: Fix and document DEBUG_PAGEALLOC
  x86/mm: Use guard() for pgd_lock
  x86/mm: Use guard() in cpa_collapse_large_pages()
  x86/mm: Re-enable preemption before flush_tlb_multi()
  x86/kvm: Disable preemption in kvm_flush_tlb_multi()
  x86/mm: Move flush_tlb_info back to the stack
  x86/mm: Cap flush_tlb_info alignment at 64 bytes
  x86/mm: Factor out flush_tlb_info initialization
  x86/mm/pat: Take cpa_lock around large-page collapse
  x86/mm/pat: Don't gate cpa_lock on debug_pagealloc_enabled()
  x86/xen: Convert xen_mm_unpin_all() to ptdescs
  x86/xen: Convert xen_mm_pin_all() to ptdescs
  x86/mm: Convert pgd_page_get_mm() to ptdescs
  x86/mm: Convert sync_global_pgds_l4() to ptdescs
  x86/mm: Convert sync_global_pgds_l5() to ptdescs
  x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
  x86/mm/pat: Convert collapse_pmd_page() to ptdescs
  x86/mm/pat: Convert __set_pmd_pte() to ptdescs
  x86/mm/pat: Use IS_ENABLED() instead of ifdef
2026-08-18 17:44:09 -07:00
Linus Torvalds
2385c8b47b * Fix TDX port I/O bugs
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmqEdMcACgkQaDWVMHDJ
 krBa6BAAuDNE9VuX+ctu/H5dQUhnIrUWAiqWRPAeCRU4slW1j64Y/77VTrLxPrdq
 YbhsaMaDXOPU8sRfdJ5fDyLT9jFnIfxi0qNXxCJXYljK1jAqGx7C1+cQY5PjNE2F
 avZSDQ3lUvGVg4jjeZtFRZJC5UMUFyIG7dXbp2KR5fvPdRfO9YaWrXmSVEw2zSPT
 j/utLS3I3hx/MYgrRzqRDdpqh0rghych3sCGsQlJ2+YX9NYmviHCCwy10D7OTXsl
 uRDQfEl5IOhPDJwIiM/FuY5vmoB3UCSWrMQMkE2RxZR01HS7u0Pw4Q3MdY4BlCTb
 6Bzq24W4KUvF1RBFF2wth4RqcERtw48ONhuzdHEF8SCwroDiydeX/vzVfxvN0+1Y
 EKm3APx4SfWpmPaNlYkct5OPmXoUqQItKDtJGqZfnR68HLiRi2rhHmwLujlnPiSV
 tuChn01RyTtUVHiF6dcrnRxOXAaLn7AQ5QK7mW7JhmuNi9yEaf1xR1BMF5W8nseq
 VZSUWRyK3L0HgdZyeW1bTBbjaTcrdBaPv8a20Xsj7CvQP5NCTnue487LaKXWclt9
 BCQuUPofJnVHddrEU7mJvAHAemR+Rca9wS83TV2d6e/5doaujt6+deJVGELkQpBL
 lioc+xI+dIQkJ5OLkdmm8fU76kQAEhthS+KzBmlqjHhVZnzDKuk=
 =rzxt
 -----END PGP SIGNATURE-----

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

Pull x86 TDX updates from Dave Hansen:
 "TDX guests cause #VE exceptions whenever they do port I/O. The guest
  then does some instruction decoding and makes a call up to the host
  for help. That decoding had a couple of bugs.

  Fix those bugs. Use an existing and now shared KVM helper for one of
  them"

* tag 'x86_tdx_for_7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/tdx: Fix zero-extension for 32-bit port I/O
  x86/insn-eval: Move assign_register() out of KVM as insn_assign_reg()
  x86/tdx: Fix off-by-one in port I/O handling
2026-08-18 17:41:36 -07:00
Linus Torvalds
058f2c4b75 * Document the intricacies of GS context switching
* Remove old TODO message about Geode LED driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmqEcmAACgkQaDWVMHDJ
 krAfyBAAk3/JjQUHegkUcjuyaHXTm9gI2RM2GbEdukrLwICOYiCucpJAJsOCJo8J
 b0G8/MiSeJBGCt2qgwCYGX+eF6qzh15S1AGEkY/JQ6NVj5ZH4WceqzjeboXFGb29
 qOgHNt32Ff6YUZwalCVHOr47eLEnc9JB0Dkl0pAtQfJNJv+qygW9xSBWghmXBgRu
 AOtnGzr8nOG5X6zkyUCh7cYJ9o1Sai66bwTWectx7g8gkwXp/mHuJ/PV136jdHik
 3cYzmdM3R+98H2r1jml3aOOFmR215Dw5amRiovuBcwy8ls4dzJf6JnQhfJduWQgc
 3+Q0UDQKNLWtDCJuon+L381USPo6PUXqYjNkvUCkwZNfDXlv5vvnoeJ4EAPJvadL
 PS+TaLLVTtf1zAcWPxNY75ZCQVRuVtWe+y+3A8+hxdS8tcPSG1kACFu6kqTRjP7C
 7YUTgBFChCub0eXEqEllMeBX/eltffb6Ja/9suP7nG7KHdUEYLggEQMoVjUpG8Np
 WSf+K35DaDKmq6WA60XO5WbiwFYdvu2n5gwqBanWTejIGMxGJ0KF2VhvrScPgwaT
 U76SQRu8BmT4kCItx2wkkb1hV4se1No78vEVI/7jKWyPXCKrYhiy3NsxIgPhBg2D
 4oLeily0XUBoY1x5mQoT6cvURtI9hNA9xxWbGCgAeZTS6MvBNHY=
 =Tj3X
 -----END PGP SIGNATURE-----

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

Pull misc x86 updates from Dave Hansen:
 "Just adding some documentation and removing a super stale comment
  about an LED driver that was moved long ago:

   - Document the intricacies of GS context switching

   - Remove old TODO message about Geode LED driver"

* tag 'x86_misc_for_7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/platform/geode: Remove old TODO message about leds-net5501.c
  Documentation/x86: Document the intricacies of GS context switching
2026-08-18 17:40:06 -07:00
Linus Torvalds
23eb790181 Fix frame pointer unwinder when it encounters FRED stack frames
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEV76QKkVc4xCGURexaDWVMHDJkrAFAmqEcLYACgkQaDWVMHDJ
 krANJw//WYyg91xLidZ5Bfh6slwmClZzG5TVH+iHJpP0niI8PIGTO3MzSOs04bvE
 uaG6sfKr1SAN6Zfvdu0eu1ZOKSglbpaVZIpFIqReNu+shG/RMkYwyo3DpTzG78kZ
 KQRQdYi/MTrdzd2ytvK0eou+qa957Oz/2AkZT4OStTAIM5YIK1TYpAM6ms6wHBOI
 JQnuB7E+aQHaMx3UxLcHzVY/Dvca29V8/yFqdb4KcYqTEmCY48uripUDHw/aKHhX
 3epHjU4Icr8q/M0tvlYCvjhg7keNORWPeotoLyEteUoEef1NQihY2V1aQb4T6kv9
 YuGUjXvBezHJBvUgJmF8nyX69lj4CMwxEzR1mYolNTlw9koAzSXokhae9NCUgXJa
 tulhamCUHCk6Qr4IGnE1Flc2xBoHXZZnfx2ghvj5HP4Q/Ev/sRHrQC4fVRjH2zpQ
 8CjLejuRXfPk+kcq8FB5sE7TTxrHFTgBZ8FSzpgKvAsPzh6/lvJ7uHpedEK9jjHf
 hhtHjftX8Li7G+r7HMuCkEk0Rgqh/3sikcRSPwTbJW6QaaZ83nk1QCVcWNB0qHNF
 10sKxiXDcpKCA1lG6z+iUVA4Qyt41OZT5obnIbTFooiWH++oKY+hjkoWJre1dEzV
 sc93bm70bQkC0KzuErKSYKlYY1+97CoRGUMVu3mS50QDDWXP/iE=
 =nxgD
 -----END PGP SIGNATURE-----

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

Pull x86 entry update from Dave Hansen:
 "Fix frame pointer unwinder when it encounters FRED stack frames"

* tag 'x86_entry_for_7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/entry/fred: Encode frame pointer on entry
2026-08-18 17:38:30 -07:00
Linus Torvalds
104a813376 VDSO updates:
- Consolidate the VDSO datastore further and provide support for
    mlock_all() and prefaulting.
 
  - Provide 32-bit legacy time related functionality only if
    CONFIG_COMPAT_32BIT_TIME is enabled. The config switch exists, but
    architecture code still exposes the legacy functionality even disabled.
 
    Clean this up by adding the missing guards and validating at build time
    that the VDSO is legacy free if disabled.
 
  - Consolidate the VDSO related config options in core and drivers, which
    removes some non-sensical dependencies and quite an amount of #ifdeffery.
 
  - Clean up the PAGE_SIZE definition maze
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCxfkQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoSQkEADEOmcrm3vwMbaElrAfQRp4MOQMnDpKPCDa
 0EwdkXKJyqfOGx1PNKbcWZe10qShpXqyz+q3MUbHiOVh7KxkaGj0GOA/+xD+Tgs5
 RAFXCq+CY4Ccjix7vlyOBLvGgomuznAtRDCFprVq5OTXyQfVvS++5SHzaU/0xXiY
 ZZEInrFP61BEJ8LJycpoN5431EBcUX7XpSkr9eHtuSOslOBzbTEtBbDp0AjDGse0
 5qM/oZDufZDQQr31kVQiL0dN9bBWwdGNtBwZBjsf6KioY9M00LO0E9twSCSrI39F
 kgD2N97RDjTewu/zEe0fvCDVypqel2mBvjfiYU4c8g6pprdJ4Hq1qMcDAtMBUDBZ
 9jR8B09eYZwHLdbM5PFjiMf9d6p25P7X+twFI9Hylcm1YZtM4OTnamDhQOQDp1Fd
 QdrFevXg1zvYVi1rrDYarcPfg/tGsetOTujMQ1m50/AJZOoEdcX9jZR/wfdW8ti6
 X9TIn3SDzhauXkmeR86tHxtOmHDirVfBWCCCEyVT2YzGIIje25cf266fCPdcGRYl
 kzhtycg8LqpTRMWjhlaf56NtD9qQlbvDY8L23tQLJUYhDp8xOxqyuRPRdpJVM0b3
 4vp/Z8Sgz8tpEHO2ARsXfuu2CzilTBH0B2KL3f+a8CwpzIEadjIfc+6EEYqwgOAn
 +/RhckFp/A==
 =jHl1
 -----END PGP SIGNATURE-----

Merge tag 'timers-vdso-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull VDSO updates from Thomas Gleixner:

 - Consolidate the VDSO datastore further and provide support for
   mlock_all() and prefaulting.

 - Provide 32-bit legacy time related functionality only if
   CONFIG_COMPAT_32BIT_TIME is enabled. The config switch exists,
   but architecture code still exposes the legacy functionality even
   disabled.

   Clean this up by adding the missing guards and validating at build
   time that the VDSO is legacy free if disabled.

 - Consolidate the VDSO related config options in core and drivers,
   which removes some non-sensical dependencies and quite an amount of
   #ifdeffery.

 - Clean up the PAGE_SIZE definition maze

* tag 'timers-vdso-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
  random: vDSO: Drop custom PAGE_SIZE definitions
  LoongArch: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/timer-riscv: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/arm_arch_timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  clocksource/drivers/mips-gic-timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  MIPS: csrc-r4k: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
  vDSO: Make clockmode constants available without CONFIG_GENERIC_GETTIMEOFDAY
  kbuild: Support generated asm-headers in subdirectories
  vdso: Rename HAVE_GENERIC_VDSO to VDSO_DATASTORE
  vdso: Drop HAVE_GENERIC_VDSO from architecture kconfig files
  vdso: Automatically select HAVE_GENERIC_VDSO if necessary
  MIPS: vdso: Stop using CONFIG_HAVE_GENERIC_VDSO
  vdso: Remove the dependency on HAVE_GENERIC_VDSO from ARCH_HAS_VDSO_ARCH_DATA
  futex: Remove dependency on HAVE_GENERIC_VDSO from FUTEX_ROBUST_UNLOCK
  vdso/gettimeofday: Verify COMPAT_32BIT_TIME interactions
  sparc: vdso: Respect COMPAT_32BIT_TIME
  MIPS: VDSO: Respect COMPAT_32BIT_TIME
  powerpc/vdso: Respect COMPAT_32BIT_TIME
  ARM: VDSO: Respect COMPAT_32BIT_TIME
  arm64: vdso32: Respect COMPAT_32BIT_TIME
  ...
2026-08-18 16:56:25 -07:00
Linus Torvalds
3b4128b9f3 Timers and timekeeping core updates:
- Fix a subtly inconsistency in the timekeeping code, which fails to
     account for the monotonicity adjustment in ntp_error. For small changes
     of the clocksource multiplicator (+/-1) which are typically used by the
     NTP PLL this is hardly to observe. But for larger adjustments,
     e.g. caused by a direct frequency setting through adjtimex() the
     one-time uncompensated offset is significant.
 
     Cure this by adjusting ntp_error with the resulting offset so that the
     discrepancy is smoothed away over time
 
   - Make tick length calculations correct in NTP. The timekeeping core
     takes the quantisation of the clocksource into account when calculating
     the tick length to compensate for the deviation of the nominal
     NTP_INTERVAL_LENGTH. While timekeeping gets this right, NTP is not
     aware of that, which means it operates on the nominal value and not on
     the actual value which is determined by the clock source frequency. The
     rounding of a coarse clocksource like the ACPI PM timer results in a
     +127 PPM deviation.
 
     Cure this by exposing the deviation to the NTP code so that it can
     operate on the same data as the timekeeping core. This is purely kernel
     internal. User space still sees the nominal tick lenght via adjtimex().
 
   - The accuracy of the NTP adjustments is fairly approximate as the code
     assumes that the invocations are precisely in NTP interval frequency
     ticks and the final adjustment can over and under-run.
 
     Cure this by adjusting ntp_error by the intended skew on each tick to
     achieve the desired rate.
 
   - Handle the two competing skews of time offset and time adjustment
     correctly by calculating the conflict portion between the skews and
     adjusting both accordingly.
 
   - A set of updates and improvements for the selftests
 
   - The usual small fixes and improvements all over the place
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCwxwQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoaOwD/45XBW2s5/L+GSy52r/APrzYOqgjYQdn2UQ
 XI85iTjDqg9sfZQNFbr7toJ84gY/wQ0ZxykLMi+LlOSZVe5azSepoUHMg9XGk8S0
 4kI+GLznmnDLFypTezpzk3DUgNgu8rhOYvPsgwQEgx0DuzWHRZgNoNDk4AfJ8HP6
 8cRgPIJ7CpIbP7/p0Kc5IjW3ybo849wBirl7ZDxNRRao+Dkc56ArZvSfQgnQu5Kw
 D3Ei+AFcxpBQ2GEJT4Z/92yNf1x2AXjkhfijgO6hIFzPAR+c049fG5sgneo3GoLQ
 riduEPQHvoiJO3gVGzoICF2DAuVOwMHwIBlGtNEDd+FcMAvMU4V3lQi8lJV+9CpH
 SJwa5R6KJHg2aTuoPup8lmfJN7BqmthrkZwcYVrv2Ikt5yWGYuoW0/e00So9IfUO
 R7UG/VlruckK+T0GCuKBAAfm/+zm6Sbir+4liPDZwDz4dW2lkvkZnAb6xHPCev8S
 ioYL/Jqr3GmIMgK7UelUkQ/gy5YCek89JAszdlD+blLAjUMcDeYsZaAN9rSdjzSu
 dbEA4Hze6Q8HpIW35bHkytyyjNNhvL6xobjKBNRuOPUHTFMe+s5itMApRlhsu32J
 6EL/D1TuwkiHlqaSek7ZqUAiitZoNWxa1NyreM9EuZ7qWPjUWOzlsDXkP2v298+t
 p27xt+/8sA==
 =prJt
 -----END PGP SIGNATURE-----

Merge tag 'timers-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer and timekeeping core updates from Thomas Gleixner:

 - Fix a subtly inconsistency in the timekeeping code, which fails to
   account for the monotonicity adjustment in ntp_error.

   For small changes of the clocksource multiplicator (+/-1) which are
   typically used by the NTP PLL this is hard to observe. But for larger
   adjustments, e.g. caused by a direct frequency setting through
   adjtimex() the one-time uncompensated offset is significant.

   Cure this by adjusting ntp_error with the resulting offset so that
   the discrepancy is smoothed away over time

 - Make tick length calculations correct in NTP.

   The timekeeping core takes the quantisation of the clocksource into
   account when calculating the tick length to compensate for the
   deviation of the nominal NTP_INTERVAL_LENGTH.

   While timekeeping gets this right, NTP is not aware of that, which
   means it operates on the nominal value and not on the actual value
   which is determined by the clock source frequency. The rounding of a
   coarse clocksource like the ACPI PM timer results in a +127 PPM
   deviation.

   Cure this by exposing the deviation to the NTP code so that it can
   operate on the same data as the timekeeping core. This is purely
   kernel internal. User space still sees the nominal tick lenght via
   adjtimex().

 - The accuracy of the NTP adjustments is fairly approximate as the code
   assumes that the invocations are precisely in NTP interval frequency
   ticks and the final adjustment can over and under-run.

   Cure this by adjusting ntp_error by the intended skew on each tick to
   achieve the desired rate.

 - Handle the two competing skews of time offset and time adjustment
   correctly by calculating the conflict portion between the skews and
   adjusting both accordingly.

 - A set of updates and improvements for the selftests

 - The usual small fixes and improvements all over the place

* tag 'timers-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
  selftests: timers: nsleep-lat: Check all calls to clock_nanosleep() and clock_gettime()
  selftests: timers: nsleep-lat: Reuse kselftest error numbers
  selftests: timers: nsleep-lat: Explicitly list the tested clocks
  selftests: timers: nsleep-lat: Use NSEC_PER_MSEC define for unreasonable latency
  selftests: timers: nanosleep: Report each test separately
  selftests: timers: nanosleep: Explicitly handle timer_delete() failure
  selftests: timers: nanosleep: Move all single clock tests out of the loop in main()
  selftests: timers: nanosleep: Reuse kselftest error numbers
  selftests: timers: nanosleep: Explicitly list the tested clocks
  selftests: timers: nanosleep: Drop output alignment
  selftests: timers: Use clock_name() and constants from clock-helpers.h
  selftests: Add clock-helpers.h
  timer_list: Use ktime_t over nanoseconds
  timer_list: Use standard 'long long' format placeholders
  hrtimer: Add a lockdep assertion to hrtimer_update_base()
  timekeeping: Use u32 for clock_was_set_seq
  timekeeping: Rename clockid_aux_valid() to clockid_is_aux_clock()
  hrtimer: Account nr_retries on recovered interrupt retries
  timers/itimer: Zero-init old itimerval before copy to userspace
  nohz: Replace dead select with choice default
  ...
2026-08-18 16:23:56 -07:00
Linus Torvalds
b0239dd672 Clocksource/event driver updates:
- Remove redundant dev_err() and dev_err_probe() invocations in various
     drivers.
 
   - Handle SWAP_IO_SPACE correctly in the rtl-otto driver
 
   - Make the Samsumg PWM timer driver PREEMPT_RT compatible
 
   - Ensure that the SUN4I timer is programmed with a delta larger than zero
     as a zero delta causes the the timer to be disabled.
 
   - The usual fixes and improvements all over the place
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCyPwQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoc6AEAC5sqySF+PVX19c4xW8v9swMJZq0LQbBVJ0
 3SzhWrtwBwOU6wDm1zqvXNgn6vf0cV9DvgvB/HRC4kw/Cv6WstPlqhCwZQ7uzGEt
 g1L9Hht2DASW2f0gXw4KGTUJjUCymhJHtmVeOtuIzZagEIJPnXLNy7+tE6QAuCRd
 sdBZJYDhKxFiKs8yjD8+K/7Tc3mXVvuf7BjN0offMeMEV2+50TN4j2mGR6STaSff
 szxPNVnUJkO7f7uIxDnI5Rs5e7yoFFiTSwxbQJxyVKUOOdDoLohVd8Kfsf+MPL4C
 BYsWPIuiGI0BHw0ttptdcNZC3fL+7kZAqfO4VRQ7KRlSA4mA5KuiZ8DIoIbWnAhL
 NPtD32ONvM4VP3NvSdBMS1DP1IXRY4oveFy9MwMLQ2jyhDXbR4Ngu/A+pdNxIbtz
 RMTpzuJE9jieIhLR1hq95dGXVWJ6C6ohJrFupMUXiDQiqmUfw8yC+ulap9BKC4cD
 ejmQVI9Xa6FszFKcMj6PifHUxj9voQTbeBFnzxtNbyhM3jpUXqeXANforR7Ofi1b
 m0EtI1agneFweQHgSmpsaUAajGkUc9h7blBFeXntK/bmPww/54waoC/MJS8Jgooi
 YGQn4VrqSykGCIFN6xKpmHsiSL81MzwXd17jJeVlbl1Qrb5ifdI08aFIMFQLq6i1
 Af5NJ7LcBw==
 =kc0q
 -----END PGP SIGNATURE-----

Merge tag 'timers-clocksource-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull clocksource/event driver updates from Thomas Gleixner:

 - Remove redundant dev_err() and dev_err_probe() invocations in various
   drivers

 - Handle SWAP_IO_SPACE correctly in the rtl-otto driver

 - Make the Samsumg PWM timer driver PREEMPT_RT compatible

 - Ensure that the SUN4I timer is programmed with a delta larger than
   zero as a zero delta causes the the timer to be disabled

 - The usual fixes and improvements all over the place

* tag 'timers-clocksource-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  clocksource/drivers/armada: Unwind timer clock on init failure
  clocksource/drivers/rtl-otto: Change driver to use __raw reads and writes
  clocksource/drivers/samsung_pwm: Switch to raw_spinlock_t type
  clocksource/drivers/clps711x: Do not unmap clocksource MMIO
  clocksource/drivers/nxp-pit: Fix IRQ leak on cpuhp_setup_state error path
  clocksource/drivers/timer-sun4i: Advertise a real minimum delta
  clocksource: Remove redundant dev_err()/dev_err_probe()
  clocksource/drivers/sh_cmt: Use named initializers for platform_device_id arrays
  clocksource/drivers/sh_mtu2: Drop unused assignment of platform_device_id
2026-08-18 16:20:25 -07:00
Linus Torvalds
030c9f813b Treewide timer related cleanups:
- Remove the leftover CLOCK_TICK_RATE which has been scheduled for
     removal more than a decade ago along with some now empty asm/timex.h
     files.
 
   - Consolidate delay timer calibration
 
     The construct of having a define in a header requires that
     architectures provided asm/timex.h for no reason. Also the function
     name for reading the delay timer is confusing at best.
 
     Use a config switch to enable that functionality and rename the
     function to delay_read_timer() to make the purpose clear.
 
     This removes some more now empty asm/timex.h files as well.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCuTUQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoU77EACd8W1/bIYBW1XtlNMrc5PLS0wCIG55D793
 03ebljTfGGfrNcPJIXHXT7yQLaUF7me/4d3xv1SCbDOjv2dR+Ma5Bhq7DpgIaNaj
 xUTvKT+mEsSXbh+sFd/2rrqQ3fPAfDiobDA3yEnuV/8zfCqtrFf5dGRAvobw3yl8
 kdGSp3PCF5O/0ynpqUnJ1/fdWft2wNA8B0MT322MU4X+DVvTWv4wxDGStA8mnVv/
 x6kCNnCe2KRIwi6pZBhodjhl+BYHdMh6c0nJOrmTNKyrfcUMKbnttyfyvAKX9uPZ
 L5XDVLy8n8iC7P1FZMGipAylGI4abhQgDz6RXAwEygjC+S/ppjc7HFcx17TdzKYa
 0BzgWOsdDbbtorB4Ro24x6aNBW2ReN8UJsNSH2ZlmdtHH861uOsAJCfCkpCLMdRF
 Ysbj6gFSn6sf9l0TyPlJds53r5B1L4CNOM4UKztNRoZ944wvTD+J78homvmjlF75
 JcfQD7YvDEqgolfZNkmWoMJe5HU9pZk0mcYxpnj/Xa3HCm2M7qE8iWq4EesCxAXW
 C+IBpTVaZyf2h1jo47ZLeYYFXXSz3F542jmuC/EiLNFNT8MEFtG59+1x1KbcaHlh
 hmi72YncoW2QES6yzjCNyuVq687A3bKs+bCkKVXkn5vlFodilnLgJUZ2sK5yIAU7
 hI1IpZLl1A==
 =V0WX
 -----END PGP SIGNATURE-----

Merge tag 'timers-cleanups-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull treewide timer related cleanups from Thomas Gleixner:

 - Remove the leftover CLOCK_TICK_RATE which has been scheduled for
   removal more than a decade ago along with some now empty asm/timex.h
   files.

 - Consolidate delay timer calibration

   The construct of having a define in a header requires that
   architectures provided asm/timex.h for no reason. Also the function
   name for reading the delay timer is confusing at best.

   Use a config switch to enable that functionality and rename the
   function to delay_read_timer() to make the purpose clear.

   This removes some more now empty asm/timex.h files as well.

* tag 'timers-cleanups-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  calibrate: Rework delay timer calibration
  treewide: Remove CLOCK_TICK_RATE
  x86: Use PIT_TICK_RATE instead of CLOCK_TICK_RATE
2026-08-18 15:58:29 -07:00
Linus Torvalds
0dd1a54f44 SMP core updates:
- Reduce the preemption disabled sections in smp_call_function*().
 
     The various smp call functions keep preemption disabled accross the
     full operation which includes the wait for completion. Especially the
     latter can take some time when one of the target CPUs is not
     immediately responding to the IPI, which can result in large latency
     spikes.
 
     To improve this provide a per task CPU mask to track the CPUs to wait
     for. That makes the information required for the wait task local and
     therefore allows to reenable preemption before the wait. While this
     comes with moderate extra memory cost this reduces SMP function call
     induced latency measured in a fleet for high priority tasks from ~17ms
     to ~1.5ms (~90%).
 
   - Reduce the overhead of the CSD debug code by replacing the heavy memory
     barriers with smp_store_release()/acquire().
 
   - Remove obsolute unused hotplug states
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqC7pcQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoTL1D/9dgn7nuKCC4iwnihq2gZnM39780kNgsRCB
 9lAGAEEr1u2iciYIA+oXMqVLBGqrOkpCNMcChUqnyrH5H0coOgDFICTWTM4qLZxi
 ujPRcbwRDFqoHrd7PcHb7z6z9OIyiUQBRbQAJjk6+QnfA6IDbqcYB9RI2FrEexfG
 Wojl2VX1vITd4q55bhSdbUHHYm+QOP5cpBfUSkS1QjkH577kCJ0kkLhYg/8fuakr
 w1RaqU35I0W6z0AOh709vLxvchb60rMMX5/UkDHrRJx11gceimpQ+MTaz3PvZZmK
 djzCip9mLcZryP5bgdfJTVTGtEaQj0ggnDMmi2MiAuJhcvqokjaZpYfH/+wiNDuh
 vaNK+oZx9E3A3AKXs7MeXm9vqSh+nEHN4UcXosdT+gZqGrHTh4Mj4MT0gDwDzXXY
 A8WB3K95PJkucaqtXU+6bZZeVj7Pzc8tXySr7GUlxRipW/6ZJsz99s+mIG4zvMjo
 Y11pJIH7PLhnuAffMdgpmuQfiq6DKaGCjvWertB4TZPm+l/aBMvoA1QZbfNrUUPp
 Gf/IMHqcb3fmurgChn1bSlm9HDktjPzlmLWhHaVDJFrYZLYmbIzXzUNQCrBAuPQW
 Ui8BBOE2c5sn8bO411rxFOK3JETH/BBCNxmY4YQZAlU0na2/rVJ7ofKhT3zKMijd
 3M6BaQAxsw==
 =0b4v
 -----END PGP SIGNATURE-----

Merge tag 'smp-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull SMP core updates from Thomas Gleixner:

 - Reduce the preemption disabled sections in smp_call_function*().

   The various smp call functions keep preemption disabled accross the
   full operation which includes the wait for completion. Especially the
   latter can take some time when one of the target CPUs is not
   immediately responding to the IPI, which can result in large latency
   spikes.

   To improve this provide a per task CPU mask to track the CPUs to wait
   for. That makes the information required for the wait task local and
   therefore allows to reenable preemption before the wait.

   While this comes with moderate extra memory cost this reduces SMP
   function call induced latency measured in a fleet for high priority
   tasks from ~17ms to ~1.5ms (~90%).

 - Reduce the overhead of the CSD debug code by replacing the heavy
   memory barriers with smp_store_release()/acquire()

 - Remove obsolute unused hotplug states

* tag 'smp-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  scftorture: Remove preempt_disable() in scftorture_invoke_one()
  smp: Remove preempt_disable() from on_each_cpu_cond_mask()
  smp: Remove preempt_disable() from smp_call_function()
  smp: Enable preemption early in smp_call_function_many_cond()
  smp: Alloc percpu csd data in smpcfd_prepare_cpu() only once
  smp: Use task-local IPI cpumask in smp_call_function_many_cond()
  smp: Refactor remote CPU selection in smp_call_function_any()
  smp: Enable preemption early in smp_call_function_single()
  smp: Disable preemption explicitly in __csd_lock_wait()
  cpu/hotplug: Remove CPUHP_AP_ARM_CORESIGHT_CTI_STARTING
  smp: Use release stores for csd_lock_record() state
2026-08-18 15:29:53 -07:00
Linus Torvalds
b844715e8a Futex updates:
- A set of improvements to various futex self tests
 
     - Conversion to the selftest harness
 
     - Provide and use thread creation and synchronization helpers to reduce
       the dependency on delays, which tend to fail on loaded test systems
 
     - New tests for validating owner exit scenarios for robust and PI futexes
 
     - Runtime detect supported features and skip the tests if the kernel
       has no support
 
     - A few minor fixes
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqC2iUQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoTPBD/4sMc+o2TiWn4bf7vcoln3XlVA8oWkiJCIB
 UUIW1n77CTK9jF50/xb77uvDvSHYr7Zx/Gm1QOvz/xdMvbgqUtPCExBoQXEz/1VV
 y+s7x3K4pwI7BLzEPNsvC2kN0+cVisMXdCi5C5ot7xo3AilfcxxSIwauGyEdQuqZ
 ArvVJjaBCXjRE1EtaVTeiGSINeR4kWPohOkH7dou/OISSd+EcA1kOsTrWlgVa2AA
 o7Vy4u5VsYK7m+UVZUYmwf7+pU91iDj0FZ9fMYYskOw5F+Xax4seNO4bozre80LJ
 3LE2aB8Rg5qGYCTL3D54O1c/2wczJueqGPHy+bF9SOOdlzo0N4Ro8wYUa3MmQuY5
 8+JyfFOsFcqflCYFK/ketzu3JrlZdu8DV9pJ67+RIKpHIXG5VRZHBDDrkL60PF7x
 TQoaZ57sOP7e5GJ+ByxxkltPuXGsIILcPytZoTtm6NwQIh2eSOtPSEPh9VprSChn
 vhY50WJuZ6L//Z7YQfXPQ9B7Xe+39OIWgY1GnUKF09BNVx6V4/As7Nc8llH+7cR7
 eyiVqs0uRDlnpe5zQkAj0hdYR9WK/XVAQ26rsHZDJnSnoalJbl2AjdH1FIg8xm7n
 0PPKqr3hZC4lilpwoBXXPQLIOBKNAUXZpVWxEopGSFIZ5tdrcnNcxgYFMuKiN5cQ
 glxSVQVl0g==
 =6VmJ
 -----END PGP SIGNATURE-----

Merge tag 'locking-futex-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull futex updates from Thomas Gleixner:

 - Improvements to various futex self tests:

    - Conversion to the selftest harness

    - Provide and use thread creation and synchronization helpers to
      reduce the dependency on delays, which tend to fail on loaded test
      systems

    - New tests for validating owner exit scenarios for robust and PI
      futexes

    - Runtime detect supported features and skip the tests if the kernel
      has no support

 - A few minor fixes

* tag 'locking-futex-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  selftests/futex: Give circular-list nodes static storage
  selftests/futex: Use thread synchronization helpers instead of usleep()
  selftests/futex: Provide thread creation and synchronization helpers
  selftests/futex: Dynamically skip unsupported tests
  selftests/futex: Add FUTEX_LOCK_PI owner-exiting coverage
  selftests/futex: Migrate robust_list to harness
  selftests/futex: Migrate futex_priv_hash to harness
  selftests/futex: Migrate futex_numa_mpol to harness
  selftests/futex: Migrate futex_requeue_pi_signal_restart to harness
  selftests/futex: Migrate futex_requeue_pi_mismatched_ops to harness
  selftests/futex: Migrate futex_requeue_pi to harness
  selftests/futex: Migrate futex_requeue to harness
  selftests/futex: Migrate futex_wait_uninitialized_heap to harness
  selftests/futex: Migrate futex_wait_private_mapped_file to harness
  selftests/futex: Migrate futex_wait to harness
  selftests/futex: Correct validation logic in waitv
  selftests/futex: Migrate functional tests to harness
  selftests/futex: Remove static keyword from 'head'
  futex: Remove unnecessary NULL check before kvfree()
  selftests/rseq: Replace glibc-specific __GNUC_PREREQ with portable check
2026-08-18 15:26:35 -07:00
Linus Torvalds
8b5d31123f Interrupt chip driver updates:
- Update the realtek-rtl driver to support multiple interrupt domains and
     remove hardcoded assumptions about the underlying demultiplex interrupt
 
   - Remove the unused IMGPDC driver, which got orphaned when the metag
     architecture was removed long ago.
 
   - Update the Qualcom PDC interrupt chip driver to support differnent
     versions of the IP block, to properly differentiable between direct and
     GPIO based interrupts and to utilize pass through mode to the
     underlying GIC interrupt.
 
   - Remove redundant dev_err() and dev_err_probe() invocations in various
     drivers as that error logging has been moved to devm_request_*_irq().
 
   - Support dynamic MSI-X allocations in the GIC-V3-ITS MSI parent domain
     driver. That's important for VFIO pass through devices to avoid
     reinitialization of the MSI-X space when extending the vector
     range. Such a reinitialization can result is lost interrupts and stale
     devices.
 
   - Fix a bunch of resource leaks in various driver error paths/
 
   - The usual small improvements all over the place
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCt+AQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYodfBD/4t4Eah7mPzZ96waKm8PB/bDTnuVMUSJCxm
 zU6sq1Eu/JD/tRbRes1UCP/rjKxXUGheTWBJuD5hzY4jtZ5jziQ+4wjvpO60ElAa
 W2SxPdUEB5pzaw41oVhWC5ezfD3AwqD06Tq4UXtGFL5naf417k+rrYA5CpzjT0co
 8pWnZDtc3HXLheuDpaSL8KPJJaGt+7gt1kX4JMuBt9WhPi9PoTmbuja9F41RwbA1
 eXoCTie4R5/wi3rHC3iOk4dST6nDwJ0ENeNayTa46KjOlTC0sU9fwz6HG3S9kiEr
 sucpvxVmbKpA3OBzVXWjJVsD6XmLrQ30zWgG8QpjO4Y0F0STkljjC6WMfcp2V0xn
 UZjBEQaTbx+N7RQy2MFTqwh7W6Ftx6+c4SdFRAYb3kkoTDjnFGSiwfRc739bhUHD
 cD8OiwvTlLr8djTNV54bRGI7bCqMkdfvjyMLJvhAocz6ek1a2/D8ukS5IRUODHBI
 YVEOqcEfKXGeCR8/dWl2QNTbZ1dLZqpnytcYUDWmZ64kQU2Xxya3EcNzWI+Boz3e
 VAijXFdLwbugeh4eM787fSymsEQaw5po5lC+WUY5mMxk1fokNOiBPC6mAUhh8USF
 r7w8pB3UnqKRz8NlBpL9wrzC8QD6eS1dfhuju4cZiBNxnrXmpFGN9aw2JucpYBU4
 zBZxUuQP/Q==
 =/Sxy
 -----END PGP SIGNATURE-----

Merge tag 'irq-drivers-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull interrupt chip driver updates from Thomas Gleixner:

 - Update the realtek-rtl driver to support multiple interrupt domains
   and remove hardcoded assumptions about the underlying demultiplex
   interrupt

 - Remove the unused IMGPDC driver, which got orphaned when the metag
   architecture was removed long ago.

 - Update the Qualcom PDC interrupt chip driver to support differnent
   versions of the IP block, to properly differentiable between direct
   and GPIO based interrupts and to utilize pass through mode to the
   underlying GIC interrupt.

 - Remove redundant dev_err() and dev_err_probe() invocations in various
   drivers as that error logging has been moved to devm_request_*_irq().

 - Support dynamic MSI-X allocations in the GIC-V3-ITS MSI parent domain
   driver. That's important for VFIO pass through devices to avoid
   reinitialization of the MSI-X space when extending the vector range.
   Such a reinitialization can result is lost interrupts and stale
   devices.

 - Fix a bunch of resource leaks in various driver error paths

 - The usual small improvements all over the place

* tag 'irq-drivers-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
  irqchip/gic-v3-its: Fix grammar and replace a bit number with its symbol
  irqchip/gic-v3-its: Prevent leak in its_vpe_irq_domain_alloc()
  irqchip/renesas-irqc: Fix generic interrupt chip leak on remove
  irqchip/gic-v3-its: Enable dynamic MSI-X allocation
  irqchip: Remove redundant dev_err()/dev_err_probe()
  irqchip/gic-v5/iwb: Fix stray verb in comment
  irqchip/qcom-pdc: Fix kernel doc for qcom_pdc_gic_secondary_set_type()
  irqchip/gic-v3-its: Fix its node leak in gic_acpi_parse_madt_its()
  irqchip/gic-v3-its: Fix memleak in its_probe_one()
  irqchip/qcom-pdc: Configure PDC to pass through mode
  irqchip/qcom-pdc: Differentiate between direct SPI and GPIO as SPI
  irqchip/qcom-pdc: Move all static variables to struct pdc_desc
  irqchip/qcom-pdc: Restructure version support
  irqchip/irq-imgpdc: Remove unused driver
  irqchip/irq-realtek-rtl: Activate multiple parents
  irqchip/irq-realtek-rtl: Allow shuffled interrupt order
  irqchip/irq-realtek-rtl: Add a select function
  irqchip/irq-realtek-rtl: Add mask for interrupt handling
  irqchip/irq-realtek-rtl: Add interrupt data structure
  irqchip/irq-realtek-rtl: Split out parent setup code
  ...
2026-08-18 15:24:18 -07:00
Linus Torvalds
762fffa407 Generic interrupt subsystem updates:
- Remove pointless NULL checks of the kstats_irqs field. That's a
    historical left over and not longer required.
 
  - Add Radu Rendec as reviewer. Radu thankfully stepped up to help
    reviewing the interrupt core and the related drivers code.
 
  - The usual small improvements and fixes
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCtM8QHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoV4SD/465axAMEli+6LbBcxWVmX1SCUasn+VM/2g
 VUUPONEDuf/Ucig+OC1QlvfZ/5d9pLiIwh3TakWPbkFtZpyfi60KiEQw5OW67TYB
 5TYgJI8BquIAQGzjUCKIzZmEvQhbuJzRjz07CIZnCtQBK3b/ftSDCwm6ynhhYRQC
 5yX/ay84pHPCyWVupkXV8jwjFm6v28U17j8TVd2VwEIOrEBa8dbOxOqUlRzrjbwE
 2dmo7r3BPSpyI/VpYiOW3wEXYq03+sR3MTNXQ9VWqLVcaUJUdDnbTnXqMbaXpGcO
 oV4vnuPv2Ah2TkB8xF9KTcyCKJbS2BKb5BtUXEJBQ/kPnB1wD712N2oZNuaN3omF
 SM4QoWojDpNPrPYWG99T4sNbemxfiyhIJzPSE/SgE6g0cWxh3d3wh5VfOnkp4ige
 gZKHVz7EcpjcyVz4xgYhaZk+7FmzAb6FMi4UhLZ9KHbAhdH87LSDDxvcUua2X3Js
 v1RdV3pkH1M3tBcLfO0D1neGL4VCL9zs8Ldf0jJBvcOy8kmjcs4uCll54hEbCQwI
 N7Qt7JF/r1LwxJRMC4OzsXp2upCbT5gaCOeG2HJuQUSy//0RL72NzjQe4cJSw5ya
 5Xnv5d/6L+hnwkOo7LPp9JYORXZ673D/vQgBg9Nf64Iz0i9SWnNB/fsmiSoTjw/c
 ZmqKGgEyHA==
 =6wX8
 -----END PGP SIGNATURE-----

Merge tag 'irq-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull generic interrupt subsystem updates from Thomas Gleixner:

 - Remove pointless NULL checks of the kstats_irqs field. That's a
   historical left over and not longer required.

 - Add Radu Rendec as reviewer. Radu thankfully stepped up to help
   reviewing the interrupt core and the related drivers code.

 - The usual small improvements and fixes

* tag 'irq-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  MAINTAINERS: Add Radu Rendec as reviewer for the interrupt subsystem
  genirq/msi: Move misplaced EXPORT_SYMBOL_GPL for msi_domain_free_irqs_all()
  parisc: Remove unnecessary NULL check of the kstat_irqs field
  genirq: Remove unnecessary NULL check of the kstat_irqs field
  irqdomain: Remove unnedded NULL check in __irq_domain_[de]activate_irq()
  genirq/manage: Use irqd_get_parent_data() helper in __irq_get_irqchip_state()
  irqdomain: Plug leak in irq_domain_alloc_irqs_locked() error path
2026-08-18 15:19:50 -07:00
Linus Torvalds
6138016752 Two trivial updates for RSEQ:
- Add the recently added new test binaries to .gitignore
 
    - Fix a trivial typo in a comment.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCs+AQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoRklEACcQNhe4wm9llUmLlbHNqKhXi5px16fE5bb
 etd6iIds3TXTLT5VMz0aEA3SR24zDSXEXgDLLZjwokngo9F0Y8dPY+OG79XTNe40
 dMf7nWco7AEX00QZhSYcwgt1tk/PRURGI78iSTn4xNbP9LTdKuM5uqSjBXGAZ25V
 YOuXZWjy9q98GSpwxNTfMRn80bHAd/7phJ7XMB/xjU1gshZAV+vIW/C5/fZ27vZU
 1TEEu3hZUI2zK5y9ZWQaxxJ+0qmzO43En8VuNmw35OR6y99GqxWblrlHD0cLVbA3
 ipxI/oNKazbVME8xbEc6yE4/ERvLA10I19S9qmejNkOMBEMOlCgVOoImxvmPOzIg
 RDJz+cVPEyr0b/1l6ZmqByPHY2XBxD0zpDM8lqhS98nwBRaPcxcbyMaSTuQm/PJ5
 KEu+4vlP/GJM3PxLXdWKtSj8UUmz25Ok2AXw5drWUnOdE5Tqoq7hraeUTeAKNdId
 yNjD+ttDo5+f7Si2qvbyBRo0qJDHM2K+J3qNvb/sZ303AyCA7SWiJWMl39CDmHNq
 Y7RpwWJF4alYIPEHstPZoBuuyfkpkXHX/2FUva89Zk9tu2v3q0vgV5xKA80/B1tB
 r887+BLcG1vXSC53HnboVgRXHkUmAmTRmt3n3KTdWcuyhl+UwxtLQbSPIQGvgyEa
 2+5i5hpNrw==
 =FSxg
 -----END PGP SIGNATURE-----

Merge tag 'core-rseq-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull rseq updates from Thomas Gleixner:
 "Two trivial updates for RSEQ:

   - Add the recently added new test binaries to .gitignore

   - Fix a trivial typo in a comment"

* tag 'core-rseq-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  selftests/rseq: Add missing test binaries to .gitignore
  selftests/rseq: Fix spelling of accommodate
2026-08-18 15:16:10 -07:00
Linus Torvalds
3424d8c18a Generic entry code updates:
- Make syscall user dispatching configurable
 
     Not all architectures can makes use of syscall user dispatching. Allow
     them to disable the feature completely.
 
   - Consolidate stack randomization for the generic entry code and the
     architectures using it.
 
     Stack randomization on syscall entry was sprinkled throughout the
     architecture specific low level entry code and in some cases at the
     wrong points, e.g. before establishing state, which violates the
     non-instrumentable constraints of that code.
 
     Clean this up by integrating stack randomization into the generic entry
     code helpers so that it is invoked at the earliest possible point right
     after establishing state and converting all generic entry code using
     architecture over.
 
   - Clean up the syscall number handling in the generic entry code. It
     works correctly for architectures which have a separate return value
     storage in pt_regs, but fails to distinguish the case where user space
     handed in -1 as syscall number from the case where the entry code
     rejects it by returning -1 to the callers. Aside of that the return
     value functionality of those interfaces is not really intuitive.
 
     Fix this by separating the decision to reject a syscall (user dispatch,
     ptrace, seccomp ...) from the potential modification of the syscall
     number through these mechanisms.
 
     This solves most of the problems for architectures which do not have a
     separate return value storage in pt_regs except for the case where a
     tracepoint has a BPF script or a probe attached which overwrite both
     the syscall number and the return value. But that's a problem which
     cannot be solved in the generic code, that only can be addressed by
     separating the storage model in the affected architectures.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmqCs10QHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoaf6D/0ZBG1Yb0/C/6lrI185qPu38aGOROuAcxP+
 RV1O1x6C83w2hCLBH8LeswY2x4/iGbdftne/hfmvu8eNCE5MzBfYvXhLL4If75Tc
 IJ6C8uummnDmrT1TFuWHryTAfjyF28gt0+GGq0Zy5Hyz9b4CTJqOMx5u6KV4cZuJ
 odoNQpE/GlWo40wCSTYP/Tt5xONrogk2pMQtFyV8JEoaXkdYSj/V815yojEmofYU
 fmgPPO5/vOnZzE4b29gZyndXnU1Boah7r1l5fg7c9za376yCEEzh/ApPhovHyY0A
 t8zjnrtooZ27IUKbcsyycrAM14asfcmViDNDgaCj8ttBioQaCnxO1BpKWjVxEZhE
 AbM6q3Q66ER4Df6GNhZjPqT5Lr7E7+vLLarhXLWztsGQklIx4AFbrsa73hA20UC9
 1PSeMd45JSxH3yA8vMauXAGHFK1tD1V8Lgofu69+2Z3jtKB+aU0fqWeL1jesSEM0
 oCGhUb3hIC1pz3KVA0MGmNTm0yyQJYTGZL7wADYNV5NbxJVqXgo37qa/0n94Gf/4
 TG3OwY4Sb/H/sve7v/eY4IvxVh+xs3dLZP8ZoqMlPCp9JIxc6iNoe6VHqPI7PFnM
 fXwDtsy+bRF/SKnB/32qxnR7UJqmdNH3XIjd+lXWliKt6UYoC79/MEKN5DmJcO9P
 CykZUWa72A==
 =XUd9
 -----END PGP SIGNATURE-----

Merge tag 'core-entry-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull generic entry code updates from Thomas Gleixner:

 - Make syscall user dispatching configurable

   Not all architectures can makes use of syscall user dispatching.
   Allow them to disable the feature completely.

 - Consolidate stack randomization for the generic entry code and the
   architectures using it.

   Stack randomization on syscall entry was sprinkled throughout the
   architecture specific low level entry code and in some cases at the
   wrong points, e.g. before establishing state, which violates the
   non-instrumentable constraints of that code.

   Clean this up by integrating stack randomization into the generic
   entry code helpers so that it is invoked at the earliest possible
   point right after establishing state and converting all generic entry
   code using architecture over.

 - Clean up the syscall number handling in the generic entry code. It
   works correctly for architectures which have a separate return value
   storage in pt_regs, but fails to distinguish the case where user
   space handed in -1 as syscall number from the case where the entry
   code rejects it by returning -1 to the callers. Aside of that the
   return value functionality of those interfaces is not really
   intuitive.

   Fix this by separating the decision to reject a syscall (user
   dispatch, ptrace, seccomp ...) from the potential modification of the
   syscall number through these mechanisms.

   This solves most of the problems for architectures which do not have
   a separate return value storage in pt_regs except for the case where
   a tracepoint has a BPF script or a probe attached which overwrite
   both the syscall number and the return value. But that's a problem
   which cannot be solved in the generic code, that only can be
   addressed by separating the storage model in the affected
   architectures.

* tag 'core-entry-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
  entry, treewide: Make syscall_enter_from_user_mode[_work]() indicate syscall execution
  entry: Make return type of syscall_trace_enter() bool
  entry: Rework trace_syscall_enter()
  entry: Rework syscall_audit_enter()
  syscall_user_dispatch: Introduce ARCH_SUPPORTS_SYSCALL_USER_DISPATCH
  entry: Fix seccomp bypass after ptrace with TSYNC
  x86/entry: Simplify the syscall number logic
  x86/entry: Get rid of the sys_ni_syscall() indirection
  x86/entry: Make syscall functions static
  ptrace, treewide: Rename ptrace_report_syscall_entry() to ptrace_report_syscall_permit_entry()
  seccomp, treewide: Rename and convert __secure_computing() to return boolean
  entry: Use syscall number instead of rereading it
  entry: Remove syscall_enter_from_user_mode()
  x86/syscall: Use [syscall_]enter_from_user_mode_randomize_stack()
  s390/syscall: Use enter_from_user_mode_randomize_stack()
  riscv/syscall: Use syscall_enter_from_user_mode_randomize_stack()
  powerpc/syscall: Use syscall_enter_from_user_mode_randomize_stack()
  loongarch/syscall: Use syscall_enter_from_user_mode_randomize_stack()
  entry: Provide [syscall_]enter_from_user_mode_randomize_stack()
  randomize_kstack: Provide add_random_kstack_offset_irqsoff()
  ...
2026-08-18 15:00:56 -07:00
Linus Torvalds
3a0dd7ba4f x86/documentation changes for v7.3:
- Misc x86 documentation updates (Randy Dunlap, Daniel Gibson)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC4VIRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1gfEA//ZDjmJtsROLRciQmobsT5tDnyCwQXRuFJ
 2sZgBvcdYjKZOUbnq2JHNu2x//mQ3I+/GHoqgB25ISVtuurHj/lh9CBpxthECcBv
 6cAXd4iJ8I8kYKPM7oHvSs7Jnxp0Z9Iea4lYO5z6l5O0WX2Cr5/jvkt3Lx0pzVwr
 Mat+VrlDR04QRtKK9ohwTfotYx/O4SdL04cT2uLuLj0EGG3nxBFgGsHszO7oG5Yh
 CGFgW81Ju2IVeQ/XaOjWKAOZMN4yb4bjsA/oL9TnDhaayYXeznHE51LzKn3KsUeK
 Qbys1s3AFvLvdUB+6xaqlzwIxPvgvdCVnzzqb9LFId3Nl/PJgFccFs+Y91D3C+nJ
 U1ZUhcrAcTW8HfKoNH99M1hvN7NLHq+5AvjL/rpibiQLLcHFND8p1c8SkxC2NVin
 JF+ufdr8JvfuITSB0STBR9lRiP882qmHZX64F21RqI7vKcXZNkV2DhZXJrU6lZY4
 GMxPoWwWiMzGIBpQDuig/dImFOjL8T8UibqJ9d5Vp8+1xkH1KOrOHLa4rMUUJlAT
 CfuyCY7d8pWa7dTxFHYAQV8+bExw/pxwAwpReOW7m4Ntyxfe49ZC/tCJg9vxsWPr
 8P1LKyWHm76mBebrt3/eCY6VkiX6Z0MhkMk0Si+LgccGEVjj88lvn3QgeUkERWkr
 MGbuZPIiX+4=
 =tB+O
 -----END PGP SIGNATURE-----

Merge tag 'x86-documentation-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 documentation updates from Ingo Molnar:

 - Misc x86 documentation updates (Randy Dunlap, Daniel Gibson)

* tag 'x86-documentation-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  Documentation/arch/x86/amd-debugging: Add example for reset register
  x86/intel/quark: Clean up function kernel-doc
  x86/speculation: Drop Excess function parameter descriptions
  x86/lib: checksum_64.h: Eliminate all kernel-doc warnings
  x86/barrier: Use correct parameter names in kernel-doc
2026-08-18 14:13:43 -07:00
Linus Torvalds
d5b550edad x86/core updates for v7.3:
- Optimize the kcfi call sequence (Peter Zijlstra)
  - Use sfence for wmb() if SSE is available (Yao Zi)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC4LMRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1hXnA/9GnPxgwNrauwIk+gH9DyGDYa93byd+JtE
 SKVc3RWipSYqrG6cgQoNDnGCN+TLO2lIrCriXRXfisu3F5HMR+VZ+H6KNt0zy3eK
 EZrMFQpIEX98penD+w9Ae42LBCdLKPKyN9obkdUftIYMYAsW/LtZE9PAy3WqH/0L
 iyYs1EwpIQuZGRJNxQYbNNVCs+fi1PCP5WmGitO5QHUUqVmyf9g9jFkS3rAAP28v
 WvDLDWbHBz/1MVV34/jdftuMhOSz8FpwASseozsq7LXPV5yiknlCIf7rgiVlxR89
 tmxFYN5Trjk8ORiR0TpknmAxduXtAAt0Mu1vE6ABbLgyaYv99+O21g0dN2KdUdxh
 9P8azSVY1rNn8rnrQSNsfoEv+TrPT+22iTcQd4Z2/wKc0D51CoGxX4+uY98ybwj5
 U47ZUZCVZcnNk4sNnNxevoAEmgCUd092/qcgyOM7PXCsNl/X2g9NfwNu/XtRaog3
 3Y1T5TUk+apNKNs2bul2OTvcrwS4GUFLTZTRZp4BuvqkCiuZvv2InWnVVDOjaUXU
 vpMANFVy8ARYS25Elxeje3v1Dwya/5ZAl8sJhTx9QX7OhTzW1Cn71q2Ur3GYojjz
 CNGs/rik586HM+NFpRZcHXAnN/nLMZVQjDQxuD3istp3ozqgXKjHqBnecwV6JZKb
 tAmymfqtYXU=
 =C/Mp
 -----END PGP SIGNATURE-----

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

Pull x86 core updates from Ingo Molnar:

 - Optimize the kcfi call sequence (Peter Zijlstra)

 - Use sfence for wmb() if SSE is available (Yao Zi)

* tag 'x86-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/locking: Use sfence for wmb() if SSE is available
  x86/kcfi: Optimize call sequence
2026-08-18 14:08:57 -07:00
Linus Torvalds
3dd1f7447f x86/build changes for v7.3:
- Only align ENTRY_TEXT to PMD_SIZE if necessary (Hamza Mahfooz)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC39sRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1ji4w/+JbckikVS6wCwuvQUBu0g9wP5zR26Vt5G
 ZxZtpvqnke0McQLJPA5OftbCEHCt2UHkU/dRSCLHU7pC2aeNrrVM2KJACaxWhnWp
 oBt7u87BUftNJ8GkQ4Qsdc/QwV4NoAT2BN8LkW0SLH8taamKjNgI826QZ9SM/+zF
 x2ZMxBUuPnHoVrH++gwWs6VnnNoaKOEG/AeROpOziyRVhbfWDOQq+JMtz4oClq0B
 TP3vlw69ds6AICrz3y72ytzcoPGru+rg32pSslpeNR4K4yj5IaM6NeWvG6eVZwd8
 Uaj7Q+UkGBfuLGRJVSmjalM7+M4aorTvFal4SYA7Af80+4H5viIpwtJPp0Ez3JXB
 SmPgIiKqGGVfxKgQ40TUg2tjU6YaiXRqc9reHth+c2payK0+54wFXj+14liJnMz9
 W2a+UQkUnR0I9cAbSTJxQ5ztl83uT4UD4z+dvqdeIbjw71lDn4tp1nfOndPR5Se+
 q+GfA3M2sAABOZ01OGP8/g1KiOpT2sd0Jmr0P+Wz9ZUigDF/FIYe8MSWF3VCa/Ew
 lerynCceAP+5ib0lDtFpmnqB9/VMTML6ncvmPSM/A/nB18Na3i3h8e1MNRTMbvmS
 bpha4kn8+6xjDs1M+Mxm/P/RgfUvEXSMPmWD/xDYVSFazKaZJ/5bLHauNWxRweuN
 YNZed+t3tTM=
 =EM3D
 -----END PGP SIGNATURE-----

Merge tag 'x86-build-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 build update from Ingo Molnar:

 - Only align ENTRY_TEXT to PMD_SIZE if necessary (Hamza Mahfooz)

* tag 'x86-build-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/build: Only align ENTRY_TEXT to PMD_SIZE if necessary
2026-08-18 14:06:52 -07:00
Linus Torvalds
09d639f1f1 x86/boot changes for v7.3:
- Misc simplifications and cleanups (Thorsten Blum)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC314RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1iIAw//TIQZjw3mST7UIjJiS3YDZEZlYkjyejVi
 0FnkZhWomySzIzkJIQlIgWPjgVHI+5mZD7ZDjte0aCc4gRGPnqsxV6os/0QZVdr3
 VlDOKdYK0Z31ynE16ceOXV1pHRNyqpD2sDu4sGuszK/oG2EdsBS7RTNkTtIRtnTd
 uLo3JfYgDs5QgLr6W3Lex8jKvyJCDMCLiHv7BLINnIPZq6G4UdlVufNQONq0qwzs
 0hIonKW2WA3/wbG1ffLE/XdJE22K+yY+wdUgzj07CeEve94jX8yY/SS4FYJ+uIWN
 5oeup/lIEF/j1JVrH/nAY2aqO0JgIurlkPqYlnrBXIE5hQu5tthNpvu9CFc37Atc
 FEwcHoSk491vw9JRNucakUs3/b05ujsD0Hi42z8t/3ZpBrfV1oNedcqa5ugdJABR
 5IQtAGJz3MlD0GhkkKhSGpfwPCZQeY0BzeZjVLMpA2SK6sDYQMEODK7hUkWRIQ9b
 Rd2VBRwEw+bOVYSHe7m1LOMToPgdvjulHz+5t6VTm1D1gCiGmv5O6YA2gcw+nPQU
 vyBsYmUvny7FuF0Gpt3nQRgPZxgzuTs1Kcd2ZdIX57X59rCplOu+N/KKRiAbqC0m
 BPn+IMT1kUmhwvYvR21n1aEJZGLrf/xsz0cZXAeU8keOgMHy9iCHedu5rV3e6pfu
 RyYDZA4cwwE=
 =OiK3
 -----END PGP SIGNATURE-----

Merge tag 'x86-boot-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 boot updates from Ingo Molnar:

 - Misc simplifications and cleanups (Thorsten Blum)

* tag 'x86-boot-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/boot: Use bool and IS_ENABLED() to simplify query_edd()
  x86/boot: Use IS_ENABLED() to simplify built-in-or-module checks
  x86/purgatory: Return bool from verify_sha256_digest()
2026-08-18 14:04:48 -07:00
Linus Torvalds
8dcef8882a x86/msr updates for v7.3:
- Streamline the x86 MSR handling APIs along the 64-bit
    variants, simplifying the interfaces. Removal of the
    old APIs is planned for the next cycle, to reduce
    churn & integration pain. (Juergen Gross)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC3qYRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1jSOA//cTRslNJ4t3g2cR8iPDFXsjMmwsvpDJn1
 OVqOlyFcQpJCliC37JmRA94B6RufVdoFikOuyshn4SaPix8+lUKZDt+c5N6wfZsI
 NJ4zuCHD4k0tDhHCYXihEISBAGUJrHk+6eiNTxDTlCUhCxqLvX1W1L0fiB4R2w0h
 /Z1ZfL0Om6QV/V8u7lC8Vio0Uxp12Zjm60I43QBsUTOoD+4poaGGORV+03lnGnaZ
 eaq9VRZKrrx6h3K5hS1Ja6j6mWehQzWabn3v5cM15IwYNuVA4g38OKR8ofqk0Shz
 DvCILEtjoT7mXfvGoxYTSuEEa5aJoTSplMVbsrRuXHtcwDplnCGxCnYE0pYCfpFD
 4xzvBBm15X20M0CFFW3lvJKqyN43M+Wfh/aOG0AT8BmIPKuyzZgc9yJ/QxmS4dYY
 5atebSCK+caKr8IXshTTvssEWGF1A6un/0lOfuS2BmdIZuREYxzKWF3sqp3f10Gx
 hSm1xB5HRhoQCIFP3PGER8bwwea0UmjI9VWHEkBKfNadqz3OPEZf4PQNiWJ3Q6x0
 T7EGOWJlZTzCH2iqGrzPY0g56pPoDwGzjIruAmhc5NMFEOIHy0MKyPw4huWKSSzB
 WVpqi8Gnn0HS3dECOnvkDpNM0JXDp9XYSaL5mLs/ZgWPIwJ6fFHbY34xm3A+Cjdp
 hGYmT3Mtx1A=
 =QBg3
 -----END PGP SIGNATURE-----

Merge tag 'x86-msr-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 MSR updates from Ingo Molnar:

 - Streamline the x86 MSR handling APIs along the 64-bit variants,
   simplifying the interfaces.

   Removal of the old APIs is planned for the next cycle, to reduce
   churn & integration pain (Juergen Gross)

* tag 'x86-msr-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
  x86/mce: Work around build warning after MSR-interface switch
  cpufreq: Stop using 32-bit MSR interfaces
  x86/featctl: Stop using 32-bit MSR interfaces
  KVM/x86: Stop using 32-bit MSR interfaces
  x86/mtrr: Stop using 32-bit MSR interfaces
  acpi: Stop using 32-bit MSR interfaces
  powercap: Stop using 32-bit MSR interfaces
  thermal/intel: Stop using 32-bit MSR interfaces
  x86/olpc: Stop using 32-bit MSR interfaces
  x86/hyperv: Stop using 32-bit MSR interfaces
  hwmon: Stop using 32-bit MSR interfaces
  EDAC: Stop using 32-bit MSR interfaces
  x86/cpu: Stop using 32-bit MSR interfaces
  x86/apic: Stop using 32-bit MSR interfaces
  x86/resctrl: Stop using 32-bit MSR interfaces
  x86/tsc: Stop using 32-bit MSR interfaces
  x86/amd: Stop using 32-bit MSR interfaces
  x86/pci: Stop using 32-bit MSR interfaces
  x86/hygon: Stop using 32-bit MSR interfaces
  x86/mce: Stop using 32-bit MSR interfaces
  ...
2026-08-18 14:02:15 -07:00
Linus Torvalds
e2457a664e Scheduler updates for v7.3:
Load-balancing updates:
 
  - Series to 'flatten the pick': improve cgroup scheduling, which has
    always been problematic and painful, which has caused various
    scheduling misbehavior such as the mishandling of reniced tasks et al.
    Add various cgroup weight distribution methods via cgroup_mode:
    'up', 'max', 'concur' and 'tasks' - with the default being 'concur'
    which is the most precise yet also most expensive version.
    Finally, change cgroup scheduling to a single runqueue.
    (Peter Zijlstra)
 
  - Series to improve the scheduling latency of short slice tasks
    (Vincent Guittot)
 
  - Series to fix cluster scheduling in the presence of asymmetric capacity
    (Ricardo Neri)
 
  - Prefer fully idle cores for NOHZ balancing (Andrea Righi)
 
  - Don't trigger active load-balancing if src_rq->curr is not on_rq
    (Xin Zhao)
 
 PSI updates:
 
  - Skip irqtime accounting when no new irq time has elapsed
    (Usama Arif)
 
 Scheduler debugging updates:
 
  - Remove unused schedstats (Shrikanth Hegde)
 
  - Defer freeing of cpumask memblock memory to initcall
    (Waiman Long)
 
 Misc fixes and updates by Yu C Chen, K Prateek Nayak, Peter Zijlstra,
 Vincent Guittot, Xin Zhao, Yury Norov, Zhan Xusheng.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC3WARHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1hawRAAuVAreXtsp7Ok6aRHmiOMR+Va2EsHIL4B
 3MY5do2oUfiJSCDtIn3BXqjM3djOXdbQLQwm6r9/NkyJ6hsOsRgZaP1L/w07FiY0
 33ilIhZIH9QZ2RzvEjZcFXVwnWH6zP8Ag/gTsch3g8TIX2JJcZBzcJjQM8ZIdcBL
 oxwWNe9z3Mh0/x2N+N/s1xstaZf95bWQKeBVBGjiOAakGRWMEaQmMtOUujJNmx/p
 YFtNcJL6pLGfD+ASOtLxYWts4z1JyDmwvje8SZmRsgjZdhoxRlnEIgU6jrNjmPqu
 NfR5w6R193Pa+FapawYi0ttuawapHvvSDDUxjl+eIccPMw0mBdjzn1XuNIt6pclC
 Q4VDUQEDBYvbeznNfLuvvsLVBq/QIjim391lg9DuAGreuRx00Ij0hXOCPk6TM4H8
 tfUZ8N25vIAbYrFajSDyOYdgAa2Z2VnM1Q1ko29LPb3WFfZsEqgIg7+ukoXCZ5n8
 67pUrOYLuSlLXJGlJY9WDz1nbeUh3e0f2390fif3VBcQ7roPEmoL8CYZhh8Vd2rq
 ug8kOpL/91/PDgSPbxRRIEYhe9X1kzWZxqpjvO93tZ+GhXUxtLFG4PjnbQhINy1A
 BMNlxcq4ktVHk9gwLaG9wcySjINnN/wK91o3dQ9YjwTuCAxFi/AqUVjY+OOmguAh
 TO0mkEq99M0=
 =HTPk
 -----END PGP SIGNATURE-----

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

Pull scheduler updates from Ingo Molnar:
 "Load-balancing updates:

   - 'flatten the pick': improve cgroup scheduling, which has always
     been problematic and painful, which has caused various scheduling
     misbehavior such as the mishandling of reniced tasks et al.

     Add various cgroup weight distribution methods via cgroup_mode:
     'up', 'max', 'concur' and 'tasks' - with the default being 'concur'
     which is the most precise yet also most expensive version.

     Finally, change cgroup scheduling to a single runqueue (Peter
     Zijlstra)

   - Series to improve the scheduling latency of short slice tasks
     (Vincent Guittot)

   - Series to fix cluster scheduling in the presence of asymmetric
     capacity (Ricardo Neri)

   - Prefer fully idle cores for NOHZ balancing (Andrea Righi)

   - Don't trigger active load-balancing if src_rq->curr is not on_rq
     (Xin Zhao)

  PSI updates:

   - Skip irqtime accounting when no new irq time has elapsed (Usama
     Arif)

  Scheduler debugging updates:

   - Remove unused schedstats (Shrikanth Hegde)

   - Defer freeing of cpumask memblock memory to initcall (Waiman Long)

  Misc fixes and updates by Yu C Chen, K Prateek Nayak, Peter Zijlstra,
  Vincent Guittot, Xin Zhao, Yury Norov, Zhan Xusheng"

* tag 'sched-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
  sched/fair: Fix flat hierarchy
  sched/isolation: Defer freeing of cpumask memblock memory to initcall
  sched/topology: Restore SD_PREFER_SIBLING in domains with asymmetric capacity
  sched/fair: Allow load balancing between CPUs of identical capacity
  sched/fair: Skip misfit load accounting when the destination CPU cannot help
  sched/fair: Check CPU capacity before comparing group types during load balance
  sched/fair: Also gate overloaded status update for SD_ASYM_CPUCAPACITY
  sched/fair: Do not skip CPUs of similar capacity with busy SMT siblings
  sched/fair: Prefer fully idle cores for NOHZ balancing
  stop_machine: Make stop_one_cpu_nowait() return void
  sched/eevdf: Delayed dequeue task can't preempt
  sched/fair: Fix stale comments referring to removed CFS concepts
  sched/debug: Remove unused schedstats
  sched/psi: skip irqtime accounting when no new irq time has elapsed
  sched/fair: Reflow sched_balance_rq()
  sched/fair: Simplify balance_interval reset logic in sched_balance_rq()
  sched/fair: Don't trigger active lb if src_rq->curr is not on_rq
  sched/eevdf: Speedup short slice task scheduling
  sched/eevdf: Always update slice protection
  sched/eevdf: Cancel slice protection if short slice task is eligible
  ...
2026-08-18 13:39:48 -07:00
Linus Torvalds
dfa35434d7 Locking updates for v7.3:
Futexes:
 
  - Use runtime constants for futex_hash computation
    (K Prateek Nayak, Peter Zijlstra)
 
  - Optimise the size check get_futex_key() (Sebastian Andrzej Siewior)
 
  - Avoid private hash use-after-free on final put (Felix Hoffmann)
 
  - Tell kmemleak we're not leaking __futex_queues (Peter Zijlstra)
 
 Rust integration updates:
 
  - Implement refcounted interrupt disable and SpinLockIrq for Rust
    (Boqun Feng, Heiko Carstens, Joel Fernandes, Lyude Paul)
 
  - Rust sync: add helpers for mb, dma_mb and friends;
    add generic memory barriers and use LKMM atomics
    instead of Rust atomics in the revocable code (Gary Guo)
 
  - Add abstraction and integrate synchronize_rcu() (Philipp Stanner)
 
 Lock debugging:
 
  - Add qspinlock contended_release tracepoint
    (Dmitry Ilvokhin, Peter Zijlstra)
 
  - Enable the printing of held locks of remote running tasks and print
    task CPU (Ingo Molnar)
 
  - percpu-rwsem: Annotate intentional data race in readers_active_check()
    (Sun Shaojie)
 
 Misc fixes and updates by Boqun Feng, Peter Zijlstra, Fangrui Song,
 Naveen Kumar Chaudhary and Thomas Huth.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC2KMRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1gNwg//awvTQONfhPanAyTgl7CLDSlMSHdqmlyh
 Ue0/Q8Ef1Cy4jwXY2FE2A0b1VcM6cGpDPoryVdg/wMdUXRNwinzAEXmxIkRy9kve
 4LybrZwDShgLxJ7pJ6KKhgjgDiat8EdYmOwCBEE3LnP7AYhkAb8BFetA3YZJvzPa
 KfA2BRYCgvBTid6yOAuXWm55Ev92AczOBamBzTxCadcaDGtNGXtQO6LfnqiQDOav
 X5tVoANBeaQtSs1+LxE41WdNOiRoBuy0IFFvXtZRal6PZYuGGmZ5tbQvscD099em
 haVwQyzDHQrqzglv71M0KRTXvYzdGveMRg/Au1SQnuLO3V6Vd5rMQ1g7I2M9Ln0f
 Pg+tlRvQ77mLoqcgrtl0W/u0fRR4eDkiJ1pmG+98oniPwau23RdbFhC0vKFz3ikF
 WHMgk3/9TcULylgF1Tj6QLmNrBY3Vx8LBdsFjhflEw7bG4cW42D91npmXIiEDE6K
 tJc9CcaVdyE75o59z2Dtjj+qQVBlNPlfKQFXFL7p3jU/gFw2SzYuqon66X3kGmr0
 mKJ9UNJdkLdiCjxS/QiMcDeYhwJksJqxFBkH50z3Kzmo84JsSpUFkoa6GM4aSiGn
 HEwgC0Q7oOXVNIKUBYk5QaRW0HSk55hbsX2TWkvpeBYkE1zXshVZCCmgpaTSJgb5
 oFmiwrGfUjo=
 =slqC
 -----END PGP SIGNATURE-----

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

Pull locking updates from Ingo Molnar:
 "Futexes:

   - Use runtime constants for futex_hash computation (K Prateek Nayak,
     Peter Zijlstra)

   - Optimise the size check get_futex_key() (Sebastian Andrzej Siewior)

   - Avoid private hash use-after-free on final put (Felix Hoffmann)

   - Tell kmemleak we're not leaking __futex_queues (Peter Zijlstra)

  Rust integration updates:

   - Implement refcounted interrupt disable and SpinLockIrq for Rust
     (Boqun Feng, Heiko Carstens, Joel Fernandes, Lyude Paul)

   - Rust sync: add helpers for mb, dma_mb and friends; add generic
     memory barriers and use LKMM atomics instead of Rust atomics in the
     revocable code (Gary Guo)

   - Add abstraction and integrate synchronize_rcu() (Philipp Stanner)

  Lock debugging:

   - Add qspinlock contended_release tracepoint (Dmitry Ilvokhin, Peter
     Zijlstra)

   - Enable the printing of held locks of remote running tasks and print
     task CPU (Ingo Molnar)

   - percpu-rwsem: Annotate intentional data race in readers_active_check()
     (Sun Shaojie)

  Misc fixes and updates by Boqun Feng, Peter Zijlstra, Fangrui Song,
  Naveen Kumar Chaudhary and Thomas Huth"

* tag 'locking-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
  rust: sync: Introduce SpinLockIrq::lock_with() and friends
  rust: sync: Add SpinLockIrq
  rust: sync: Use super::* in spinlock.rs
  rust: helper: Add spin_{un,}lock_irq_{enable,disable}() helpers
  rust: Introduce interrupt module
  s390/preempt: Enable HAS_SEPARATE_PREEMPT_RESCHED_BITS
  arm64: sched/preempt: Enable HAS_SEPARATE_PREEMPT_RESCHED_BITS
  preempt: Introduce HAS_SEPARATE_PREEMPT_RESCHED_BITS
  sched: Avoid signed comparison of preempt_count() in __cant_migrate()
  sched: Remove the unused preempt_offset parameter of __cant_sleep()
  locking: Switch to _irq_{disable,enable}() variants in cleanup guards
  irq: Add KUnit test for refcounted interrupt enable/disable
  irq,spin_lock: Add counted interrupt disabling/enabling
  openrisc: Include <linux/cpumask.h> in smp.h
  preempt: Introduce __preempt_count_{sub,add}_return()
  preempt: Introduce HARDIRQ_DISABLE_BITS
  preempt: Track NMI nesting to separate per-CPU counter
  futex: Tell kmemleak we're not leaking __futex_queues
  x86/paravirt: Trace contended_release on unlock
  tracing/lock: Use TRACE_EVENT_FN() for contended_release
  ...
2026-08-18 13:07:17 -07:00
Linus Torvalds
8915457146 Performance events updates for v7.3:
uprobes updates:
 
  - Patch series to fix a category of bugs with optimized uprobes that
    can clobber the redzone area with call instruction storing return
    address on stack where user code may keep temporary data without
    adjusting RSP. Fix this by moving the optimized uprobes on top of
    10-bytes NOP instruction, so we can squeeze another instruction to
    escape the redzone area before doing the call.
    (Jiri Olsa, Andrii Nakryiko)
 
  - Switch uretprobes_srcu to SRCU-fast-updown, to improve performance
    (Puranjay Mohan)
 
 Intel CPU PMU driver updates:
 
  - Optimize ACR handling in match_prev_assignment() (Dapeng Mi)
  - Patch series to fix various PMU driver bugs and data leaks (Dapeng Mi)
  - Fix Intel PT stop/start with no update (Adrian Hunter)
 
 Intel uncore PMU driver updates:
 
  - Series to fix various uncore PMU setup robustness bugs (Zide Chen)
 
 AMD uncore PMU driver updates:
 
  - Add group validation (Sandipan Das)
 
 Misc fixes and updates by Dapeng Mi, Randy Dunlap and Zide Chen.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqC1G0RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1gMehAAh/p3A42YKWgcEjnlmCTJ+RTGTrLbL/OB
 Q2uj4H9D32lBV8+ZyBjt3iVT5u8Z3pliUMAq4yaLua6SiWO4gbb/XLp7K9tnHSj9
 J/9zvOdxC74ZmnuKYzcjmSAFzYL0VmfHoHUMXNKEqjP/cfZnlp7Zhs7n0s+aEt9h
 IzkgzUt3maY7xjXnBXiHHmIvOrGt5i2avXFJxUeE6YPnRjUK6+8b8jzJTsvL7GrM
 lVTG7D0ptRELVKpgvbHWAK4738Oxls0tB6KmEHO+lMwM5i2OFy/Xs3PxX7Z6ruII
 3+RUAk9K8MNpxG+eIUzBs+Qu3a3cS/bAMS4LiD+oKSg0OxAbnvRey1l0uQOZLevb
 UUG3mNMpOJ0rfQIBMT0FhJZ7Rk6V0XRCfjyXnrZhfjCa879g+GPxrHoSAVjMa0PG
 S1y51mj5QNeXwMi7U9Pwl88GF2TLsxj1kNlpgMrFfZywjXD5wp2Oqd6s+fVuFk/X
 5FuUcY7evchxXjlfrYM84gtBBklVeOmd4yrqAGmhM5LUoFBCTt6HPzzn8U9Z8BIm
 qZvtSsZ4/FGQPNrAbGXXQ1tWxxP+g0HeRYmyxoj2n6Xpope8vDdWzs/cA1NeG9Dl
 4sbwkiOmWUCBniR05oTTCFtSejnr3UIq/H/ulUJRSRHocGaveFVhuUJYqQRsfUSX
 d223r/dlwj0=
 =V8n9
 -----END PGP SIGNATURE-----

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

Pull performance events updates from Ingo Molnar:
 "uprobes updates:

   - Fix a category of bugs with optimized uprobes that can clobber the
     redzone area with call instruction storing return address on stack
     where user code may keep temporary data without adjusting RSP.

     Fix this by moving the optimized uprobes on top of 10-bytes NOP
     instruction, so we can squeeze another instruction to escape the
     redzone area before doing the call (Jiri Olsa, Andrii Nakryiko)

   - Switch uretprobes_srcu to SRCU-fast-updown, to improve performance
     (Puranjay Mohan)

  Intel CPU PMU driver updates:

   - Optimize ACR handling in match_prev_assignment() (Dapeng Mi)

   - Fix various PMU driver bugs and data leaks (Dapeng Mi)

   - Fix Intel PT stop/start with no update (Adrian Hunter)

  Intel uncore PMU driver updates:

   - Fix various uncore PMU setup robustness bugs (Zide Chen)

  AMD uncore PMU driver updates:

   - Add group validation (Sandipan Das)

  .. and misc fixes and updates by Dapeng Mi, Randy Dunlap and Zide Chen"

* tag 'perf-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
  perf/x86: Optimize ACR handling in match_prev_assignment()
  perf/x86/intel: Fix intel_cap handling on hybrid PMUs
  perf/x86: Remove stale fixed counter helper and fix hybrid PMU access
  perf/x86/intel: Unwind cpuc state if PEBS buffer setup fails
  perf/x86: Guard intel_pmu_cpu_dead() against invalid hybrid PMU casts
  perf/x86: Free hybrid state on PMU init failure
  perf/x86: Unregister PMI handler on PMU init failure
  perf/x86/intel/pt: Fix stop/start with no update
  perf/x86/intel/pt: Use bitwise access for PERF_HES_STOPPED
  perf/x86/intel/pt: Factor out pt_config_enable()
  uprobes: Switch uretprobes_srcu to SRCU-fast-updown
  srcu: Add lock guard for srcu_fast_updown flavor
  perf/x86/intel/pt: Drop kernel-doc for deleted struct members
  perf/x86/amd/uncore: Add group validation
  selftests/bpf: Add tests for forked/cloned optimized uprobes
  selftests/bpf: Add tests for uprobe nop10 red zone clobbering
  selftests/bpf: Add reattach tests for uprobe syscall
  selftests/bpf: Change uprobe/usdt trigger bench code to use nop10
  selftests/bpf: Change uprobe syscall tests to use nop10
  selftests/bpf: Emit nop,nop10 instructions combo for x86_64 arch
  ...
2026-08-18 12:31:07 -07:00
Linus Torvalds
a0acd94e38 Objtool updates for v7.3:
- Fix various klp-build bugs reported by Joe Lawrence
    (Josh Poimboeuf, Joe Lawrence)
 
  - Misc fixes and cleanups (Puranjay Mohan, Thomas Huth and Ingo Molnar).
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmqCz54RHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1gD/A/8DRBAjlv+aj6knJgmAP6GZI6Wc2pfjj1C
 5UPUZQf9/ib+/19D2YfOEvUM2T5RZg9fy2OhPGM3Qbe8GiCbKKpB1quJg3U7JB0P
 Z1jO7ViSt0n1ako04xWfDAOjRld32u7idDu/RD+qw5Sahzsy/HPejnIZS6AXYe8V
 Jw1KDviPfx3d2xPAcizp92Zg9SywcPcBI+jQVn61+ly1ZNbVTvUOlsARIWYOB4LI
 wTfeNt3G1rbrmODsm6bXcz7y+anuO8OmjYJbZKoGraiXwnbuZewocBXK00NPDAVx
 tuxnbwQ0g+dQ8gNQBL9bqEG/jeJzG7h/2n5s5/EnGV4SelQC/m+HPK/E40aHbwjv
 tCLIe9rVYXRpiMVgfR4xUDfTVM3EPiu6chIVPFYG8YDXZ0lMdUccGZEZEAIuflxT
 sSdHJT5P1ARzzuVHriPe3DS/jXEcd7UTVW99jcis3Xbl4TlfhQC5X2IueBfSYEFj
 hSMizFzaJJ1S7wC5x7lO6nNQklyzivLB1fARVT84uYCfdKcxPleobT6mSggW290Z
 u6kznFOLhiFt2eGAcWEEPzgIp9PjMKpXlHXzZnCl8TJyXVvwUGZgE6xEzKjJGa0B
 ZsGJyeJUwpnKPfS/1dULsFub/zTtviVIluCWs0teWhp5FAdbkGXGRBF8K1CqZpOw
 5tOwtn/kIDU=
 =4+gg
 -----END PGP SIGNATURE-----

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

Pull objtool updates from Ingo Molnar:

 - Fix various klp-build bugs reported by Joe Lawrence (Josh Poimboeuf,
   Joe Lawrence)

 - Misc fixes and cleanups (Puranjay Mohan, Thomas Huth and Ingo Molnar)

* tag 'objtool-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  objtool/klp: Fix vmlinux klp relocations for EXPORT_SYMBOL_FOR_MODULES()
  objtool/klp: Fix .kcfi_traps special section extraction
  objtool/klp: Fix vmlinux .klp.symid link error for .exitcall.exit symbols
  objtool/klp: Fix line numbers in Module.symvers parse errors
  objtool/klp: Fix relocations for EXPORT_SYMBOL_FOR_MODULES() symbols
  objtool/klp: Allow new references to module exports
  objtool/klp: Don't match local symbols against exports
  objtool/klp: Fix cross-module klp relocation section naming
  objtool/klp: Explicitly disallow patching or referencing init code/data
  objtool/klp: Ignore replacement offset of empty x86 alternatives
  objtool/klp: Fix size of empty special section entries
  objtool/klp: Fix vmlinux .klp.symid link error for .no_trim_symbol symbols
  objtool/headers: Sync tools/include/linux/objtool_types.h with include/linux/objtool_types.h
  objtool: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files
  objtool/klp: Fix symbol resolution for duplicate data symbols
  objtool/klp: Add .klp.symid for sympos disambiguation
  objtool/klp: Skip hidden directories when finding objects
  objtool/klp: Fix false module dependencies caused by dead relocs
  objtool/klp: Normalize Module.symvers paths to module names
  objtool/klp: Fix module name normalization for paths with dots
2026-08-18 12:18:33 -07:00
Linus Torvalds
1200d84f4c powerpc updates for 7.3
- powerpc: Enable Rust for ppc64le
 
  - ppc4xx gpio driver updates
 
  - Add power12 base enablement support
 
  - Validate arch_compat against host compatibility mode
 
  - Simplify bootx_scan_dt_build_struct() in powermac platform
 
  - powerpc: implement get_direction() in cpm2
 
  - Use cpu_relax() in ps3_create_spu()
 
  - Add NULL guard for cause_ipi in smp_muxed_ipi_message_pass
 
  - fixes to handle pseries watchdogs in kdump path
 
  - powerpc/irq: Fix missing r2 clobber in PCREL inline assembly
 
  - ppc44x: Set GPIO chip parent
 
  - KVM: PPC: Introduce KVM_CAP_PPC_COMPAT_CAPS and wire up ioctl BY: Amit Machhiwal
 
  - KVM: powerpc: Use generic xfer to guest work function
 
  - Enable to run posix cpu timers in task context
 
  - misc fixes and cleanups
 
 Thanks to:
 Aditya Gupta, Alice Ryhl, Amit Machhiwal, Andrew Morton, Anushree Mathur,
 Athira Rajeev, Bartosz Golaszewski, Cédric Le Goater, Christian König,
 Christophe Leroy (CS GROUP), Gary Guo, Gaurav Batra, Gautam Menghani, Gou Hao,
 Hari Bathini, Harsh Prateek Bora, jiazhenyuan, Jinjie Ruan, Link Mauve, Linus
 Walleij, Mahesh Kumar G Mahesh Salgaonkar, Michael Walle, Michal Suchánek,
 Mukesh Kumar Chaurasiya (IBM), Nicholas Piggin, Nikhil Kumar Singh, Praveen K
 Pandey, Ritesh Harjani (IBM), Rosen Penev, Saket Kumar Bhaskar, Shrikanth
 Hegde, Sourabh Jain, Thorsten Blum, Vaibhav Jain, Venkat Rao Bagalkote, Vishal
 Chourasia, Wentao Guan, Yanfei Xu
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqX2DNAOgU8sBX3pRpnEsdPSHZJQFAmqCj/4ACgkQpnEsdPSH
 ZJSKNg//VNpbzMKVPrdljgLn3P8/flWUUMvbjT0j2s5OExeFPjM9tvJQucMficJz
 eQWaEZbaczRPdtBDt96NXXDIoXGpfapS1Tj18OjVjCRtQdKV4DGfNdE5wC2tKwvA
 1R6x5FT6pGxCRuNY9o3aAo/qcEJLCWCtOvrgdlT8C9ZV8Zh/GRl5TXBYqB4LFYAd
 WI1Jc4s97VFNtPSh7HtImd5n8T8vNWqQzi1rUAWTYQPduV8eHKFhnyu9vIh2ISv8
 p6dZzE6mLrgn7zU8HW2z5nRyRZFRXtWt3i7/0IGSsJYtBoREsFw2d3LJfwMZXwdU
 hXNbw9OlwDmPUF8+qFIEVu3czfiFW1naNEXP00NJfM+67acXIpFEiJ/LvuLENzC4
 gtX1VKUCQthWxJESnX1WrKnP7BAjUGe691CronRoYIJNctLnrCA7SOfJ2El4i40v
 v0+oz8KceGE3AU/1SpcKC8WlrHGb7qDBHS1HD8wpdcMsL1LTUWlghAptc/CrpRSb
 vDbiQAK7RHAEVSx6CsW1pVdFGOk5k7QQgeX6ptyK2aliQhuS4UA5b7zMmE+agPY4
 Pro2bQLZYPfIW92OB1Zf+h69bUn4aVyp5ov1U1kTJuFHSEH+9+ZVemZg/f2fN8LV
 bwgErs0YPL/N5099qolj9mmNvn8RcVwub6nIGrVryGbBLprlV3o=
 =4Mg5
 -----END PGP SIGNATURE-----

Merge tag 'powerpc-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc updates from Madhavan Srinivasan:

 - Enable Rust for ppc64le

 - ppc4xx gpio driver updates

 - Add power12 base enablement support

 - Validate arch_compat against host compatibility mode

 - Simplify bootx_scan_dt_build_struct() in powermac platform

 - Implement get_direction() in cpm2

 - Use cpu_relax() in ps3_create_spu()

 - Add NULL guard for cause_ipi in smp_muxed_ipi_message_pass

 - Fixes to handle pseries watchdogs in kdump path

 - Fix missing r2 clobber in PCREL inline assembly

 - Set GPIO chip parent on ppc44x

 - KVM: Introduce KVM_CAP_PPC_COMPAT_CAPS and wire up ioctl

 - KVM: Use generic xfer to guest work function

 - Enable to run posix cpu timers in task context

 - Misc fixes and cleanups

Thanks to Aditya Gupta, Alice Ryhl, Amit Machhiwal, Andrew Morton,
Anushree Mathur, Athira Rajeev, Bartosz Golaszewski, Cédric Le Goater,
Christian König, Christophe Leroy (CS GROUP), Gary Guo, Gaurav Batra,
Gautam Menghani, Gou Hao, Hari Bathini, Harsh Prateek Bora, jiazhenyuan,
Jinjie Ruan, Link Mauve, Linus Walleij, Mahesh Kumar G Mahesh
Salgaonkar, Michael Walle, Michal Suchánek, Mukesh Kumar Chaurasiya
(IBM), Nicholas Piggin, Nikhil Kumar Singh, Praveen K Pandey, Ritesh
Harjani (IBM), Rosen Penev, Saket Kumar Bhaskar, Shrikanth Hegde,
Sourabh Jain, Thorsten Blum, Vaibhav Jain, Venkat Rao Bagalkote, Vishal
Chourasia, Wentao Guan, and Yanfei Xu.

* tag 'powerpc-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (62 commits)
  powerpc/pseries/iommu: switch to Default DMA window during kdump
  powerpc/configs: enable CONFIG_RAS to fix EDAC support
  KVM: PPC: Document KVM_PPC_GET_COMPAT_CAPS ioctl
  KVM: PPC: Book3S HV: Add support for compat CPU capabilities for KVM on PowerNV
  KVM: PPC: Book3S HV: Implement compat CPU capability retrieval for KVM on PowerVM
  KVM: PPC: Introduce KVM_CAP_PPC_COMPAT_CAPS and wire up ioctl
  gpio: ppc44x: use dev_name() for chip label
  gpio: ppc44x: fix undefined behavior in GPIO_MASK2 macro
  gpio: ppc44x: drop PPC-specific IO helpers
  gpio: ppc44x: Convert GPIO to generic MMIO
  gpio: ppc44x: Use platform resource helper for GPIO MMIO
  gpio: ppc44x: Use module platform driver helper for GPIO
  gpio: ppc44x: update all 4xx to 44x
  gpio: move ppc4xx gpio driver from arch/powerpc to drivers/gpio
  KVM: PPC: Use min() in kvm_vm_ioctl_check_extension()
  KVM: PPC: booke: Use min() in watchdog_next_timeout()
  powerpc/perf: Add power12 Base Performance Monitoring support
  powerpc: Add Power12 architected mode
  powerpc: Add Power12 raw mode
  powerpc/pseries: Limit PVR list to 16 entries for CAS negotiation
  ...
2026-08-18 12:08:13 -07:00
Linus Torvalds
85cdaca697 arm64 updates for 7.3
ACPI:
 - Combine reads of AMU counters into a single FFH feedback counter op.
 
 Confidential computing:
 - Fix smp_processor_id() in preemptible context when retrieving an
   attestation token inside a realm.
 
 - Convert pKVM over to a "CC platform".
 
 - Clean-up our SWIOTLB configuration in preparation for reworking the
   handling of encrypted/decryped DMA buffers in the dma-mapping tree.
 
 CPU errata handling:
 - Work around broken device memory ordering on NVIDIA Olympus cores.
 
 - Fix broken 'nospectre_bhb' command-line option.
 
 - Select the idle loop backend instruction on the command-line.
 
 CPU features:
 - Replace our BBML2-noabort feature with the new architectural BBML3
   feature.
 
 - Disable in-kernel BTI for recent versions of Clang due to issues with
   livepatch that are still being investigated.
 
 - Clean-up documentation describing which ID register fields are exposed
   to userspace.
 
 Interrupts:
 - Preliminary work towards supporting FEAT_NMI, which cleans up our
   IRQ entry code and fixes some latent issues with pseudo-NMI.
 
 - Support for an SDEI backend to trigger an NMI backtrace.
 
 Memory management:
 - Treat all devices as coherent when CLIDR_EL1.LoC == 0.
 
 - Fix no-map handling of sub-page-sized regions.
 
 - Second attempt at unmapping the linear aliases of the kernel data and
   bss sections.
 
 - Fix EFI runtime calls when software-PAN is enabled.
 
 Miscellaneous:
 - Add Mark Rutland as a reviewer!
 
 - Tidy-up our futex cmpxchg logic when using the new LSUI instructions.
 
 - Drop the requirement on DYNAMIC_FTRACE_WITH_CALL_OPS when selecting
   HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS.
 
 - Fix a false-positive KCSCAN splat in the delay loop.
 
 - Use a portable typedef for 128-bit scalar types in our UAPI headers.
 
 - Non-critical fixes for Sashiko reports all over.
 
 MPAM:
 - Hook MPAM memory bandwidth counters into resctrl's counter assignment
   interface.
 
 - Fix a quirk in the MPAM bandwidth counting on Nvidia T241 so that it
   also applies to 63 bit counters.
 
 Perf:
 - Workarounds for hardware issues in the CMN-S3 PMU (Graviton 5) and CPU
   PMU (NVIDIA Olympus again!)
 
 - Add support for the DDR PMU on Marvell CN20K SoCs.
 
 - Add support for Picoheart implementations of the DCW PCIe PMU.
 
 - Add support for Channel/Rank/Bank filtering in the CXL PMU driver.
 
 - Add support for 64-bit counters in the CSPMU device.
 
 - Add support for revision 2 of the CMN S3 PMU.
 
 Ptrace:
 - Fix a decade-old bug in our handling of seccomp and tracing on syscall
   entry.
 
 - Fix regset handling for inactive SVE and SSVE registers.
 
 Selftests
 - Add some tests for the decade-old bug that we just tried to fix in our
   syscall entry path.
 
 - Fix SVE test crash on SME-only CPUs.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCgAuFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAmp+9HkQHHdpbGxAa2Vy
 bmVsLm9yZwAKCRC3rHDchMFjNEjXB/4y8KueLwgMOcpjzJom6ujmE2Ab7IOI+I5v
 rYQkGDdHLcQd0WW9gtFXoxlq/EUcWuVCGAdOF3PxkUmVhHJC45ZNSmBGS9/LbU3f
 AqeFskSE46D2gOdMXSscwGAQ+OiQ6WlSSgqy2dU1ZfTXy7ioxydWVUtvmqMmB85O
 ctN9Ocr3zAZuptuyLJurCJNnyCuzd55SIuy+WKU6NIpWseiIqiLEb/6HFbWcw6iV
 vVZjD/Je5my8Gfjuu12z7kJ6o5jwGNpI8U7Z0b68ESUG3b5fh9E2zVLIq0fvn83B
 rjPqg/Wj2TVGag/+yZgafLwQ/7111hhkdf1bPBitClx4GxOoZEjG
 =Iypw
 -----END PGP SIGNATURE-----

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

Pull arm64 updates from Will Deacon:
 "There's a reasonable amount of stuff here, including a bunch of
  updates to the perf PMU drivers and some MPAM updates to expose the
  memory bandwidth counters via resctrl.

  On the architecture side, some highlights include support for BBML3
  and steps towards support for an architectural NMI solution, all
  wrapped up in a web of fixes for latent issues identified by Sashiko.

  ACPI:

   - Combine reads of AMU counters into a single FFH feedback counter op

  Confidential computing:

   - Fix smp_processor_id() in preemptible context when retrieving an
     attestation token inside a realm

   - Convert pKVM over to a "CC platform"

   - Clean-up our SWIOTLB configuration in preparation for reworking the
     handling of encrypted/decryped DMA buffers in the dma-mapping tree

  CPU errata handling:

   - Work around broken device memory ordering on NVIDIA Olympus cores

   - Fix broken 'nospectre_bhb' command-line option

   - Select the idle loop backend instruction on the command-line

  CPU features:

   - Replace our BBML2-noabort feature with the new architectural BBML3
     feature

   - Disable in-kernel BTI for recent versions of Clang due to issues
     with livepatch that are still being investigated

   - Clean-up documentation describing which ID register fields are
     exposed to userspace

  Interrupts:

   - Preliminary work towards supporting FEAT_NMI, which cleans up our
     IRQ entry code and fixes some latent issues with pseudo-NMI

   - Support for an SDEI backend to trigger an NMI backtrace

  Memory management:

   - Treat all devices as coherent when CLIDR_EL1.LoC == 0

   - Fix no-map handling of sub-page-sized regions

   - Second attempt at unmapping the linear aliases of the kernel data
     and bss sections

   - Fix EFI runtime calls when software-PAN is enabled

  Miscellaneous:

   - Add Mark Rutland as a reviewer!

   - Tidy-up our futex cmpxchg logic when using the new LSUI
     instructions

   - Drop the requirement on DYNAMIC_FTRACE_WITH_CALL_OPS when
     selecting HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS

   - Fix a false-positive KCSCAN splat in the delay loop

   - Use a portable typedef for 128-bit scalar types in our UAPI headers

   - Non-critical fixes for Sashiko reports all over

  MPAM:

   - Hook MPAM memory bandwidth counters into resctrl's counter
     assignment interface

   - Fix a quirk in the MPAM bandwidth counting on Nvidia T241 so that
     it also applies to 63 bit counters

  Perf:

   - Workarounds for hardware issues in the CMN-S3 PMU (Graviton 5) and
     CPU PMU (NVIDIA Olympus again!)

   - Add support for the DDR PMU on Marvell CN20K SoCs

   - Add support for Picoheart implementations of the DCW PCIe PMU

   - Add support for Channel/Rank/Bank filtering in the CXL PMU driver

   - Add support for 64-bit counters in the CSPMU device

   - Add support for revision 2 of the CMN S3 PMU

  Ptrace:

   - Fix a decade-old bug in our handling of seccomp and tracing on
     syscall entry

   - Fix regset handling for inactive SVE and SSVE registers

  Selftests

   - Add some tests for the decade-old bug that we just tried to fix in
     our syscall entry path

   - Fix SVE test crash on SME-only CPUs"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (95 commits)
  arm64/efi: Avoid voluntary preemption with efi_mm installed
  arm64: bti: Disable in-kernel BTI with recent versions of Clang
  arm64: entry: Avoid unnecessary local_irq_disable() on kernel exit
  irqchip/gic-v3: make the unmasking of pseudo-NMIs explicit when handling IRQs
  arm64: Disable KCSAN instrumentation in delay.o
  arm_mpam: Disable driver unbind to avoid UAF
  arm_mpam: Fix a NULL pointer dereference on unbinding after an error interrupt
  perf: arm_pmuv3: Zero initialize hw_id branch stack field
  arm64: mm: Unmap kernel data/bss entirely from the linear map
  iommu/arm-smmu-v3-sva: Use system_supports_bbml3() to detect CPU feature
  perf/arm-cmn: Support CMN S3 r2
  perf/arm-cmn: Plumb in new filter types
  perf/arm-cmn: Refactor event filter data
  perf/arm-cmn: Refactor event filter programming
  perf/arm-cmn: Rename filter variables for clarity
  arm64: mm: fix accidental linear mapping of no-map reserved memory
  tools: Ensure tools copy of linux/filter.h exports the UAPI
  kselftest/arm64: Fix abi test compilation errors
  arch: arm64: add early_param idle=<wfi|yield|nop>
  arm64: entry: mask DAIF before returning from C EL1 handlers
  ...
2026-08-18 11:57:17 -07:00
Linus Torvalds
d24f5cdbef Rust changes for v7.3
Toolchain and infrastructure:
 
  - Warn when using 'bindgen' < 0.72.1 with 'libclang' >= 22, since that
    combination may fail to build. It includes a probe for the bug in
    case 'bindgen' happens to be patched, and tests.
 
    In parallel, Nathan updated the instructions for the kernel.org
    LLVM+Rust toolchains so that the latest version of 'bindgen' is
    installed, which should avoid some of these situations.
 
  - Support testing 'rust_is_available.sh' with 'bash' as '/bin/sh'.
 
  - Fix an objtool warning by adding one more 'noreturn' function for
    Rust 1.99.0 (expected 2026-10-01).
 
  - Fix build error in the 'rusttest' target due to ambiguity when the
    'rustc-dev' component is installed, which was uncovered by the work
    to support Rust's GCC backend ('rustc_codegen_gcc').
 
  - Fix future Clang warnings in the upcoming powerpc support due to
    macro redefinitions in the UAPI helper header by including the
    arch-aware 'ioctl.h' header.
 
 'kernel' crate:
 
  - Rework module ownership support:
 
      - Move the module-related types into a new 'module' module and make
        the 'THIS_MODULE' pointer a constant of 'ModuleMetadata' so that
        modules can provide the pointer in const contexts, and add a
        'this_module' 'const fn' to retrieve it.
 
        This was enabled by upstream Rust's work on the 'const_mut_refs'
        and 'const_refs_to_static' features which were stabilized back
        in Rust 1.83.0.
 
      - Teach '#[vtable]' to associate implementations with their owning
        module, defaulting to the local one, including fallbacks for
        doctests, uses within the 'kernel' crate (like upcoming KUnit
        '#[test]'s for DRM) and 'rusttest'.
 
      - Set 'fops.owner' from the module pointer for DRM and miscdevice.
 
      - Migrate Rust Binder and configfs away from the old 'THIS_MODULE'
        'static' and finally remove it from the 'module!' macro.
 
  - 'num' module:
 
      - Add the new 'casts' module for lossless integer conversions.
 
        Rust's 'core' library's 'From' implementations do not cover
        conversions that are not portable or future-proof. However, the
        kernel supports a narrower set of architectures, which makes it
        helpful to provide more infallible conversions, instead of having
        developers use 'as' casts, which carry the risk of silently
        losing data.
 
        This goes along with previous work we did to avoid casts in Rust
        kernel code since they are more powerful than needed.
 
        Thus, provide safe 'const' conversion functions (e.g.
        'usize_as_u64' and 'u64_into_u8'), as well as the 'FromSafeCast'
        and 'IntoSafeCast' extension traits that provide conversions that
        are known to be lossless in the kernel, and an 'arch' submodule
        defining conversions that are known to be lossless on particular
        architectures (e.g. 64-bit platforms). For instance:
 
            // Conversion in const context.
            const USIZED_CONST: usize = u8_as_usize(255u8);
 
            // Non-const conversions.
            let a = u64::from_safe_cast(4096usize);
            let b: u64 = 4096usize.into_safe_cast();
 
      - Add 'Bounded::shr_exact' method in the vein of 'try_shrink' which
        shifts a bounded right only if it loses no set bits.
 
      - Fix unsoundness issue in the 'Bounded::shr' method by rejecting,
        at compile-time, shifts of at least the type's bit width.
 
  - 'fmt' module:
 
      - Route '{:p}' raw pointer formatting through the kernel's hashed
        '%p' format to prevent address leaks, including support for width
        and padding. Include tests for both 'no_hash_pointers' case and
        the default (hashed) one.
 
      - Fix the '{:p}' forwarding implementation, which could print the
        address of a temporary stack variable.
 
  - 'time' module:
 
      - Make 'Delta' generic over its time unit, with a default unit of
        nanoseconds ('Nsec'), preserving the existing behavior. Then, add
        a 'Jiffy' time unit.
 
      - Add the 'Delta::as_millis_ceil()' method.
 
      - Fix 'as_micros_ceil()' rounding near 'i64::MAX', which could
        yield a result one microsecond too small.
 
  - 'sync' module:
 
      - Implement 'ForeignOwnable' for 'ARef<T>', allowing C code to own
        an 'ARef<T>'.
 
      - Add a safe abstraction for 'rcu_barrier()'.
 
  - 'error' module: add all of the remaining error codes, except the
    deprecated compatibility aliases.
 
  - 'bug' module:
 
      - Fix build error on UML in 'warn_on!' for callers from within
        the 'kernel' crate.
 
      - Fix future 'dead_code' warning on arm and loongarch64 and under
        'CONFIG_BUG=n' in 'warn_on!', which would trigger with the
        upcoming SRCU abstractions.
 
      - Fix future build error in 'rusttest' on cross-compilation cases,
        which would trigger when 'warn_on!' has callers inside the
        'kernel' crate.
 
  - 'bitfield' module: fix build error for the upcoming support for
    Rust's GCC backend ('rustc_codegen_gcc') by always inlining a couple
    conversions used in tests.
 
 'pin-init' crate:
 
  - User-visible changes:
 
      - Merge the '__pinned_init' and '__init' methods and make 'Init'
        a marker trait.
 
      - Introduce public APIs 'raw_init' and 'raw_try_init' to prevent
        users from needing to invoke the internal
        '__pinned_init'/'__init' methods.
 
      - Emit errors for duplicate '#[pin]' attributes.
 
      - Link 'Zeroable::zeroed' and 'pin_init::zeroed' in documentation.
 
  - Other changes:
 
      - Fix unwind safety issues.
 
      - Clean up lint 'allow' and 'expect's.
 
      - Overhaul '#[cfg]' handling to pave the way for tuple structs and
        self-referential structs.
 
      - Mark many functions as '#[inline]' for better codegen with '-C
        opt-level=s' ('CC_OPTIMIZE_FOR_SIZE').
 
 'MAINTAINERS':
 
  - Update 'MODULE SUPPORT' to cover the new 'module' module.
 
 And some other fixes, cleanups and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPjU5OPd5QIZ9jqqOGXyLc2htIW0FAmqCCJQACgkQGXyLc2ht
 IW3ErA//e5gz1OEDalINpUt1zYktodleilyxvaUkoR0Q0T+pQIgoMniD7OWxPCPG
 G6Qq/bBEPezwuMncJizsc3Gj9h9/KEPfZXaDYPt/p0rdVL4Ej5gOzpOWM1lB4XCA
 z2xgOwVSyY6Go6sTEru1tG8Qs7v72NmjqIf1088K+6NQ9CVwWBL78arXzIuzi4L/
 rK829rV/8evCxomQxCNN3Nb7VYXpmavRLqXvbF3mt8AAAkqlbF8I2DVZusZNJpNT
 0b9fpefw4Im8zwaXMP1Tiw1RCV8rAATKDjJARNEh0jUEKfJ6KGnO7hDqx0k7HGYG
 9T+ZLTSV4i24J2hs3f1+atN4rScPntpOSxUylBgPsregj2jdbUwWs80PdtzePBPD
 rxpUXY/1zFT0JcC9qkgnBwB7OXwR0GmLQdf70OtSj3SgVQnsulHv7Xe/BIXtxCkR
 +I88//hHssEIkyHvi2Q+F1id+aj3ag05UuKivE+pgs7rIINoOSO8B0XPRGmeXYeC
 uo+OTHz/wzq1/7qR/a/rTw28fW/H7gc/06c29qQagfuwrZz4rVzpaZrh7DyZEm18
 t4m+rtJ2Ccw8vmkl6Y8axx3nlRhaIICIlSgv2iGULYYOH5jZ9tdBAqxXxHlcCyLw
 Ns9n95MYvbLXDlO0+Woz4Y6Ltdz1BXXubH881WRQL4Zck3LJ10g=
 =4uyP
 -----END PGP SIGNATURE-----

Merge tag 'rust-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull Rust updates from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Warn when using 'bindgen' < 0.72.1 with 'libclang' >= 22, since
     that combination may fail to build. It includes a probe for the bug
     in case 'bindgen' happens to be patched, and tests

     In parallel, Nathan updated the instructions for the kernel.org
     LLVM+Rust toolchains so that the latest version of 'bindgen' is
     installed, which should avoid some of these situations

   - Support testing 'rust_is_available.sh' with 'bash' as '/bin/sh'

   - Fix an objtool warning by adding one more 'noreturn' function for
     Rust 1.99.0 (expected 2026-10-01)

   - Fix build error in the 'rusttest' target due to ambiguity when the
     'rustc-dev' component is installed, which was uncovered by the work
     to support Rust's GCC backend ('rustc_codegen_gcc')

   - Fix future Clang warnings in the upcoming powerpc support due to
     macro redefinitions in the UAPI helper header by including the
     arch-aware 'ioctl.h' header

  'kernel' crate:

   - Rework module ownership support:

       - Move the module-related types into a new 'module' module and
         make the 'THIS_MODULE' pointer a constant of 'ModuleMetadata'
         so that modules can provide the pointer in const contexts, and
         add a 'this_module' 'const fn' to retrieve it

         This was enabled by upstream Rust's work on the 'const_mut_refs'
         and 'const_refs_to_static' features which were stabilized back
         in Rust 1.83.0

       - Teach '#[vtable]' to associate implementations with their
         owning module, defaulting to the local one, including fallbacks
         for doctests, uses within the 'kernel' crate (like upcoming
         KUnit '#[test]'s for DRM) and 'rusttest'

       - Set 'fops.owner' from the module pointer for DRM and
         miscdevice

       - Migrate Rust Binder and configfs away from the old
         'THIS_MODULE' 'static' and finally remove it from the 'module!'
         macro

   - 'num' module:

       - Add the new 'casts' module for lossless integer conversions

         Rust's 'core' library's 'From' implementations do not cover
         conversions that are not portable or future-proof. However, the
         kernel supports a narrower set of architectures, which makes it
         helpful to provide more infallible conversions, instead of
         having developers use 'as' casts, which carry the risk of
         silently losing data

         This goes along with previous work we did to avoid casts in
         Rust kernel code since they are more powerful than needed

         Thus, provide safe 'const' conversion functions (e.g.
         'usize_as_u64' and 'u64_into_u8'), as well as the
         'FromSafeCast' and 'IntoSafeCast' extension traits that provide
         conversions that are known to be lossless in the kernel, and an
         'arch' submodule defining conversions that are known to be
         lossless on particular architectures (e.g. 64-bit platforms).
         For instance:

             // Conversion in const context.
             const USIZED_CONST: usize = u8_as_usize(255u8);

             // Non-const conversions.
             let a = u64::from_safe_cast(4096usize);
             let b: u64 = 4096usize.into_safe_cast();

       - Add 'Bounded::shr_exact' method in the vein of 'try_shrink'
         which shifts a bounded right only if it loses no set bits

       - Fix unsoundness issue in the 'Bounded::shr' method by
         rejecting, at compile-time, shifts of at least the type's bit
         width

   - 'fmt' module:

       - Route '{:p}' raw pointer formatting through the kernel's hashed
         '%p' format to prevent address leaks, including support for
         width and padding. Include tests for both 'no_hash_pointers'
         case and the default (hashed) one

       - Fix the '{:p}' forwarding implementation, which could print the
         address of a temporary stack variable

   - 'time' module:

       - Make 'Delta' generic over its time unit, with a default unit of
         nanoseconds ('Nsec'), preserving the existing behavior. Then,
         add a 'Jiffy' time unit

       - Add the 'Delta::as_millis_ceil()' method

       - Fix 'as_micros_ceil()' rounding near 'i64::MAX', which could
         yield a result one microsecond too small

   - 'sync' module:

       - Implement 'ForeignOwnable' for 'ARef<T>', allowing C code to
         own an 'ARef<T>'

       - Add a safe abstraction for 'rcu_barrier()'

   - 'error' module: add all of the remaining error codes, except the
     deprecated compatibility aliases

   - 'bug' module:

       - Fix build error on UML in 'warn_on!' for callers from within
         the 'kernel' crate

       - Fix future 'dead_code' warning on arm and loongarch64 and under
         'CONFIG_BUG=n' in 'warn_on!', which would trigger with the
         upcoming SRCU abstractions

       - Fix future build error in 'rusttest' on cross-compilation
         cases, which would trigger when 'warn_on!' has callers inside
         the 'kernel' crate

   - 'bitfield' module: fix build error for the upcoming support for
     Rust's GCC backend ('rustc_codegen_gcc') by always inlining a
     couple conversions used in tests

  'pin-init' crate:

   - User-visible changes:

       - Merge the '__pinned_init' and '__init' methods and make 'Init'
         a marker trait

       - Introduce public APIs 'raw_init' and 'raw_try_init' to prevent
         users from needing to invoke the internal '__pinned_init' and
         '__init' methods

       - Emit errors for duplicate '#[pin]' attributes

       - Link 'Zeroable::zeroed' and 'pin_init::zeroed' in documentation

   - Other changes:

       - Fix unwind safety issues

       - Clean up lint 'allow' and 'expect's

       - Overhaul '#[cfg]' handling to pave the way for tuple structs
         and self-referential structs

       - Mark many functions as '#[inline]' for better codegen with '-C
         opt-level=s' ('CC_OPTIMIZE_FOR_SIZE')

  'MAINTAINERS':

   - Update 'MODULE SUPPORT' to cover the new 'module' module

  And some other fixes, cleanups and improvements"

* tag 'rust-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (54 commits)
  rust: add functions and traits for lossless integer conversions
  rust: kernel: add `LocalModule` fallback for `#[vtable]` `impl`s
  rust: fmt: route {:p} through HashedPtr to prevent address leaks
  rust: fmt: fix {:p} printing stack addresses
  rust: module: update MAINTAINERS to cover module.rs
  rust: macros: remove `THIS_MODULE` static from `module!`
  rust_binder: use `LocalModule` for `THIS_MODULE`
  rust: configfs: use `LocalModule` for `THIS_MODULE`
  rust: miscdevice: set fops.owner from driver module pointer
  rust: drm: set fops.owner from driver module pointer
  rust: macros: auto-insert OwnerModule in #[vtable]
  rust: doctest: add LocalModule fallback for #[vtable] ThisModule
  rust: module: add `THIS_MODULE` const to `ModuleMetadata` trait
  rust: module: move module types into `module.rs`
  rust: num: add Bounded::shr_exact
  rust: num: reject Bounded::shr overshifts at build time
  rust: num: use const_assert! in Bounded
  rust: uapi: replace direct asm-generic/ioctl.h include with linux/ioctl.h
  rust: time: add Delta::as_millis_ceil()
  rust: time: add jiffies time unit for Delta
  ...
2026-08-18 11:25:09 -07:00
Linus Torvalds
2df813c9a6 xen: branch for v7.3-rc1
-----BEGIN PGP SIGNATURE-----
 
 iJEEABYKADkWIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCan7REhsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDIACgkQgFxhu0/YY75juwEAlRbj7JVSkZ8QzreYEtGm
 RO+PqRW1e2A7LWX6HHIxdWwBAMz/TX2SNAtKhNs4ggJmOyasQNGqjrpxuRa/1d/n
 FzQO
 =3QbE
 -----END PGP SIGNATURE-----

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

Pull xen updates from Juergen Gross:

 - Small cleanups for the Xen ACPI pad driver and the gnttab driver

 - Fix an issue with Xen PV device initialization seen with QubesOS
   tests

 - Fixes for the Xen balloon driver and the xenbus driver

 - Simplify Xen related kernel configuration

* tag 'for-linus-7.3-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xenbus: Unregister reboot notifier on init failure
  x86/xen: Drop CONFIG_XEN_PVHVM_SMP
  xen: Drop CONFIG_XEN_AUTO_XLATE
  xen: Drop CONFIG_XEN_PVHVM
  x86/xen: Remove redundant config dependency on X86_LOCAL_APIC
  x86/xen: fix init of balloon stats again
  xen/xenbus: check otherend_id only after it has been initialized
  xen/xenbus: log more information when device state got reset
  Xen/gnttab: adjust two uses of sizeof()
  ACPI: PAD: xen: Stop setting acpi_device_name/class()
2026-08-18 11:19:37 -07:00
Linus Torvalds
2063dd9d0b nolibc changes for v7.3
Highlights:
 * New architectures: Alpha
 * New library functionality: readlink(), getcwd()
 * Various bugfixes and cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTg4lxklFHAidmUs57B+h1jyw5bOAUCan7WEAAKCRDB+h1jyw5b
 OJl9AQD1L1S4Gvg+e82cFHeQp44+oTbj6evLQrwlRe0GZmZxHQEAhA9qMc0blpfn
 E7EYaldFXNzbO5Sl4MDwTh2huWj00Qk=
 =BSX8
 -----END PGP SIGNATURE-----

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

Pull nolibc updates from Thomas Weißschuh:

 - New architecture: Alpha

 - New library functionality: readlink(), getcwd()

 - Various bugfixes and cleanups

* tag 'nolibc-20260814-for-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/nolibc/linux-nolibc:
  tools/nolibc: add support for Alpha
  tools/nolibc/powerpc: mark ctr and xer as clobbered by system call
  tools/nolibc: remove dead __ARCH_WANT_SYS_OLD_SELECT
  selftests/nolibc: add debug information
  tools/nolibc: mark arg1 operand in __nolibc_syscall0() as write-only
  selftests/nolibc: Add test for getcwd() and readlink()
  tools/nolibc: unistd: Add readlink()
  tools/nolibc: unistd: Add getcwd()
2026-08-18 10:50:44 -07:00