Commit Graph

1785 Commits

Author SHA1 Message Date
Linus Torvalds
ae3690eb2a dmaengine updates for v7.4
Core:
   - Better document descriptor flags and clarify ordering rules around
     cookie completion
   - New APIs to start hiding dmaengine guts so that we can start making
     them internal
 
  New Support:
   - Nord and Maili GPI DMAengine support
   - DW axi dma updates and support for UltraRISC DP1000 controller
   - Apple M3 generation ADMACs support
   - Amlogic A9 SoC DMA controller driver
   - Sun6i refactoring and support for Allwinner A733 DMA controller
 
  Updates:
   - Freescale device_prep_peripheral_dma_vec support and dynamic
     scatter/gather chaining
   - TI crossbar and cppi DT schema conversion
   - zynqmp driver updates for error patch handling
   - Link list handling improvements for DW edma driver
   - ST dma40 improvements and corner case handling
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+vs47OPLdNbVcHzyfBQHDyUjg0cFAmriBLYACgkQfBQHDyUj
 g0edThAApa2lWUowEsgkLYAEX+ufHWqlBlNtXTpBwSL6XKJ3yPupvaq1aR3lquud
 NZ8TS5VnVpnYWtcog04f/murYh9NEX/YHJm9n/FrS+y0caq/P6xpCi4Uozb8hSCS
 JlLW8nQFYTBugx/YJ7EZ0YsWB4QPY6q6KOkOQnJYLvpuTliTxu71lPSe4izk4tMD
 zz7t2vUXpKz2L+oD0LpJ37gqYMxz6wSeRFbBP+YiEc/x0GLVK2xkdoKvagHSC0tb
 QVc8pztUviwBWlqmWIeoHUikoboKKift61TLBHU5cMNEv3+M8I3hORHsWSlhQWBo
 d3pJbCdLPjt8CAX2jeWpI97hKjSxrhtpox8p7hzCZX9FLvr0SPwaYsapHPJzjfLc
 09BQOgRi6KGuWt/4GWpBLZtFSR8y6wOOqrdVNRT0QS1sqqiBd7LWYPFboWo+WZFx
 Rc2DPhmWnmZyRO391xUNXjxBDxdERKUHi57VCX1R5946NH8Ve+ga1y9hR2hQMKu+
 TqrwVUc+JgHqze4C4JjLEkgAgVfX8A1vRdTRA9Xa3f2kvuSmdB6gq/v2057hJz3H
 uH6pMDhX0PH8QxB0Tx/YTWeJOWztvmqBl3XeuqmVSUzLHZiXgUEKHbROYIyIvu1k
 5/uZtlDcV4Tl51r2Adl6aPqZlvsljHtcS9pJeP4aHs5rFA00xY0=
 =2PH5
 -----END PGP SIGNATURE-----

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

Pull dmaengine updates from Vinod Koul:
 "This consists of start of work for hiding dmaengine internals and
  adding new APIs for dmaengine calls. Also couple of drivers and device
  and lot of updates esp AI-assisted improvements to drivers.

  Core:
   - Better document descriptor flags and clarify ordering rules around
     cookie completion
   - New APIs to start hiding dmaengine guts so that we can start making
     them internal

  New Support:
   - Nord and Maili GPI DMAengine support
   - DW axi dma updates and support for UltraRISC DP1000 controller
   - Apple M3 generation ADMACs support
   - Amlogic A9 SoC DMA controller driver
   - Sun6i refactoring and support for Allwinner A733 DMA controller

  Updates:
   - Freescale device_prep_peripheral_dma_vec support and dynamic
     scatter/gather chaining
   - TI crossbar and cppi DT schema conversion
   - zynqmp driver updates for error patch handling
   - Link list handling improvements for DW edma driver
   - ST dma40 improvements and corner case handling"

* tag 'dmaengine-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (149 commits)
  dmaengine: amlogic: Fix regmap error check issue
  dmaengine: ste_dma40: Preserve the LCPA I/O address space
  docs: dmaengine: clarify ordering rules around cookie completion
  dmaengine: move driver-private helpers out of include/linux/dmaengine.h
  dmaengine: add dmaengine_desc_set_callback() helper
  dmaengine: add dmaengine_get_provider_device() API
  dmaengine: add dmaengine_get_max_xor() helper
  dmaengine: add dmaengine_get_cap_mask() and dmaengine_has_cap() helpers
  dmaengine: add dmaengine_get_copy_align() and related alignment getter helpers
  dmaengine: add dmaengine_is_*_aligned() helpers for DMA consumers
  dmaengine: add dmaengine_prep_dma_(pq|pq_val|interrupt|xor)() API
  dmaengine: sh: rcar-dmac: Add support for R-Car Gen5 SoCs
  dt-bindings: renesas,rcar-dmac: Add support for R-Car X5H SoC
  dmaengine: sh: rcar-dmac: SMMU doesn't need IPMMU workaround
  dmaengine: sh: rcar-dmac: fix style in struct initialization
  dmaengine: qcom: bam_dma: free interrupt before the clock in error path
  dmaengine: ppc4xx: fix typo "contoller" in comment
  dmaengine: ste_dma40: Search all blocks for fixed logical channels
  dt-bindings: dma: dma40: Restore disabled-channels
  dmaengine: ste_dma40: Validate memcpy configuration
  ...
2026-10-28 07:27:09 -10:00
Linus Torvalds
fb2c3f44a7 ata changes for 7.4-rc1
- Make ata_generic refuse to bind to non-IDE devices (me)
 
  - Add missing <linux/pm_runtime.h> includes (Vladimir)
 
  - Add pata_cswarp driver for the Amiga CS-Lab Warp card (Paolo)
 
  - Fix a use-after-free and a parport attach bug in pata_parport (Pei)
 
  - Switch ahci_da850 to DEFINE_SIMPLE_DEV_PM_OPS() (Li)
 
  - Documentation and kernel-doc fixes (Karl, Bart, me)
 
  - Remove the broken sata_inic162x driver (Ethan)
 
  - Fix probe() error paths in libata, libahci and several drivers (me)
 
  - Fail probe in sata_dwc_460ex if host activation fails (Nikolay)
 
  - Use the standard DMA engine API in pata_arasan_cf (Frank)
 
  - Abort multi-sector pass-through commands when multi_count is 0 (Hui)
 
  - Replace kmap_atomic() with kmap_local_page() in libata-sff (Danish)
 
  - Revert the no longer needed JMB582/JMB585 32-bit DMA quirk (Mario)
 
  - Enable SATA LED presence indication in sata_mv (Carlos)
 
  - Re-enable FBS after error handling on a port multiplier (Kyrylo)
 
  - Fix NO_FUA quirks shadowed by earlier quirk entries (me)
 
  - Do not overwrite the Marvell PATA quirk port mask in ahci (zhoumin)
 
  - Ignore libata.force transfer modes the host does not support (Rand)
 
  - Fix a race between IRQ deferral and ata_sff_flush_pio_task() (me)
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRN+ES/c4tHlMch3DzJZDGjmcZNcgUCat8emgAKCRDJZDGjmcZN
 ciooAP9nguHPo0TDIG/UtVN02LX6DvXh27B2UT6uI8aXHS/fzgD/RmZ4KoxQ1B4F
 jf5ULeFbb//KKC9TlslXh6jObjpA2gU=
 =dp3E
 -----END PGP SIGNATURE-----

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

Pull ata updates from Niklas Cassel:

 - Make ata_generic refuse to bind to non-IDE devices (me)

 - Add missing <linux/pm_runtime.h> includes (Vladimir)

 - Add pata_cswarp driver for the Amiga CS-Lab Warp card (Paolo)

 - Fix a use-after-free and a parport attach bug in pata_parport (Pei)

 - Switch ahci_da850 to DEFINE_SIMPLE_DEV_PM_OPS() (Li)

 - Documentation and kernel-doc fixes (Karl, Bart, me)

 - Remove the broken sata_inic162x driver (Ethan)

 - Fix probe() error paths in libata, libahci and several drivers (me)

 - Fail probe in sata_dwc_460ex if host activation fails (Nikolay)

 - Use the standard DMA engine API in pata_arasan_cf (Frank)

 - Abort multi-sector pass-through commands when multi_count is 0 (Hui)

 - Replace kmap_atomic() with kmap_local_page() in libata-sff (Danish)

 - Revert the no longer needed JMB582/JMB585 32-bit DMA quirk (Mario)

 - Enable SATA LED presence indication in sata_mv (Carlos)

 - Re-enable FBS after error handling on a port multiplier (Kyrylo)

 - Fix NO_FUA quirks shadowed by earlier quirk entries (me)

 - Do not overwrite the Marvell PATA quirk port mask in ahci (zhoumin)

 - Ignore libata.force transfer modes the host does not support (Rand)

 - Fix a race between IRQ deferral and ata_sff_flush_pio_task() (me)

* tag 'ata-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux: (26 commits)
  ata: libata-sff: fix race between IRQ deferral and ata_sff_flush_pio_task()
  ata: libata-core: Ignore forced transfer modes the host does not support
  ata: ahci: preserve preset port masks
  ata: libata-core: Fix NO_FUA quirks shadowed by earlier quirk entries
  ata: libahci: re-enable FBS after error handling on a port multiplier
  ata: sata_mv: enable SoC SATA LED presence indication
  ata: libata: Fix scsi_done() documentation
  Revert "ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585"
  ata: pata_parport: fix parport attach idr_alloc for
  ata: libata-sff: replace kmap_atomic() with kmap_local_page()
  ata: libata-scsi: abort multi-sector pass-through commands when multi_count is 0
  ata: pata_arasan_cf: use standard DMA engine API
  ata: sata_dwc_460ex: Don't enable interrupt if libATA core registration fails
  ata: libata-core: Fix the ata_host_register() kdoc
  ata: libata: Do not leave ata_host_stop() registered when activation fails
  ata: libahci: Free the IRQs when activating a multi-IRQ host fails
  ata: sata_fsl: Fix use-after-free of host_priv on probe() failure
  ata: ahci_st: Assert the power down reset in the probe() error path
  ata: ahci_st: Do not ignore errors when getting the reset controls
  ata: sata_inic162x: remove dangerous broken driver
  ...
2026-10-26 07:21:18 -10:00
Linus Torvalds
d6bbdb67a4 CXL for v7.4
CXL Dynamic Capacity Device (DCD) support (part 1):
 cxl/mbox: Flag support for Dynamic Capacity Devices (DCD)
 cxl/mem: Read dynamic capacity configuration from the device
 cxl/cdat: Gather DSMAS data for DCD partitions
 cxl/events: Split event msgnum configuration from irq setup
 cxl/pci: Factor out interrupt policy check
 cxl/mem: Configure dynamic capacity interrupts
 cxl/core: Enforce partition order/simplify partition calls
 Documentation/cxl: Document DPA partition layout and ordering rules
 
 CXL zero sized decoder support:
 cxl/hdm: Allow zero sized HDM decoders
 tools/testing/cxl: Enable zero sized decoders under hb0
 cxl/region: Simplify poison_by_decoder() error handling
 
 CXL decoder hardening:
 cxl/hdm: Reject switch decoder interleave ways that overflow targets
 cxl/hdm: Make switch decoder target parsing endian-safe
 cxl/hdm: Restore commit_end when decoder enumeration fails
 cxl/port: Bound switch decoder target array access by nr_targets
 cxl/pci: Skip reset detection for DVSEC emulated decoders
 
 CXL latency and GPF handling:
 cxl/port: Convert PCIe link latency to nanoseconds
 cxl: Account for link width in latency calculation
 cxl/acpi: Convert QTG _DSM latencies to picoseconds
 cxl/pci: Use the Device GPF DVSEC for restricted endpoints
 cxl/pci: Program the Port GPF timeouts before caching the DVSEC
 cxl/pci: Update only the Port GPF timeout fields
 
 CXL misc patches:
 MAINTAINERS: Add Richard Cheng to CXL subsystem as a Reviewer
 cxl: docs/platform/acpi: Fix brackets
 cxl/ras: Pass the PCI device's struct device to match_memdev_by_parent()
 cxl/test: Map mock device nodes to an online node
 tools/testing/cxl: Don't wrap cxl_core's own exported symbols
 cxl/region: Fix the return value in devm_cxl_add_region() kernel-doc
 cxl/region: Warn on user region position mismatch
 cxl/region: Create node access attributes for CFMWS-only NUMA nodes
 
 CXL fixes:
 cxl/events: Test CME counter expiry with equality, not bitwise AND
 cxl/events: Return IRQ_NONE when no event is pending
 cxl/port: Attach endpoints to a dport under the lock that pins it
 cxl/core: Hold the dport host lock across dport lookup and use
 cxl/port: Clear cached dport pointers when a dport is removed
 cxl/acpi: Check ACPI companion before use
 driver core: Add conditional guard support for device_trylock()
 cxl/memdev: Fix deadlock between poison debugfs and cxl_mem unbind
 cxl/core: Skip einj_inject creation when devm_add_action_or_reset() fails
 cxl/region: Unregister the pmem region when the bridge is unbound
 cxl/core: Fix dport use-after-free via the einj_inject debugfs file
 cxl/port: Fix uninitialized coordinates reported for RCDs
 cxl/cdat: Fix uninitialized stack use in bandwidth gathering
 cxl/features: Ensure that count is set before access to ent[] __counted_by()
 cxl/features: Reject feature offset that overflows 16-bit field
 cxl/fwctl: Propagate feature RPC delivery errors
 cxl/regs: Reject register blocks in an unassigned BAR
 cxl/region: Guard against a missing peer mapping
 cxl/mce: Avoid alias page retirement for corrected errors
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE5DAy15EJMCV1R6v9YGjFFmlTOEoFAmraKeQACgkQYGjFFmlT
 OErV6w/+LuvHDcm3JhD8NJqqCRB7/gOCkM26n+dLuL6ZIo81rMhi4ZOq55/dkpbo
 fhdMtCUQUJoTFOHrLrTiU1IyHlv0EI+Uj5EvVfdrcowSRAzKGZsbB/mxSunWDl+W
 84kQN8lcTxT9dUh4BsYZu6KqaiNyHuNZ+qFRzvUfM15dDq6qrfgKtg/ZOQXJ2Uyj
 MovYZSzLn4h2sBSWSE8639RgxtDGw4I6fLlEJOGXX9zHm20Th1fGECFCvVW5GIq8
 XglnqD9b2vueGQDAmDMNm1QztCBz/6J13SQU6fEVeB7wmO6TfaIEv9Cl9M2xlS41
 FvNlZ+vtI/3/vhBZwto/uzOhCtmt9o0KeVFQcT9eDv2nB5655Mv1wPKd0M3YSbEh
 5aY5OHMSPBZvuuZp7d19hVxNFBcOpAALXpgp5Lv1zFLZyVJxHd7duz3AGG1fmz2z
 Ohqc7dBvj3SF14IYp6pfCy1cynXtYK4o+UbNt9PsbZgThs97s4dDK6UCWXw6buKH
 ZRkiXt0OPH+8+2QrtVi6N4rV/03xPDc90CEpW5zzCrbVRL3kn1w0GK4a9m5n1I2N
 RbHd6hyWIRHAQC9IwzaVIFp2k6CqgBeunygPYKYmGnhoHI0HV+4VIFNey6bVmzw4
 h0sD3GoQ5pNFJZyakJRyWBYRGaxx5AiH8eKH1ZfTGCgsDbZC3j8=
 =ym/U
 -----END PGP SIGNATURE-----

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

Pull CXL updates from Dave Jiang:
 "The headline item is the first part of support for Dynamic Capacity
  Devices (DCD). It covers flagging DCD support in the mailbox, reading
  the dynamic capacity configuration from the device, gathering DSMAS
  data for the DCD partitions, and configuring the dynamic capacity
  interrupts. It also adds a documentation update and a cleanup that
  enforces partition ordering. DCD is not enabled yet with these code
  changes. Patches are applied to reduce the whole set in order to
  relief the burden of very large patch set review.

  Zero sized HDM decoders are now allowed, along with cxl_test support
  for them. There is also a set of decoder hardening patches for switch
  decoder enumeration. Latency calculations now account for link width
  and use consistent units. The GPF timeout programming has been
  reworked. The pull also has a number of misc patches.

  A large number of bug fixes against pre-existing issues make up the
  rest of the pull. Many of these were flagged by review of patches
  posted to the mailing list by sashiko.

  Also adding Richard Cheng as a reviewer (R) to the CXL sub-system"

* tag 'cxl-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (49 commits)
  cxl/events: Test CME counter expiry with equality, not bitwise AND
  Documentation/cxl: Document DPA partition layout and ordering rules
  cxl/core: Enforce partition order/simplify partition calls
  cxl/mem: Configure dynamic capacity interrupts
  cxl/pci: Factor out interrupt policy check
  cxl/events: Split event msgnum configuration from irq setup
  cxl/cdat: Gather DSMAS data for DCD partitions
  cxl/mem: Read dynamic capacity configuration from the device
  cxl/mbox: Flag support for Dynamic Capacity Devices (DCD)
  cxl/acpi: Convert QTG _DSM latencies to picoseconds
  cxl: Account for link width in latency calculation
  cxl/port: Convert PCIe link latency to nanoseconds
  cxl/pci: Update only the Port GPF timeout fields
  cxl/pci: Program the Port GPF timeouts before caching the DVSEC
  cxl/pci: Use the Device GPF DVSEC for restricted endpoints
  cxl/port: Attach endpoints to a dport under the lock that pins it
  cxl/core: Hold the dport host lock across dport lookup and use
  cxl/port: Clear cached dport pointers when a dport is removed
  cxl/region: Warn on user region position mismatch
  cxl/acpi: Check ACPI companion before use
  ...
2026-10-26 06:50:38 -10:00
Linus Torvalds
44388c8f3e Core MTD:
- Some important fixes were brought to the virt-concat driver.
 - An INT0800 firmware-flash map driver was added.
 - mtdblock: prevent reclaim I/O during request processing.
 - cfi_cmdset_0002: cap the write-buffer chunk at 256 bytes on an x8 device
 
 Raw NAND:
 - The Qualcomm controller driver has been cleaned up again.
 - Arasan and IBM have been improved/created.
 - Reflect that ESMT and GigaDevice share ID 0xc8, and disable broken
   timings feature on GD9FU2G8F3A.
 - Platform data support has been dropped from the lpc32xx drivers.
 
 SPI NAND:
 - Heyangtek uses two bytes for the BBM like every other device.
 - Winbond: Add support for W25N04LW and W25N08LW.
 - Support for ISSI SPI NAND flashes.
 
 SPI NOR:
 - Support for new Macronix and (lots of) Winbond flash devices
 - The addition of the Winbond flashes was accompanied by a big rewrite
   of the status register handling. There were many small helper
   functions to enable quad I/O mode in many different ways. That's now
   consolidated in one generic function.
 - The SFPD handling was reworked. It used to be only parsed for flashes
   present in the in-kernel database which had any of the multi-I/O bit
   set - or with the addition of generic flash driver for any unknown
   flashes. This left a gap where SFDP wasn't handled and it turns out
   newer flashes (with SFDP support) will reused IDs of just these old
   flashed. With the rework, SFDP is tried to be parsed for any flashes
   and will amend the information which is already present in the
   in-kernel database.
 - SFDP size limit was increased to 16KiB. There are flashes which have
   some larger gaps between tables and thus exceeds the former 4KiB
   limit.
 - Flash fixups are getting more and more common. Due to this, the fixups
   are now a separate list (per manufacturer) instead of being attached
   to a specific flash. A new .match() callback makes them more flexible,
   when one is applied.
 - 1-1-8 and 1-8-8 modes are now supported with larger flashes which
   needs 4byte addresses.
 
 Then there is the load of API updates and misc AI fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEE9HuaYnbmDhq/XIDIJWrqGEe9VoQFAmrbkigACgkQJWrqGEe9
 VoRBUwf7BuPGKsMuEp7FEIaXEWUjW7vjRY5LTSuRvFzx7TvcY8tJuApaJYKL8MVp
 x9pyr1bBKqO4f2GjvfjjqSZEX1ZcoPrhvyXs50yX4s+BHyRgEo3beYQ/hMn90/uL
 6CN24MrlaGAnvrci7ZKY2ueZ882y7Zdqfgl9rrDXV6wyAM/O2um6Fy4eGogKAy9M
 TqmD5EMXb9qwFGqcEeZ2FS/xZGa1Rea+2gxa9E2W0ZoWjC/W9yYJ/skvxNcC4mFv
 Ey8o6KMVHMEVcdD949A7Vls45PXi5vkn/FYwoWxOpaInjKW/u/QNB9Vd6cmhBWIY
 3TgO9TBMUC10JxDjyifcTb6LsZ0Cqg==
 =5LzC
 -----END PGP SIGNATURE-----

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

Pull MTD updates from Miquel Raynal:
 "Core MTD:
   - Fixes to the virt-concat driver
   - Added INT0800 firmware-flash map driver
   - mtdblock: prevent reclaim I/O during request processing
   - cfi_cmdset_0002: cap the write-buffer chunk at 256 bytes on an x8 device

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

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

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

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

* tag 'mtd/for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (155 commits)
  mtd: spi-nor: sfdp: reduce stack usage in spi_nor_parse_sfdp()
  mtd: spi-nor: sfdp: fix missing kernel-doc
  mtd: parsers: qcom: fix offset/size overflow on large partitions
  mtd: spinand: heyangtek: Reserve both bad block marker bytes
  mtd: rawnand: pl353: fix clk reference leak in pl35x_nfc_setup_interface()
  mtd: nand: use dmaengine_submit() instead of ->tx_submit()
  dt-bindings: mtd: convert IBM NDFC binding to YAML
  mtd: rawnand: fsl_ifc: allocate shared ctrl with devm_kzalloc
  mtd: rawnand: qcom: fix read location register usage in config_nand_cw_read()
  mtd: rawnand: qcom: move common code to the 'qpic_common' module
  mtd: rawnand: qcom: rename 'nand_stats' structure
  mtd: rawnand: qcom: make nandc_set_read_loc_last() more generic
  mtd: rawnand: qcom: make nandc_set_read_loc_first() more generic
  mtd: rawnand: qcom: make config_nand_cw_write() more generic
  mtd: rawnand: qcom: make config_nand_page_write() more generic
  mtd: rawnand: qcom: make config_nand_page_read() more generic
  mtd: rawnand: qcom: make check_flash_errors() more generic
  dt-bindings: mtd: arasan: Add "power-domains" for ZynqMP
  mtd: virt-concat: unlink discarded items before freeing
  mtd: virt-concat: unlink concat node before freeing it
  ...
2026-10-24 19:49:58 -10:00
Linus Torvalds
065af32bd4 firewire updates for v7.4
- Guarantee asynchronous packet and transaction callbacks in process context
 Both the 1394 OHCI driver and the core transaction layer have been changed
 to guarantee that asynchronous packet and transaction callbacks are
 invoked in process context. In v6.17, the execution context depended on
 the transaction destination: callbacks for transactions destined for
 remote nodes were invoked from a workqueue, whereas callbacks for
 transactions destined for the local node or terminated due to internal
 errors were invoked in the transaction initiator's context. All such
 callbacks are now guaranteed to execute in process context, eliminating
 the need to account for different execution contexts when implementing
 callback functions.
 
 - Fill kerneldoc for transaction layer
 The above change guarantees a consistent execution context for packet and
 transaction callbacks, making it possible to document their execution
 context in kerneldoc.
 
 - Enable compiler-based context analysis for the transaction layer
 The core transaction layer is sufficiently complex that compiler-based
 context analysis can help detect invalid call paths.
 
 - Fix a reference count leak in the cdev layer
 A reference count leak was reported when a user space application
 delegated isochronous resource management. This issue has now been fixed.
 
 - Add KUnit tests for the configuration ROM parser and generator
 In recent years, questions have been raised about how the configuration
 ROM parser and generator handle boundary conditions and edge cases. KUnit
 tests have been added to verify their behavior in these situations.
 KUNIT_STATIC_STUB_REDIRECT is used to stub the transaction responder so
 that it returns the configuration ROM contents.
 
 - Misc fixes for kerneldoc and nosy-dump application
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQE66IEYNDXNBPeGKSsLtaWM8LwEwUCatyWDwAKCRCsLtaWM8Lw
 E7nWAQC7LGjJxng/GKj/fsx5ah6olDribI3braCTyqirydhXxwD+OrBuwrIvWAbs
 h7z5afAPGozUZJgR0HO+p+BKfEG9DA0=
 =Fx7F
 -----END PGP SIGNATURE-----

Merge tag 'firewire-updates-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394

Pull firewire updates from Takashi Sakamoto:

 - Guarantee asynchronous packet and transaction callbacks in process
   context

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

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

 - Fill kerneldoc for transaction layer

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

 - Enable compiler-based context analysis for the transaction layer

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

 - Fix a reference count leak in the cdev layer

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

 - Add KUnit tests for the configuration ROM parser and generator

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

 - Misc fixes for kerneldoc and nosy-dump application

* tag 'firewire-updates-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (88 commits)
  firewire: core: replace drain_workqueue() with flush_workqueue()
  firewire: core: adjust context_unsafe() usage for lockdep checks
  firewire: core: invoke packet callback from workqueue when removing card instance
  firewire: core: use designated initializer for dummy driver on card removal
  firewire: core: use context analysis to check lock state when scheduling error callbacks
  firewire: core: check precondition when scheduling error callbacks
  firewire: core: use workqueue to cancel all pending transactions on card removal
  firewire: core: reuse helper function for scheduling error callbacks
  firewire: core: don't disable error work for transaction
  firewire: core: use release/acquire pair when replacing underlying driver on card removal
  firewire: core: add kerneldoc for inbound transaction-related symbols
  firewire: core: add kerneldoc for outbound transaction-related symbols
  firewire: core: use appropriate spinlock variants for transaction-related locks
  firewire: core: narrow the card lock scope when accessing node_id
  firewire: core: use context analysis annotations and lockdep checks for topology map lock
  firewire: core: use context analysis annotations and lockdep checks for split timeout lock
  firewire: core: use context analysis annotations and lockdep checks for transactions lock
  firewire: core: enable context analysis for transaction layer
  firewire: core: add might_sleep() checks to transaction layer
  firewire: core: fulfill kerneldoc for fw_cancel_transaction()
  ...
2026-10-24 19:39:46 -10:00
Linus Torvalds
42e6549eaf [GIT PULL for v7.4] media updates
-----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAmrXJzcACgkQCF8+vY7k
 4RWBOw/1FZWR4yNXSAP7UooVxSGYge/oNSvAFPNZxInSAySyDZl5ZNfHofmPJeYJ
 75sF1RIVcL01RzBsdFUlicIa5XScvoo+O7GNgXSBj8w5CdGOgDkKPL2Ak8MMs7EV
 0MQgBLNjPJaNVQLYegqPTksGa0uCVpYKdaodio8VGanCkJU0xGDOEgpYbhjGXGTw
 9FKf7tqZpsw6hZnzDT+dXEDBFpn+u13AySgCHpk4JftfjiP+dzPqwVoYdvEZXgvy
 hW9SllJAe8nMjVUUt6bD3g5bQBLs2taw2RXgIX25bD0VxhUQ93wp1F8TrHV3U7M7
 rYNwdJ4MS29mm4VFlBtmtXhocehtYNDt3Qgy5xLFSIN+17VgjfvgsxjBosP20iFy
 GA6GwRmncErdbFS+JaSCMUXLLk7HYUgapTrZYnp17KjFWa9p54TAx2NbujZAAYxP
 V9ohGEgdhjjv4p6YCBBzNAjsSGOHKX4pF+HBHBKNNxScEIXVC0Bv9SfnogNvqShk
 U4msbJOsi2MQDZgWM+IUxSIb9q2jRHAdJWroSiYgOG3krIM461yMM97PpvQTXB+4
 4DyTVCx1GxpbJqhN5C013f3PyhO4Y+Nr1zrZupYmUIZhTAGJgAzcDc8wbIk0KBto
 uD3OVchaQR5E0raCPQQCbnSbW8i6rRkrfCSU1mBM2VGEITeQkA==
 =LMlY
 -----END PGP SIGNATURE-----

Merge tag 'media/v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media updates from Mauro Carvalho Chehab:

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

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

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

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

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

 - ITE: add driver for IT6625/IT6626 HDMI bridge

 - Qualcomm: add CSI2 3ph DPHY driver

 - Rockchip: add rk3576 MIPI capture vicap driver

 - STM32 DCMIPP: Add STM32MP25 subdevices

 - Lots of driver fixes and cleanups

* tag 'media/v7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (596 commits)
  media: i2c: imx576: Fix line length register
  media: ov05c10: Remove duplicated writes to analogue gain register
  media: ov05c10: Power management fixes
  media: ov05c10: Set reset GPIO high when acquiring it
  media: ov05c10: Small cleanups
  media: maxim-serdes: Disable test pattern generator for now
  media: mc: Keep INTERNAL pad flags just for the kernel, for now
  media: i2c: imx576: select VIDEO_CCS_PLL to repair build error
  media: Documentation: mc: Fix Stream reference
  media: i2c: add imx576 image sensor driver
  dt-bindings: media: i2c: Add imx576 sensor
  media: i2c: maxim-serdes: add MAX9296A driver
  media: i2c: remove MAX96714 driver
  media: i2c: maxim-serdes: add MAX96724 driver
  staging: media: remove MAX96712 driver
  arm64: defconfig: disable deprecated MAX96712 driver
  media: i2c: maxim-serdes: add MAX96717 driver
  media: i2c: remove MAX96717 driver
  media: i2c: add Maxim GMSL2/3 deserializer framework
  media: i2c: add Maxim GMSL2/3 serializer framework
  ...
2026-10-24 19:27:32 -10:00
Linus Torvalds
cb8fef4b07 TTY/Serial driver updates for 7.4-rc1
Here is the "big" set of tty and serial driver updates for 7.4-rc1.
 It's not really all that big, it's been kind of quiet in this area of
 the tree this development cycle in relation to other parts of the tree.
 But still, included in here are:
   - 8250 port updates and fixes
   - 8250 driver cleanups by Jiri
   - deletion of the obsolete moxa driver (making this pull request
     remove more lines than added!)
   - different serial driver updates for dma and other reported issues
 
 All of these have been in linux-next with no reported problems.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCatoTUg8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+yn+lQCgjA22FwJl7j2xM1aY8Vu80rsr5GwAoIJCzJRD
 k1Y6LzXAZ/kqfJ3YT7w5
 =w/aw
 -----END PGP SIGNATURE-----

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

Pull tty / serial driver updates from Greg KH:
 "Here is the "big" set of tty and serial driver updates for 7.4-rc1.

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

   - 8250 port updates and fixes

   - 8250 driver cleanups by Jiri

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

   - different serial driver updates for dma and other reported issues

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

* tag 'tty-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (91 commits)
  tty: hvc: dcc: Detect JTAG connection only on CPU core 0
  serial: earlycon: Use isdigit() in earlycon_init()
  serial: core: Use isdigit() in uart_parse_options()
  dt-bindings: serial: snps-dw-apb-uart: Add Synaptics sl2610 uart
  serial: amba-pl011: drive the bus during break in RS485 mode
  serial: mcf: update author email address
  serial: pmac_zilog: report received breaks
  serial: pmac_zilog: push received data to the port that received it
  serial: amba-pl011: keep transmitter enabled when disabling RS485
  serial: ma35d1: Do not force-enable an unselected console
  serial: amba-pl011: honour delay_rts_before_send for every write
  Revert "serial: 8250_port: Drop duplicate NULL check"
  serial: 8250: make port operations work on struct uart_8250_port
  serial: 8250_omap: set priv->line before enabling the IRQ
  serial: 8250_lpss: do not touch uninitialized line in ehl_serial_exit()
  serial: 8250_exar: store the GPIO platform device in struct exar8250
  serial: 8250_exar: remove useless void * casts
  serial: 8250: drop err label from serial8250_register_8250_port()
  serial: core: fix TIOCSSERIAL and TIOCSERCONFIG on uninitialised ports
  serial: max310x: don't transmit while an RS485 reconfigure is pending
  ...
2026-10-24 15:25:54 -10:00
Linus Torvalds
17bb0e2f6c pci-v7.4-changes
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEgMe7l+5h9hnxdsnuWYigwDrT+vwFAmrZFXsUHGJoZWxnYWFz
 QGdvb2dsZS5jb20ACgkQWYigwDrT+vxlSxAAwXOwRpzBXQjGzvpA7usELOuBqUn6
 kToTlY5VHQZ01Iax3IwbENP8DP3Nh4Zmq3GVOwLREdZ6ouAw/jXGfdnAnFgl6EV2
 5m6yW0RXElZgxIbPJZIbGve7UwrpgBIvvsPl6KVZRY/6lzobEU8XLIHWFKi1EF9l
 nicYADjI1gocFaq8GyAqAoh5WpHSpP2rNBY2fQmZSm+ihGBUzvy6inL0f3j19A1G
 L6av4MwpAQQI137oN1WG2tR3Donc1r7bIfsGiYkMg6TjV/yeqNeafCJ3jbZnTUAS
 UHVfnCxImkKmQXYElVXsn93VwigRMbtH3KXaAVjctp6VoUxNCTJRtjvvwrpu1tlp
 92eazDj9BU2SgcHxH5D4TYmWgslp43l8EbnbBgt64lLthsdhv2evOkQbGbMtZwzL
 FnSYG7Y/wfPxM2u3ODFfjXoKBdmbJqKzwmjs1CQFJVrp0TMLUHUpTI2XDxCOYh+J
 HpNSnAevSjUUFaXf+IPvgOnZZanN6K2/ZUns48GIYQruebViTv7RCfPFZKjLI1Ny
 1w5VwUZ9KEEidlB3vAmeAbACWoRGumoeS9AElzuBLRcOWKTiofmupTwO7GoTwqGa
 69SpDgU9t99UK2Q9++NLO+rW1ZwCtdi0ImmJ0t9rZtGPMDR11LZwdIRmMxEjdj3r
 fg+9TQDdxiMF+r0=
 =1Pqr
 -----END PGP SIGNATURE-----

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

Pull PCI updates from Bjorn Helgaas:
 "Enumeration:

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

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

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

  Driver binding:

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

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

  Error handling:

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

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

  ASPM:

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

  Power management:

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

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

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

  Power control:

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

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

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

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

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

  PCIe native device hotplug:

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

  Virtualization:

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

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

  Peer-to-peer DMA:

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

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

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

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

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

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

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

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

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

  Sysfs:

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

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

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

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

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

Endpoint framework:

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

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

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

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

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

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

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

  APM X-Gene PCIe controller driver:

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

  ASPEED PCIe controller driver:

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

  Broadcom iProc PCIe controller driver:

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

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

  Broadcom STB PCIe controller driver:

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

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

  Cadence PCIe controller driver:

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

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

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

  ESWIN PCIe controller driver:

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

  Freescale i.MX6 PCIe controller driver:

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

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

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

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

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

  Freescale Layerscape PCIe controller driver:

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

  Intel VMD host bridge driver:

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

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

  Marvell Aardvark PCIe controller driver:

   - Disable PHY on probe failures (Myeonghun Pak)

  Marvell MVEBU PCIe controller driver:

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

  MediaTek PCIe controller driver:

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

  MediaTek PCIe Gen3 controller driver:

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

  NVIDIA Tegra264 PCIe controller driver:

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

  Qualcomm PCIe controller driver:

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

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

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

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

   - Deinitialize endpoint on remove (Guangshuo Li)

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

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

  Renesas R-Car PCIe controller driver:

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

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

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

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

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

  Renesas RZ/G3S PCIe controller driver:

   - Disable refclk on probe failure (Lad Prabhakar)

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

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

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

  Rockchip PCIe controller driver:

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

  Synopsys DesignWare PCIe controller driver:

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

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

  TI DRA7xx PCIe controller driver:

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

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

  TI Keystone PCIe controller driver:

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

  UltraRISC PCIe controller driver:

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

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

  Xilinx Versal CPM PCIe controller driver:

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

  Xilinx XDMA PCIe controller driver:

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

* tag 'pci-v7.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (139 commits)
  PCI/pwrctrl: Power off child devices on power-on failure
  PCI/pwrctrl: Only destroy devices created by pwrctrl core
  PCI/pwrctrl: generic: Fix leaking array from of_regulator_bulk_get_all()
  PCI/pwrctrl: tc9563: Switch per-port reset to GPIO descriptor API
  PCI/pwrctrl: tc9563: Add GPIO auxiliary device support
  dt-bindings: PCI: toshiba,tc9563: Document embedded GPIO controller
  gpio: tc9563: Add support for the embedded GPIO controller
  PCI: qcom: Skip DWC MSI host initialization when DT 'msi-map' is present
  PCI: qcom: Ignore -ENODEV after Root Port reset
  PCI: qcom-ep: Deinitialize endpoint on remove
  PCI/sysfs: Reject unaligned resource I/O port accesses
  PCI: rcar-gen4: Add missing PM ops
  PCI: endpoint: pci-epf-vntb: Honor MSI-X selection
  PCI: endpoint: pci-epf-vntb: Use a local epf pointer in interrupt setup
  PCI: dwc: imx6: Use regmap_assign_bits() for conditional set/clear
  PCI: dwc: Describe DWC PCIe fields with full masks and FIELD_PREP()
  PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain
  PCI: dwc: Rename dw_pcie_allocate_domains() to dw_pcie_allocate_msi_domains()
  PCI: dwc: Correct PCIE_DW_PLAT_EP reference in Kconfig help
  PCI/ASPM: Disable ASPM when driver requests it
  ...
2026-10-23 15:34:47 -10:00
Linus Torvalds
26344c0dd3 VFIO updates for v7.4-rc1
- Fix missing selftest <libgen.h> include for basename() to support
    non-glibc builds. (Hisam Mehboob)
 
  - Add vfio selftest documentation covering the libvfio helper library
    and guidance for developers to aid in adding and understanding the
    framework. (David Matlack)
 
  - Fix vfio cdev open path to prevent a second open from clobbering
    the vf_token or clearing the KVM reference.  Add a selftest to
    avoid future recurrences. (Alex Williamson)
 
  - Extend vfio selftest mix_and_match timeouts, in particular to
    account for systems where generated faults can induce heavy SMM
    load, delaying internal timeouts.  Also extend timeout for
    execution via runner to account for various tests exceeding default
    45s timeout.  (Alex Williamson)
 
  - Add tracking for non-reserved mappings into a vfio_dma object in
    order to optimize the tear-down paths where per-page tests can be
    entirely skipped.  This resolves a soft lockup for large memory
    GPUs. (Samuel Crossley)
 
  - Add vfio selftest driver for mlx5, providing another target for
    exercising DMA and interrupts against a physical device.
    (Jason Gunthorpe)
 
  - Hardening against read-only region promotion, preserving vm_pgoff
    for unmap_mapping_range(), and reject non-shared MMIO mmaps as
    necessary through vfio-platform, vfio-fsl-mc, and vfio-cdx.  These
    prevent future issues, though none are currently reachable.
    (Abdifatah Suruur)
 
  - Fix 8-byte ioeventfd support, removing a static error test that was
    erroneously left in place when generalizing 8-byte io accesses.
    (Li RongQing)
 
  - Fix missed RCU drain on module exit. (Jiale Yao)
 
  - Fix off-by-one boundary check in migration support within the mlx5
    vfio-pci variant driver. (Seongjun Hong)
 
  - Remove drvdata usage convention across vfio-pci-core, allowing
    variant drivers to freely create their own conventions and enabling
    a future Rust-based variant driver.  A DRM topic branch is also
    merged in support of this effort, modifying the vga arbiter API
    to more cleanly remove the drvdata dependency. (Simon Song)
 
  - Fix hisi_acc vfio-pci variant driver to avoid NULL pointer accesses
    when bound to unsupported devices and also disabling migration
    support when running on 64K host page size due to BAR mapping
    constraints. (Longfang Liu)
 
  - Add device IDs for Crescent Island and Nova Lake devices to the Xe
    vfio-pci variant driver. (Satyanarayana K V P)
 
  - Fix fallback mode in nvgrace-gpu variant driver to use symmetric
    open and close handlers to avoid reported use-after-free issue.
    Remove the resulting unnecessary test in the now single-purpose
    open function. (Andrea Parri)
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEQvbATlQL0amee4qQI5ubbjuwiyIFAmrZgKwRHGFsZXhAc2hh
 emJvdC5vcmcACgkQI5ubbjuwiyJzzQ//YVE+dgmZyop6V4INVheuYOt9jlTwEsbN
 CV7BcHG2AQt/0yx9LtKQ6CFKJSJYcPUTQjBq5FMYxXVUYiKCjn2czk7gKJeCXX+6
 8AkWqNi2Ds46j7YwRaNZEP4yrDPmZeQw5Z/cqE95zBB2QtujGl3FJ4Jt6hAnT3AM
 EIzMT4ZkOWGOaurK9blUY4sH+N8Ft9haJeAeEsBtT1wSD52MvAdXdCKhhfxR0vm9
 9R9/DYNVff5ynFOWDIWUqspxT3ITIX2iPJMmsPzlXZXytIjwTcA3NSmH48KvNSCw
 iI9+UYPHU9wBoRlrh020ZPl2kxFoOEZLCfonCgEeQuEtZiyaEjmjZ8uU4J/JF6UO
 Uu4xUG9DBjNtqbDeEtPlGM/6Scuqn+EDlEGHMVOhjJwllGVilGeVeA93wJo064J2
 lXGsvQ6EBP6VDzfvbW/7KApm6JwIjV5h4/+bA0Eq5wFkNxDPoahtjh2IvYflLpIV
 2jBIC+OG759QBnJ+KlHI+07m1tQKy5MdYBJg8Lpo4pL/wH14UXTDNnEYPdusrKql
 GAuMERJe+3/PrL3xzgptwDBuVwIkWzX8ivdWPWQsIgq0OY/RpENZBgeRL7nXrIpn
 lT14Os+FOflGeVyIXJS14cqG+gzTV5/nEP+EDXyOIwKL2Kff5zBFpXfyRiYXtwvJ
 oRsxu6XNfT8=
 =zgQL
 -----END PGP SIGNATURE-----

Merge tag 'vfio-v7.4-rc1' of https://github.com/awilliam/linux-vfio

Pull VFIO updates from Alex Williamson:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* tag 'vfio-v7.4-rc1' of https://github.com/awilliam/linux-vfio: (35 commits)
  vfio/nvgrace-gpu: Drop the usemem length check in open_device
  vfio/nvgrace-gpu: Use a core-only open_device in fallback mode
  vfio/xe: Add CRI and NVL device IDs
  hisi_acc_vfio_pci: reject live migration on 64KB page with QM_HW_V3 hardware
  hisi_acc_vfio_pci: fix NULL dereference in reset_prepare on PF passthrough
  vfio/pci: Remove the core dependency on driver data
  vfio/mlx5: Fix boundary check in set_report_output()
  vfio/pci: Drain eventfd RCU callbacks on module exit
  PCI/VGA: pass a data pointer to be used in the decode callback (v2)
  vfio/pci: Restore 8-byte ioeventfd support
  vfio/cdx: reject non-shared MMIO mmaps
  vfio/cdx: keep logical vm_pgoff in MMIO region mmap
  vfio/fsl-mc: keep logical vm_pgoff in MMIO region mmap
  vfio/platform: keep logical vm_pgoff in MMIO region mmap
  vfio/cdx: prevent read-only region mappings from becoming writable
  vfio/fsl-mc: prevent read-only region mappings from becoming writable
  vfio/platform: prevent read-only region mappings from becoming writable
  vfio: selftests: Verify a failed second open preserves the vf_token
  vfio: selftests: mlx5 driver - add send_msi support
  vfio: selftests: Add mlx5 driver - data path and memcpy ops
  ...
2026-10-23 14:22:52 -10:00
Linus Torvalds
03480653dd MMC core:
- Add a power-off-delay-us DT property to support HW specific delays
  - Add mmc_send_tuning_timeout() to allow hosts to specify a timeout
  - Enable hosts to control the re-programming of the crypto keys
 
 MMC host:
  - dw_mmc: Add a common watchdog and convert the various timeouts to use it
  - dw_mmc: Expose the watchdog state in debugfs
  - dw_mmc-rockchip: Use a tighter per command tuning timeout
  - greybus-sdio: Convert to devm_mmc_alloc_host()
  - meson-gx: Enable the bus pipeline clock on T7
  - rtsx_usb_sdmmc: Start card power-up at 3.3V
  - sdhci-cadence: Add Altera Agilex5 SD6HC support
  - sdhci-cadence: Add Cadence SD6HC support
  - sdhci-msm: Add support for the MSM8952 and Maili variants
  - sdhci-msm: Use pm ops to better manage restoring of crypto keys
  - sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip
  - sdhci-pxav3: Disable clock inversion for SD HS cards
  - sunplus: Fixup initialization for DDR modes
  - sunxi: Add support for Allwinner B288
  - vub300: Remove the driver for the obsolete HW
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmrV/scQHHVsZmhAa2Vy
 bmVsLm9yZwAKCRD+JoQlc1iMKag2EAC5pslywPB4JC7qWsN2axZK6Gg9p0YrMUZf
 RnRVNhMWaWpqDfaSE0MoxWXEys/SMdfCbeBJVVMvyQ/ouvzbPWxO338xy56286Ug
 lPQ5HTFvHbhOTl80ou0gejVzbihnIDNjAAW27COuOtZ3nR5NQDLeee390y8dUAsI
 2MYPOORGCy2qt9lx1b+6AaKXw9M0tSpWj3ojrkWbGmxhjhfllKd4i3fjCW1lLsNJ
 o1QVc4lP5uR+qGY0xis/bGqqcb5ugHkVddL3icgE1rpoPa7mePgHh4PQJHuTQtWX
 ilcfSZojgsrBTSVptBEUZa5Mf/rqmNd/9o7Bbjq61fdJHRB/+MPTqRKhSOy03OPq
 papbIi3NSVppy4SRy1XOVkukxZxVIo+VmK0h3i13SHhhzbIAWD1ko4CAGsKrR9Zm
 ZeMAf848/RdCyGispB7kF+XShmYMfZO59NFQOcZJxZh2bFXhX7O1kmflDbAM/KjV
 19mC9rQYhQsGSF04jls0P0dhyhEn/vrOXsV8zTDNkkrIHmAD6Zk7iny1wnsyLyOc
 jAqkJbRD4atp1nB9AF1VfDvTLmoiRYsRkkx0V85S+shr6+Ijb/m9mvL4APRAaqUA
 7xsGb+UMbJFU4NGWVYpRwNQw55c4hYT4G8m3XnNHm0XlX5HJ1mPWJPfQOGSwl8Ar
 C6fst1R3hQ==
 =j2Nx
 -----END PGP SIGNATURE-----

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

Pull MMC updates from Ulf Hansson:
 "MMC core:
   - Add a power-off-delay-us DT property to support HW specific delays
   - Add mmc_send_tuning_timeout() to allow hosts to specify a timeout
   - Enable hosts to control the re-programming of the crypto keys

  MMC host:
   - dw_mmc: Add a common watchdog and convert the various timeouts to use it
   - dw_mmc: Expose the watchdog state in debugfs
   - dw_mmc-rockchip: Use a tighter per command tuning timeout
   - greybus-sdio: Convert to devm_mmc_alloc_host()
   - meson-gx: Enable the bus pipeline clock on T7
   - rtsx_usb_sdmmc: Start card power-up at 3.3V
   - sdhci-cadence: Add Altera Agilex5 SD6HC support
   - sdhci-cadence: Add Cadence SD6HC support
   - sdhci-msm: Add support for the MSM8952 and Maili variants
   - sdhci-msm: Use pm ops to better manage restoring of crypto keys
   - sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip
   - sdhci-pxav3: Disable clock inversion for SD HS cards
   - sunplus: Fixup initialization for DDR modes
   - sunxi: Add support for Allwinner B288
   - vub300: Remove the driver for the obsolete HW"

* tag 'mmc-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (43 commits)
  dt-bindings: mmc: sun4i-a10-mmc: add Allwinner B288
  mmc: dw_mmc-rockchip: use a tighter per-command tuning timeout
  mmc: core: add mmc_send_tuning_timeout()
  mmc: sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip
  dt-bindings: mmc: sdhci-msm: Add MSM8952 compatible
  mmc: use assign_bit() where applicable
  mmc: sdhci-pci: Replace deprecated PCI functions
  mmc: sunplus: initialise rd_crc_dly=1 for DDR modes
  mmc: core: fix stale mmc_start_req() references in comments
  docs: mmc: fix stale async request documentation
  docs: mmc: document eMMC health status support in mmc-tools
  mmc: cavium-thunderx: Drop redundant calls to get|put_device()
  mmc: core: Turn mmc_alloc|free_host() into static functions
  staging: greybus: sdio: Convert to devm_mmc_alloc_host()
  mmc: vub300: Remove the driver for the obsolete HW
  mmc: dw_mmc: remove unused slot member
  mmc: sdhci-pxav3: avoid of_node
  CREDITS: Add Pierre Ossman
  mmc: fix typos in comments
  mmc: meson-gx: enable the bus pipeline clock on T7
  ...
2026-10-22 07:29:07 -10:00
Linus Torvalds
6ef8f742f9 spi: Updates for v7.4
Quite a lot of work in the SPI subsystem this time around, almost all in
 drivers rather than the core.  As well as the general cleanup/fix work
 we're seeing over most of the kernel there's been some substantial
 performance work to two existing drivers and support for a number of new
 devices including a couple of new drivers.  There was also a big
 overhaul of the spidev_test utility from the Pengutronix people.
 
  - Improvements for spidev_test to cover additional use cases, plus be a
    bit easier to use.
  - Substantial performance work in both DesignWare and Tegra210 QSPI
    drivers, making their interrupt handling more efficient to drive up
    hardware utilisation.
  - Documentation clarifications.
  - Fixes for some runtime PM and error handling issues.
  - Support for Nuvoton MA35D1, Qualcomm QPIC SNAND v2, Renesas R-Car
    Gen5 and X5H and Realtek RTD1625.
 
 Some of these updates are also present in my ASoC pull request to
 Takashi, b4's base selection logic picked a SPI commit for an ASoC
 branch and I didn't notice until far too late after I'd already merged
 the ASoC branch and stacked further work on it.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQReagvpf3TrrA7BoYYv73Ows9A4iQUCatZPeAAKCRAv73Ows9A4
 iel5AQDNHadaO57QtkGtz6oa8dyDOtkDPbnkKfN8ffohRWGV6AD8DSGLh0R+MOlK
 aIV6jUtdFqDuPm+F4jBAvWiUezvnRAI=
 =7xi4
 -----END PGP SIGNATURE-----

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

Pull spi updates from Mark Brown:
 "Quite a lot of work in the SPI subsystem this time around, almost all
  in drivers rather than the core.

  As well as the general cleanup/fix work we're seeing over most of the
  kernel there's been some substantial performance work to two existing
  drivers and support for a number of new devices including a couple of
  new drivers. There was also a big overhaul of the spidev_test utility
  from the Pengutronix people.

   - Improvements for spidev_test to cover additional use cases, plus be
     a bit easier to use.

   - Substantial performance work in both DesignWare and Tegra210 QSPI
     drivers, making their interrupt handling more efficient to drive up
     hardware utilisation.

   - Documentation clarifications.

   - Fixes for some runtime PM and error handling issues.

   - Support for Nuvoton MA35D1, Qualcomm QPIC SNAND v2, Renesas R-Car
     Gen5 and X5H and Realtek RTD1625"

* tag 'spi-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (136 commits)
  spi: ch341: handle transfers without a TX or RX buffer
  spi: dt-bindings: spi-qpic-snand: Add IPQ9650 compatible
  spi: spi-pci1xxxx: quiesce DMA engines on transfer timeout
  spi: amd: fix len==0 underflow and FIFO overflow
  spi: tegra114: initialize native chip selects inactive
  spi: bcm-qspi: reject oversized dummy bytes in mspi exec_mem_op
  spi: npcm-fiu: limit UMA data_size to the 16-byte staging buffer
  spi: omap2-mcspi: handle DMA setup failures
  spi: jcore: fix divide-by-zero when speed_hz is zero
  spi: cadence-xspi: fix stack buffer overflow in the Marvell b0 path
  spi: cadence-xspi: reject SDMA transfers larger than the requested length
  spi: meson-spicc: fix invalid DMA unmap on mapping failure
  spi: s3c64xx: Use snprintf() instead of sprintf()
  spi: omap2-mcspi: Use snprintf() instead of sprintf()
  spi: tle62x0: Use kstrtoul() instead of simple_strtoul()
  spi: lm70llp: Use strscpy() instead of strcpy()
  spi: butterfly: Use strscpy() instead of strcpy()
  spi: jcore: Use devm_platform_ioremap_resource()
  spi: sh-hspi: Use devm_platform_ioremap_resource()
  spi: ljca: validate the response length before copying the data
  ...
2026-10-22 07:16:16 -10:00
Linus Torvalds
bfa231bb4c gpio updates for v7.4-rc1
GPIO core:
 - provide a new controller API: gpiochip_generic_get_config()
 - return -EOPNOTSUPP instead of -ENODEV to user-space if it requests
   hardware timestamping on systems where it's unavailable (no user-space
   regressions reported)
 
 New drivers:
 - add a driver for ROHM BD73800 PMIC GPIO controller
 - add a driver for Axiado AX3005 SGPIO controller
 - add a driver for Analog Devices AD7768 GPIO controller
 
 New hardware support:
 - extend gpio-rcar with support for R-Car X5H (R8A78000)
 - extend gpio-tegra186 with support for Tegra 268
 
 Driver changes:
 - refactor and improve gpio-rtd1625: switch to modern or better fitting
   interfaces and improve coding style
 - improve error handling of return values of platform_get_irq_optional()
   in several drivers
 - normalize the return value of the gpio_chip::get() callback in gpio-siox in
   order to not propagate invalid values up to the GPIO core
 - implement gpio_chip::get_direction() for gpio-pcf857x
 - use managed variants of notifier registration functions in several drivers
 - remove legacy gpio_set_value_cansleep() as it has no more users
 - add pinctrl support to gpio-realtek-otto
 - add runtime PM support to the gpio-regmap helper module
 - add more ACPI GPIO quirks for various hardware
 - stop needlessly reading gpio_chip::base in gpio-pxa
 - add support for tracking of direction of generic GPIO chips with no
   direction registers via pinctrl backend to gpio-mmio (use the new core API:
   gpiochip_generic_get_config())
 - use the "safe" variants of debugfs_create_file() in gpio-sloppy-analyzer
 - use device name as GPIO chip label in gpio-omap
 - refactor bit ops in gpio-dln2
 - prepare gpio-it87 for upcoming kmalloc_obj() conversion
 
 Devicetree bindings:
 - document new model in gpio-pca95xx
 - allow the gpio-hogs property in gpio-zynq and fsl,qoriq-gpio
 - allow the gpio-ranges property in gpio-realtek-otto
 
 Misc fixes:
 - add missing MODULE_ALIAS() to gpio-crystalcove
 - fix a comment typo in example GPIO tools
 - fix unbalanced brackets in documentation
 - add names to regmaps in gpio-mvebu to avoid collisions in debugfs output
 - fix GPIO lookup using relative paths in GPIO ACPI
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmrV2E0ACgkQBZ0uy/82
 hMMRog/7Bb3BiJlHlboHQ89YGn4Fq/nUiceWTP2NS7r9TuJE8M/jzxHKwl0qYtLs
 4JTg/Sv0pN8+zouqv+N/yCjHVY21mVKgCdJ100uch1wbBrzLMlruAj624xLdgX+8
 f1Lp6qJJOGcskoDJXRPlo1fw1eYw0XXwaJ5hDA/c9C+vURYPyXV9QHvZWwOj4csE
 aEtR0YBgB/b3IyXh8VuIBvDQd2ZzO9G0fU3UEcrH+KT6LplRiPQh0H7fVH+0hEhl
 fwZ5+CsK3UpsaCVu/EoXPXD/I8/qQ50ETClYA/oteVIq2kIzIVuWSOvRXmsRKsfH
 ROc94dzTHGK7waLmjlTGwc26zUNbQbFEI8+CLFipSZfSs3qrw54ufspiW74X3Og0
 LbgPkaVE6gS6S9S5lfGdeVeg+6kBqn5+fpqcYPLiouV9UJ6mEc4+75tNkafDGjy2
 JFxc2h7frdsWf1w6DkM8hwjiqFgEaUatKfV0W2dJ8zomdPJYSXzf1f+TY9JAKl/2
 y0mGuREMmfRyzkSdMIrbN7shUVXIXO80upEn3DOlv7yjPDXCYFvLtwcqDtZTOjAK
 XI9VbOGB4dwuF42e057b85PlPoAIJohYJ/zKl4BgB+fifs74XCpP4/aOAHbAipKF
 UbdeN0NnmD7JHlR57vCD7r24Ex4h5UyyJidE5n6w0t1iSES1xVs=
 =P25c
 -----END PGP SIGNATURE-----

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

Pull gpio updates from Bartosz Golaszewski:
 "Nothing stands out as particularly interesting, it's been a calm
  cycle. We have three new drivers, support for more models and lots of
  updates across many modules (details are in the signed tag as usual).
  There are also some minor changes and additions to the in-kernel GPIO
  API.

  GPIO core:
   - provide a new controller API: gpiochip_generic_get_config()
   - return -EOPNOTSUPP instead of -ENODEV to user-space if it requests
     hardware timestamping on systems where it's unavailable (no
     user-space regressions reported)

  New drivers:
   - add a driver for ROHM BD73800 PMIC GPIO controller
   - add a driver for Axiado AX3005 SGPIO controller
   - add a driver for Analog Devices AD7768 GPIO controller

  New hardware support:
   - extend gpio-rcar with support for R-Car X5H (R8A78000)
   - extend gpio-tegra186 with support for Tegra 268

  Driver changes:
   - refactor and improve gpio-rtd1625: switch to modern or better
     fitting interfaces and improve coding style
   - improve error handling of return values of
     platform_get_irq_optional() in several drivers
   - normalize the return value of the gpio_chip::get() callback in
     gpio-siox in order to not propagate invalid values up to the GPIO
     core
   - implement gpio_chip::get_direction() for gpio-pcf857x
   - use managed variants of notifier registration functions in several
     drivers
   - remove legacy gpio_set_value_cansleep() as it has no more users
   - add pinctrl support to gpio-realtek-otto
   - add runtime PM support to the gpio-regmap helper module
   - add more ACPI GPIO quirks for various hardware
   - stop needlessly reading gpio_chip::base in gpio-pxa
   - add support for tracking of direction of generic GPIO chips with no
     direction registers via pinctrl backend to gpio-mmio (use the new
     core API: gpiochip_generic_get_config())
   - use the "safe" variants of debugfs_create_file() in
     gpio-sloppy-analyzer
   - use device name as GPIO chip label in gpio-omap
   - refactor bit ops in gpio-dln2
   - prepare gpio-it87 for upcoming kmalloc_obj() conversion

  Devicetree bindings:
   - document new model in gpio-pca95xx
   - allow the gpio-hogs property in gpio-zynq and fsl,qoriq-gpio
   - allow the gpio-ranges property in gpio-realtek-otto

  Misc fixes:
   - add missing MODULE_ALIAS() to gpio-crystalcove
   - fix a comment typo in example GPIO tools
   - fix unbalanced brackets in documentation
   - add names to regmaps in gpio-mvebu to avoid collisions in debugfs
     output
   - fix GPIO lookup using relative paths in GPIO ACPI"

* tag 'gpio-updates-for-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (63 commits)
  gpiolib: acpi: Fix GPIO lookup using relative path
  gpio: legacy: Kill gpio_set_value_cansleep()
  dt-bindings: gpio: pca95xx: add onnn,pca9655 with nxp,pca9555 fallback
  gpiolib: acpi: Ignore GPIO 11 interrupt on Acer Nitro V 16S AI
  gpio: pxa: stop reading gpio_chip::base in direction callbacks
  gpio: axiado: add AX3005 SGPIO controller support
  dt-bindings: gpio: add Axiado AX3005 SGPIO controller
  gpiolib: acpi: Add quirk for Lenovo IdeaPad Slim 3 15ABR8
  MAINTAINERS: Add ROHM BD73800 PMIC files
  gpio: bd73800: Support ROHM BD73800 PMIC GPIOs
  clk: bd718x7: Support ROHM BD73800
  regulator: bd71828: Support ROHM BD73800
  rtc: bd70528: Support RTC on ROHM BD73800
  mfd: Support for ROHM BD73800 PMIC core
  dt-bindings: mfd: ROHM BD73800 PMIC
  dt-bindings: regulator: ROHM BD73800 regulators
  dt-bindings: rohm,bd*: Ref common ROHM bindings
  dt-bindings: mfd: Common ROHM PMIC properties
  gpio: siox: normalize return value of gpio_get()
  gpio: dln2: use assign_bit() where applicable
  ...
2026-10-22 06:59:20 -10:00
Linus Torvalds
b0e1eda687 pwm: Changes for v7.4-rc1
The usual mix of fixes for older issues, devicetree changes and
 cleanups.
 
 Part of this is a shared branch that introduces device-managed variants
 of atomic_notifier_chain_register() and
 blocking_notifier_chain_register().
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmrR2QoACgkQj4D7WH0S
 /k58WwgAlViH1YkP0//3Az5Y4RQv7t6EFQUquWQqD9VqaltRhiEEuapq4q6VY5p7
 V/N3tqOtqf7GWWqZq6y8V2fxunATa4xrlz2prQYBLvryIojI6RqF/1vHdCZU1DS/
 ovZQA38KHf0vrVa4/7VmM90143KJPqLXpfQ0PlwHaWR6XmVr+TmowgDaGQQCG7Wa
 IgvpfvSxxtsV09p6vd1atBAX6j+ZvaSEiOvK5lykJdp3mzrmf09QVDpW96qQjMcm
 xcXPndavnsAee2s3QVF4I0qGqu1xd2uCLtyJuNhE4bjq5TLxyQyEVAe0bgWr9eXD
 giHIO7RjI0FtA3Ngsh/k02TdlXYNRQ==
 =gMpT
 -----END PGP SIGNATURE-----

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

Pull pwm updates from Uwe Kleine-König:
 "The usual mix of fixes for older issues, devicetree changes and
  cleanups.

  Part of this is a shared branch that introduces device-managed
  variants of atomic_notifier_chain_register() and
  blocking_notifier_chain_register()"

* tag 'pwm/for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
  dt-bindings: pwm: Add IPQ5210 binding
  pwm: tiehrpwm: Clear period on disable to allow reconfiguration
  pwm: Allow 32-bit tasks to use the character device
  pwm: lp3943: fix NULL pointer dereference for an unconfigured channel
  pwm: mtk-disp: Fix period readback
  pwm: ipq: Prevent potential 32-bit integer overflow in hi_div calculation
  pwm: loongson: Reload PWM configuration through counter reset
  pwm: Fix typos in comments
  dt-bindings: pwm: Convert TI PWM Subsystem to DT schema
  docs: pwm: Fix bracket and punctuation
  pwm: iqs620a: Use devm_blocking_notifier_chain_register()
  pwm: renesas-tpu: Fix runtime PM reference leak
  notifier: add device-managed registration APIs
2026-10-22 06:44:27 -10:00
Linus Torvalds
4403278e4e Thermal control updates for 7.4-rc1
- Make the Intel powerclamp thermal driver reject invalid window_size
    values, drop redundant clamp() from duration_set() in it, and
    simplify 4 functions in it (Thorsten Blum)
 
  - Add rugged Panther Lake support to the intel_tcc_cooling thermal
    driver (Srinivas Pandruvada)
 
  - Fix temperature selection around 0 C in the int340x thermal driver,
    drop redundant else from proc_thermal_add() in it, and simplify
    slider_def_*_set() in it (Thorsten Blum)
 
  - Drop unbalanced paren from cpu-idle-cooling.rst (Manuel Ebner)
 
  - Use %pe to print error pointers symbolically in the thermal control
    code and fix assorted typos in comments in it (Sumeet Pawnikar and
    Hemanth Selam)
 
  - Add the Exynos ACPM thermal driver for Google GS101, along with
    DT bindings and a MAINTAINERS entry (Tudor Ambarus)
 
  - Add Renesas RZ/G3L thermal sensor support and DT bindings, and move
    default calibration values to per-SoC match data (Biju Das)
 
  - Add Qualcomm MSM8952 TSENS support and the corresponding DT binding
    compatible (Muzaffer Kadir)
 
  - Document the Qualcomm PMAU0102 Master BandGap temperature monitor
    compatible in the DT bindings (Dhruvin Rajpura)
 
  - Extend the QCom TSENS v2 trip temperature limits to the hardware
    range of -204°C to +204°C to prevent interrupt storms when operating
    beyond the previous software limits (Priyansh Jain)
 
  - Fix temperature threshold map indexing in the QCom SPMI temperature
    alarm driver to prevent out-of-bounds reads (Georgi Djakov)
 
  - Describe the additional bus clock required by the Amlogic T7 thermal
    sensor and switch the driver to the clk_bulk API to manage multiple
    clocks (Ronald Claveau)
 
  - Request the Airoha EN7581 IRQ after thermal zone registration to
    prevent the interrupt handler from accessing an unregistered or
    already freed thermal zone (Vitaliy Sochnev)
 
  - Fix the Airoha AN7583 ADC mux field mapping, serialize access to the
    shared ADC, and verify mux selection to avoid invalid temperature
    readings and spurious critical shutdowns (Vitaliy Sochnev)
 
  - Register separate thermal zones for the AN7583 bandgap, GbE and CPU
    sensors, and update the DT bindings to use one thermal sensor cell
    to select the sensor (Vitaliy Sochnev)
 
  - Fix signed integer overflow in the Renesas RZ/G3E temperature-to-code
    conversion, preserve compare interrupt state across runtime PM,
    and prevent overlapping temperature conversions (Ovidiu Panait)
 
  - Remove redundant trip window validation and runtime PM
    pm_runtime_mark_last_busy() calls from the Renesas RZ/G3E driver
    (Ovidiu Panait)
 
  - Propagate reset assertion failures from Renesas RZ/G3E suspend and
    attempt to restore power if the sensor was active (Pengpeng Hou)
 
  - Stop the TI bandgap alert IRQ before removing sensor interfaces and
    cancel pending alert work to prevent use-after-free on driver removal
    (Weigang He)
 
  - Validate Spreadtrum sensor IDs read from the device tree before using
    them for register offsets and array indexing (Weigang He)
 
  - Convert the TI OMAP bandgap DT bindings to schema and document the
    DRA752 compatible and thermal sensor cells (Bhargav Joshi)
 
  - Use DT property helpers matching the signed temperature and unsigned
    hysteresis types defined by the thermal zone bindings (Rob Herring)
 
  - Reuse common error handling code in the power allocator governor
    bind callback (Markus Elfring)
 
  - Constify the thermal zone device operations in the i.MX9 driver
    (Christophe JAILLET)
 
  - Fix kernel-doc parameter names and firmware node references in the
    cooling device registration helpers (Aryan Sinha)
 
  - Correct the documented return value of ti_bandgap_get_sensor_data()
    to describe validation errors and potentially NULL stored data
    (Karl Mehltretter)
 
  - Ensure NUL-termination when copying the cooling device command-line
    argument in tmon and fix the associated string truncation warning
    (Florian Fainelli)
 
  - Fix undefined behavior caused by a signed shift in the tmon thermal
    zone binding display (Liu Jing)
 
  - Fix wording in tmon comments (Hemanth Selam)
 
  - Simplify cpufreq_set_cur_state() in the cpufreq_cooling thermal
    control driver (Thorsten Blum)
 -----BEGIN PGP SIGNATURE-----
 
 iQFGBAABCAAwFiEEcM8Aw/RY0dgsiRUR7l+9nS/U47UFAmrWO9cSHHJqd0Byand5
 c29ja2kubmV0AAoJEO5fvZ0v1OO1HisH/3xEFIHZG7l+OHCETxNJDq3kC+4g48OM
 s7c96CuKI//bhNe0IZ0CBhSskqHAeU8gpxL3PjJOXFBFdrWkPOxjwzOVCOY0JOA6
 CZK8JiInyY6zBGXneHrySGD9QvJJ21EoYH0aIKaRAfgQyCHj5ETKa/SxAlNuLkqY
 wKMhRdofD+1ZvTe4voV4F9Brb4JUruPAJkMYdG1cU8LV9SVkW9KaEYWsS/ZLm7aC
 rY8UexK48vR9o80pR/zI48j5dndhO29PzRV5WeR1GSMcnYxIE7K5W4zTniwj5Zoh
 tv8fdC05eFbN2b3IEwaHix5xn7wK+T5KzXhau1aH+YJTSVeaW1gZo+k=
 =uhgs
 -----END PGP SIGNATURE-----

Merge tag 'thermal-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull thermal control updates from Rafael Wysocki:
 "These are mostly updates of thermal drivers including a new Exynos
  ACPM thermal driver for Google GS101, new Renesas RZ/G3L thermal
  sensor support, new Qualcomm MSM8952 TSENS support, new Qualcomm
  PMAU0102 Master BandGap temperature monitor support in DT bindings,
  and new rugged Panther Lake support in intel_tcc_cooling. Moreover,
  the AN7583 driver is extended to register separate thermal zones for
  bandgap, GbE and CPU (its DT bindings are updated accordingly).

  There are also multiple fixes and assorted cleanups, as usual.

  Specifics:

   - Make the Intel powerclamp thermal driver reject invalid window_size
     values, drop redundant clamp() from duration_set() in it, and
     simplify 4 functions in it (Thorsten Blum)

   - Add rugged Panther Lake support to the intel_tcc_cooling thermal
     driver (Srinivas Pandruvada)

   - Fix temperature selection around 0 C in the int340x thermal driver,
     drop redundant else from proc_thermal_add() in it, and simplify
     slider_def_*_set() in it (Thorsten Blum)

   - Drop unbalanced paren from cpu-idle-cooling.rst (Manuel Ebner)

   - Use %pe to print error pointers symbolically in the thermal control
     code and fix assorted typos in comments in it (Sumeet Pawnikar and
     Hemanth Selam)

   - Add the Exynos ACPM thermal driver for Google GS101, along with DT
     bindings and a MAINTAINERS entry (Tudor Ambarus)

   - Add Renesas RZ/G3L thermal sensor support and DT bindings, and move
     default calibration values to per-SoC match data (Biju Das)

   - Add Qualcomm MSM8952 TSENS support and the corresponding DT binding
     compatible (Muzaffer Kadir)

   - Document the Qualcomm PMAU0102 Master BandGap temperature monitor
     compatible in the DT bindings (Dhruvin Rajpura)

   - Extend the QCom TSENS v2 trip temperature limits to the hardware
     range of -204°C to +204°C to prevent interrupt storms when
     operating beyond the previous software limits (Priyansh Jain)

   - Fix temperature threshold map indexing in the QCom SPMI temperature
     alarm driver to prevent out-of-bounds reads (Georgi Djakov)

   - Describe the additional bus clock required by the Amlogic T7
     thermal sensor and switch the driver to the clk_bulk API to manage
     multiple clocks (Ronald Claveau)

   - Request the Airoha EN7581 IRQ after thermal zone registration to
     prevent the interrupt handler from accessing an unregistered or
     already freed thermal zone (Vitaliy Sochnev)

   - Fix the Airoha AN7583 ADC mux field mapping, serialize access to
     the shared ADC, and verify mux selection to avoid invalid
     temperature readings and spurious critical shutdowns (Vitaliy
     Sochnev)

   - Register separate thermal zones for the AN7583 bandgap, GbE and CPU
     sensors, and update the DT bindings to use one thermal sensor cell
     to select the sensor (Vitaliy Sochnev)

   - Fix signed integer overflow in the Renesas RZ/G3E
     temperature-to-code conversion, preserve compare interrupt state
     across runtime PM, and prevent overlapping temperature conversions
     (Ovidiu Panait)

   - Remove redundant trip window validation and runtime PM
     pm_runtime_mark_last_busy() calls from the Renesas RZ/G3E driver
     (Ovidiu Panait)

   - Propagate reset assertion failures from Renesas RZ/G3E suspend and
     attempt to restore power if the sensor was active (Pengpeng Hou)

   - Stop the TI bandgap alert IRQ before removing sensor interfaces and
     cancel pending alert work to prevent use-after-free on driver
     removal (Weigang He)

   - Validate Spreadtrum sensor IDs read from the device tree before
     using them for register offsets and array indexing (Weigang He)

   - Convert the TI OMAP bandgap DT bindings to schema and document the
     DRA752 compatible and thermal sensor cells (Bhargav Joshi)

   - Use DT property helpers matching the signed temperature and
     unsigned hysteresis types defined by the thermal zone bindings (Rob
     Herring)

   - Reuse common error handling code in the power allocator governor
     bind callback (Markus Elfring)

   - Constify the thermal zone device operations in the i.MX9 driver
     (Christophe JAILLET)

   - Fix kernel-doc parameter names and firmware node references in the
     cooling device registration helpers (Aryan Sinha)

   - Correct the documented return value of ti_bandgap_get_sensor_data()
     to describe validation errors and potentially NULL stored data
     (Karl Mehltretter)

   - Ensure NUL-termination when copying the cooling device command-line
     argument in tmon and fix the associated string truncation warning
     (Florian Fainelli)

   - Fix undefined behavior caused by a signed shift in the tmon thermal
     zone binding display (Liu Jing)

   - Fix wording in tmon comments (Hemanth Selam)

   - Simplify cpufreq_set_cur_state() in the cpufreq_cooling thermal
     control driver (Thorsten Blum)"

* tag 'thermal-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (51 commits)
  thermal/drivers/rzg3e: Propagate reset assertion failure from suspend
  thermal: ti-soc-thermal: Fix the return value in ti_bandgap_get_sensor_data() kernel-doc
  thermal/fw: Fix kernel-doc parameter names
  thermal/qcom/tsens: Add support for MSM8952 tsens
  dt-bindings: thermal: tsens: Add MSM8952
  thermal/drivers/amlogic: Switch to clk_bulk API to support multiple clocks
  dt-bindings: thermal: amlogic: describe bus clock for t7-thermal
  tools/thermal/tmon: Fix string truncation warning in optarg copy
  thermal/drivers/airoha: Register a thermal zone per AN7583 sensor
  dt-bindings: arm: airoha: Use one thermal sensor cell for AN7583
  thermal/drivers/airoha: Serialise access to the shared ADC
  thermal/drivers/airoha: Fix AN7583 ADC mux field mapping
  thermal/drivers/sprd: validate the sensor id from the device tree
  thermal/drivers/ti-soc-thermal: Cancel pending alert work on remove
  thermal/drivers/qcom-spmi-temp-alarm: Fix temp_map indexing
  thermal: gov_power_allocator: Use common error handling code in power_allocator_bind()
  tools/thermal/tmon: Fix signed shift UB in binding display
  MAINTAINERS: Add entry for Samsung Exynos ACPM thermal driver
  thermal/drivers/samsung: Add Exynos ACPM TMU driver GS101
  dt-bindings: thermal: Add Google GS101 TMU
  ...
2026-10-21 14:38:01 -10:00
Linus Torvalds
bb29b957ea Kbuild / Kconfig updates for 7.4
Kbuild:
 
 - Suppress compiler flags in debug info for external module builds
 
 - Use '-fmacro-prefix-map' in more places in the build
 
 - Merge initial set of changes from Lorenzo's speed up series, along
   with some fixes found through testing
 
   - Avoid allocating .modinfo in vmlinux
 
   - Speed up kallsyms by indexing symbols by token and outputting binary
     data to disk directly then including in assembly via .incbin
 
   - Don't sort $(NM) output when unnecessary
 
   - Only emit relocations on the final vmlinx link
 
   - Reimplement mksysmap in C
 
   - Move many cc-option and ld-option calls into the Kconfig stage to
     cache their results
 
   - Use pigz for gzip compression when available
 
 - Move gen_init_cpio and gen_initramfs.sh from usr/ to scripts/
 
 - Add a TOML configuration to scripts/container and update documentation
   accordingly
 
 - Add a generic, opt-in mechanism for checking that headers can compile
   standalone
 
 - Update machine function splitting argument for LLVM 24 rename in
   AutoFDO build
 
 - Miscellaneous minor clean ups, fixes, and hardening, mostly
   found/fixed via LLMs
 
 Kconfig:
 
 - Turn recursive ranges into an error
 
 - Fix savedefconfig for defaults that were adjusted for being out of
   range and revert a previously applied workaround
 
 - Improvements and hardening around integer and hexadecimal values
 
 - Emit a warning when selecting or implying a choice symbol, which has no
   effect
 
 - Emit a warning when KCONFIG_PROBABILITY is malformed
 
 - Introduce def_string / def_int / def_hex to mirror the existing
   def_bool / def_tristate to succinctly set a value and type at the same
   time.
 
 - Add cc-option-str and ld-option-str macros to act like Kbuild's
   cc-option and ld-option, returning the string when the option is
   supported, allowing many checks to be moved into Kconfig
 
 - Minor usability improvements to Kconfig tests
 
 Signed-off-by: Nathan Chancellor <nathan@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQR74yXHMTGczQHYypIdayaRccAalgUCatRBoQAKCRAdayaRccAa
 lg+JAQCyjmh+xC2lLSHFGB9qTzqYpVoIT0Z9/6EGx09nYgMr5AEAmzg/+dor5u+6
 vjklzsGs95G01yetVE5ifNNsLvVxTAo=
 =HbPA
 -----END PGP SIGNATURE-----

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

Pull Kbuild / Kconfig updates from Nathan Chancellor:
 "Kbuild:

   - Suppress compiler flags in debug info for external module builds

   - Use '-fmacro-prefix-map' in more places in the build

   - Merge initial set of changes from Lorenzo's speed up series, along
     with some fixes found through testing:

     - Avoid allocating .modinfo in vmlinux

     - Speed up kallsyms by indexing symbols by token and outputting
       binary data to disk directly then including in assembly via
       .incbin

     - Don't sort $(NM) output when unnecessary

     - Only emit relocations on the final vmlinx link

     - Reimplement mksysmap in C

     - Move many cc-option and ld-option calls into the Kconfig stage to
       cache their results

     - Use pigz for gzip compression when available

   - Move gen_init_cpio and gen_initramfs.sh from usr/ to scripts/

   - Add a TOML configuration to scripts/container and update
     documentation accordingly

   - Add a generic, opt-in mechanism for checking that headers can
     compile standalone

   - Update machine function splitting argument for LLVM 24 rename in
     AutoFDO build

   - Miscellaneous minor clean ups, fixes, and hardening, mostly
     found/fixed via LLMs

  Kconfig:

   - Turn recursive ranges into an error

   - Fix savedefconfig for defaults that were adjusted for being out of
     range and revert a previously applied workaround

   - Improvements and hardening around integer and hexadecimal values

   - Emit a warning when selecting or implying a choice symbol, which
     has no effect

   - Emit a warning when KCONFIG_PROBABILITY is malformed

   - Introduce def_string / def_int / def_hex to mirror the existing
     def_bool / def_tristate to succinctly set a value and type at the
     same time.

   - Add cc-option-str and ld-option-str macros to act like Kbuild's
     cc-option and ld-option, returning the string when the option is
     supported, allowing many checks to be moved into Kconfig

   - Minor usability improvements to Kconfig tests"

* tag 'kbuild-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux: (59 commits)
  kbuild: AutoFDO: Update split machine function argument for upstream rename
  kbuild: Mark the initcall ordering recipe as recursive
  kbuild: Mark the gzip recipes as recursive
  localmodconfig: Explicitly report boolean configs during integrity check
  scripts/make_fit: Ignore schema checks when decomposing DTBs
  clang-tools: Import os for broken pipe handling
  kconfig: use the value argument in sym_get_near_range_bound()
  kconfig: fix infinite loop in conf_choice() when no choice value is visible
  kconfig: cleanup stale comment about 'keys' array
  kconfig: Improve ergonomics around disabling warnings with cc-option
  scripts/Kconfig.toolchain: Drop compiler symbols from dependencies
  checkkconfigsymbols.py: Parse Git status output line by line
  gen_init_cpio: stop parsing on lines with a missing argument list
  .gitignore: drop Module.markers
  .gitignore: ignore pacman package signatures
  kbuild: add header check facility as a manually run static analyzer
  Documentation: dev-tools: refer to user ID rather than id
  Documentation: dev-tools: update container.rst with config file
  scripts: add TOML config to container tool
  kconfig: tests: {old,save}defconfig: Forward dynamic keyword arguments
  ...
2026-10-21 10:45:44 -10:00
Linus Torvalds
14c8977403 It was a reasonably busy cycle for docs; changes include:
- Add the AGENTS.md symbolic link into the top-level directory in the hopes
   that LLMs will read it and produce better work.
 
 - The removal of the Assisted-by requirement, as concluded at the
   Maintainer Summit.
 
 - A new "testdocs" make target to run the documentation unit tests.
 
 - Lots of work on the Portuguese, and Chinese translations; there is now
   maintenance for the traditional Chinese translations as well.
 
 ...and the usual pile of minor fixes, documentation updates, etc.
 -----BEGIN PGP SIGNATURE-----
 
 iQFDBAABCgAtFiEEIw+MvkEiF49krdp9F0NaE2wMflgFAmrXgRMPHGNvcmJldEBs
 d24ubmV0AAoJEBdDWhNsDH5YAScH/28hCTx+pChtG42h1qHi+4zMHvJG3L7he2pG
 NxCJnrSPdYOEtdF7QW31he//D5KS0utAf3lxka3kouG/wAyFnXPi4BvSZNlq63FS
 9SSrcVfp3QZiLo/5Q8vvKX4USKLaGo6JxgI9yQBoYejUTYpfejbP+8Xu+qP3qnd8
 pPFLZGGtc4QBJveJH9F7LKJo8VcgHD8S8YdwOPUnJ5N7m1A8+ZN3JPONO6UZYQip
 3STTENdk/fNrfONuyS6URN6Z3TA8+63IpPS5u3+jfCqohxDqeHpnj0Ibsh2pVd8V
 rpz3YaOYRiMlXVe5uIXxqywf6XzdMRW34NWwB+X/F87hxQFm0Lo=
 =Sk+o
 -----END PGP SIGNATURE-----

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

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

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

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

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

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

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

* tag 'docs-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux: (125 commits)
  docs: add AGENTS.md as a symlink to README
  docs: kernel-parameters: adjust reserve_mem build option
  docs: kernel-parameters: don't mix cmdline options & build options
  docs/ja_JP: translate submitting-patches.rst (review and report tags)
  docs: remove Assisted-by references
  Revert "docs: landlock: fix ENOMSG condition in create_ruleset kernel-doc"
  docs: kdoc: parse context_lock_struct() as struct declaration
  docs: timers: hpet: Document userspace API and ioctl commands
  docs: timers: hpet: Modernize file references
  Documentation: sched-preemption: Add a SPDX license identifier
  docs: ABI: sysfs-driver-xdata: use literal blocks for console commands
  docs: ABI: sysfs-class-firmware-attributes: use literal blocks for console commands
  ABI: sysfs-bus-usb: use literal block for console commands
  docs/ABI: testing: aspeed-uart-routing: use literal block for console commands
  docs: kernel-parameters: fix a truncated sentence for preempt=lazy
  sched/doc: add a preemption model overview
  docs: ABI: TMR manager: use literal blocks for console I/O
  Documentation/ABI: IFS: use literal blocks for commands
  ABI: sysfs-bus-pci: use literal blocks for commands
  docs: translations: pt_BR: add debugging index
  ...
2026-10-20 14:38:38 -10:00
Dave Jiang
d304df5f32 Merge branch 'for-7.4/cxl-dcd' into cxl-for-next
Part 1 of DCD support. Functionality disabled.

Documentation/cxl: Document DPA partition layout and ordering rules
cxl/core: Enforce partition order/simplify partition calls
cxl/mem: Configure dynamic capacity interrupts
cxl/pci: Factor out interrupt policy check
cxl/events: Split event msgnum configuration from irq setup
cxl/cdat: Gather DSMAS data for DCD partitions
cxl/mem: Read dynamic capacity configuration from the device
cxl/mbox: Flag support for Dynamic Capacity Devices (DCD)
2026-10-13 09:01:39 -07:00
Takashi Sakamoto
aa7f13e25c firewire: core: add kerneldoc for inbound transaction-related symbols
The core provides helper functions and structures for handling
transaction requests to local address regions.

Add kerneldoc comments for these symbols.

Link: https://lore.kernel.org/r/20261013111509.612518-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2026-10-13 20:15:09 +09:00
Takashi Sakamoto
7a8db81dbd firewire: core: add kerneldoc for outbound transaction-related symbols
The core provides helper functions and structures for initiating
asynchronous transactions.

Add kerneldoc comments for these symbols.

Link: https://lore.kernel.org/r/20261013111509.612518-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2026-10-13 20:15:08 +09:00
Anisa Su
e4478834aa Documentation/cxl: Document DPA partition layout and ordering rules
DC Partitions complicate DPA ordering. Add a DPA Partitions section to
cxl-driver.rst describing spec-mandated and Linux requirements for the
layout.

maturity-map.rst breaks the DCD entry into sub-items so the map shows
what this series lands: partition enumeration is [1], event handling
and DC-backed DAX regions remain [0] until the follow-on series enables
them. The parent stays [0]; nothing is usable yet.

Suggested-by: Gregory Price <gourry@gourry.net>
Signed-off-by: Anisa Su <anisa.su@samsung.com>
Tested-by: Wonjae Lee <wj28.lee@samsung.com>
Tested-by: Junhee Park <jh9934.park@samsung.com>
Tested-by: Heesoo Kim <habil.kim@samsung.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Gregory Price (Meta) <gourry@gourry.net>
Link: https://patch.msgid.link/20261010225852.10727-9-anisa.su@samsung.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
2026-10-12 09:44:52 -07:00
Vinod Koul
fa89be96e8 docs: dmaengine: clarify ordering rules around cookie completion
Sashiko pointed in [1] about the cookie completion order. It is good to
Document that for ensuring that dma buffer is flushed and no stale data
is seeing by consumer, we need to make sure such action is taken before
drivers invoke dma cookie completion.

[1]: https://lore.kernel.org/r/20260917072507.5BDB61F000FF@smtp.kernel.org

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://patch.msgid.link/20261009093745.539924-1-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2026-10-11 21:32:55 +01:00
Leon Romanovsky
1319b08586 PCI/P2PDMA: Update DMABUF lifecycle docs after move_notify() rename
Commit 95308225e5 ("dma-buf: Rename dma_buf_move_notify() to
dma_buf_invalidate_mappings()") left the DMABUF section of the P2PDMA
documentation pointing at move_notify(), a symbol that no longer exists.
Readers grepping for it find nothing, and this is the only place in
Documentation/ describing the revocation requirement.

Name the current function and record that importers which cannot unmap
within bounded time have to be rejected at attach time, which is what makes
the synchronous unmap on remove() achievable.

Fixes: 95308225e5 ("dma-buf: Rename dma_buf_move_notify() to dma_buf_invalidate_mappings()")
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Link: https://patch.msgid.link/20260830-doc-p2p-move-v1-1-61a388620588@nvidia.com
2026-10-09 14:13:23 -05:00
Bogdan Mahomet
ef399305a5 docs: dmaengine: document ownership of the descriptor flags field
The flags field of struct dma_async_tx_descriptor has carried a TODO
since the provider documentation was added in 2014, asking whether a
driver may modify the field itself or whether it must always hold the
flags passed in the arguments.

The field belongs to the client. dma_async_tx_descriptor_init() does
not touch it, so the provider has to set it, and providers store the
flags they were given verbatim; vchan_tx_prep() does this for every
driver built on top of virt-dma. Afterwards providers only read the
field: the DMA_PREP_* bits are consumed while the descriptor is being
prepared, and DMA_CTRL_ACK and DMA_CTRL_REUSE are tested with
async_tx_test_ack() and dmaengine_desc_test_reuse() before a
descriptor is recycled or freed.

Once a descriptor has been prepared, nothing in the tree changes the
field except the client helpers in include/linux/dmaengine.h:
async_tx_ack(), async_tx_clear_ack(), dmaengine_desc_set_reuse() and
dmaengine_desc_clear_reuse().

Document that rule in place of the TODO.

Signed-off-by: Bogdan Mahomet <bogdan.mahomet.dev@gmail.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260822001536.29269-1-bogdan.mahomet.dev@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2026-10-05 16:12:30 +02:00
Jesse Jeronimus
d220c9443d
Documentation: devres: Remove non-existent SPI register helpers
Commit 9b894d65e9 ("Documentation: devres: add missing SPI helpers")
added devm_spi_register_host() and devm_spi_register_target() to the
list of managed interfaces. These functions do not exist and never
existed in the tree. The only managed SPI register helper is
devm_spi_register_controller(), which is already in the list.

Remove the two entries.

Fixes: 9b894d65e9 ("Documentation: devres: add missing SPI helpers")
Signed-off-by: Jesse Jeronimus <jesse.jeronimus@gmail.com>
Link: https://patch.msgid.link/20261002110752.89529-1-jesse.jeronimus@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-02 12:42:19 +01:00
Nicolas Schier
33bef82263
kbuild: Move gen_init_cpio and gen_initramfs.sh to scripts/
gen_init_cpio and gen_initramfs.sh are part of kbuild and required for
all kernel builds w/ CONFIG_BLK_DEV_INITRD.  Move both to scripts/ to be
more clear about their importance.

Link: https://lore.kernel.org/all/aSdrCFkUQup3qb-q@derry.ads.avm.de/
Reviewed-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Nicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20260928-move-gen_init_cpio-to-scripts-v4-2-f437a33c40ac@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
2026-09-29 22:40:23 +02:00
Bart Van Assche
cfce1dc635 ata: libata: Fix scsi_done() documentation
In 2008 the SCSI core was converted to use the block layer timeout
infrastructure instead of its own infrastructure (see also patch
"block: unify request timeout handling"). Since then, calling
scsi_done() while SCSI host recovery is in progress has no effect.
Originally the REQ_ATOM_COMPLETE flag was used to prevent double
completions. Today the SCMD_STATE_COMPLETE flag is used to prevent
double completions.

Instead of mentioning that calling scsi_done() is not allowed while
host recovery is in progress, mention that it has no effect.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/291519238580d795929d44437f3c863403d14e1f.1790359497.git.bvanassche@acm.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
2026-09-29 10:56:51 +02:00
Shawn Lin
d0d409fc6c docs: mmc: fix stale async request documentation
mmc-async-req.rst still documents interfaces that no longer exist:

 - mmc_start_req() was renamed to mmc_start_areq() by commit c3399ef55d
  ("mmc: core: rename mmc_start_req() to *areq()") and then removed together
  with the rest of the asynchronous request machinery when the block driver
  switched to blk-mq, by commits 81196976ed ("mmc: block: Add blk-mq support")
  and 126b627003 ("mmc: core: Remove code no longer needed after the switch to blk-mq").

 - mmc_blk_issue_rw_rq() was removed by commit 0fbfd12518
   ("mmc: block: Remove code no longer needed after the switch to blk-mq"),
   and was replaced by mmc_blk_mq_issue_rw_rq().

 - The is_first_req argument of the ->pre_req() callback was dropped by
   commit d3c6aac3bd ("mmc: delete is_first_req parameter from pre-request callback"),
   so the "Optimize for the first request" section is obsolete as well.

 - The Linaro wiki page holding the IOZone/mmc_test measurements no longer exists.

Update the document to describe the current request lifecycle: mmc_pre_req(),
mmc_start_request(), mmc_wait_for_req() and mmc_post_req()), and drop the sections
describing the long-gone interfaces and the dead link.

Signed-off-by: Shawn Lin <shawn.lin@linux.dev>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-09-28 18:09:35 +02:00
Shawn Lin
80aa4f00b2 docs: mmc: document eMMC health status support in mmc-tools
mmc-utils added eMMC health status support, add a line for
reference.

Signed-off-by: Shawn Lin <shawn.lin@linux.dev>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-09-28 18:09:35 +02:00
Shrikanth Hegde
9a8e740ee9 virt: Introduce steal governor driver
Introduce a new driver in virt named steal_governor. This driver
will compute the steal time and drive the policy decisions regarding the
preferred CPU state.

Note that this driver is strictly intended for actual guests. Hence
block it on Xen dom0.
More details can be found in Documentation/driver-api/steal-governor.rst.

A new kconfig called STEAL_GOVERNOR is introduced in subsequent patches,
which enables this driver. This driver will select CONFIG_PREFERRED_CPU.
This makes configs driven by user preference/configuration.
When the driver is disabled, preferred CPUs remain the same as active CPUs.

The file layout of the driver is kept simple for now. The code is in
drivers/virt/steal_governor.c, and the configs are part of
drivers/virt/Kconfig.

The main structure of the steal governor contains:
- work, delay: Deferred periodic work function variables.
- steal, time: Used to calculate deltas during periodic work.
- interval_ms, high_threshold, low_threshold: Tuning knobs for the
  steal governor.

While there, add MAINTAINERS entry for this new driver.

Suggested-by: Yury Norov <yury.norov@gmail.com>
Suggested-by: K Prateek Nayak <kprateek.nayak@amd.com>
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260928053728.797539-11-sshegde@linux.ibm.com
2026-09-28 08:44:43 +02:00
Uwe Kleine-König (The Capable Hub)
a0ffa28e87 serial: 8250: Make uart_match_port() a 8250 specific function
The 8250 driver conglomerate is the only user of uart_match_port() and
in fact it already is 8250 specific as it uses hub6_match_port() which
is defined in drivers/tty/serial/8250/8250_hub6.c unless the dummy
implementation is in use.

Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/be86d77ed317b0e77249c9a2f4d68780c1f60f90.1786697789.git.u.kleine-koenig@baylibre.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-09-23 14:43:00 +02:00
David Matlack
573f39cdf7 vfio: selftests: Add documentation
Add documentation for VFIO selftests in driver-api/vfio-selftests.rst,
include it in the driver-api index, and update MAINTAINERS.

Since VFIO selftests was introduced it has expanded to include a helper
library (libvfio), driver-level abstractions for triggering hardware DMA
and interrupts, multiple IOMMU execution modes, dynamic IOVA allocation,
and native integration into KVM selftests. Dedicated documentation
should be helpful to guide kernel developers on writing tests, setting
up devices, running tests, and understanding the helper library.

Assisted-by: Gemini:3.1-Pro
Signed-off-by: David Matlack <dmatlack@google.com>
Link: https://lore.kernel.org/r/20260903183814.2111748-1-dmatlack@google.com
Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-09-22 18:56:52 -06:00
Mehmet Fide
fc291104d0 gpiolib: add get_config() and gpiochip_generic_get_config()
A chip with a pin control backend sets a line's configuration through
set_config() and gpiochip_generic_config(), but has no way to read one
back. gpio-mmio needs that to learn the direction of a line whose
direction lives in the pin controller.

Add the optional get_config() callback, taking the packed parameter to
query and returning its bare argument the way pinctrl_gpio_get_config()
does, and gpiochip_generic_get_config() as the pin control backed
implementation, the mirror of gpiochip_generic_config(): a chip without
pin ranges, or a kernel without pinctrl, gets -ENOTSUPP.

Nothing in gpiolib calls get_config() and there is no consumer API; it
is for the chip's own use.

Suggested-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Mehmet Fide <mehmet.fide@screeningeagle.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Link: https://patch.msgid.link/20260915080501.329424-4-mehmet.fide@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-09-21 11:14:49 +02:00
Sakari Ailus
5bf928d12d media: Documentation: Improve pixel rate calculation documentation
Improve documentation on calculating the pixel rate, by adding references
to relevant functions and mentioning V4L2 fwnode endpoint instead of OF
endpoint.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
2026-09-17 12:14:53 +03:00
Karl Mehltretter
3cdc47b3f2 Documentation: rs485: Pull uart_get_rs485_mode() from serial_core.c
serial-rs485.rst asks include/uapi/linux/serial.h for both struct
serial_rs485 and uart_get_rs485_mode(). The function and its kernel-doc
comment live in drivers/tty/serial/serial_core.c, so the directive has
never rendered it and the section shows only the structure.

Add a second directive for serial_core.c.

Fixes: 0f4648a1a6 ("Documentation: rs485: Mention uart_get_rs485_mode()")
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <20260905083648.39026-1-kmehltretter@gmail.com>
2026-09-07 09:51:10 -06:00
Karl Mehltretter
40b2f901d6 Documentation: reset: Use fwnode_reset_simple_xlate() in the kernel-doc directive
reset.rst asks drivers/reset/core.c for of_reset_simple_xlate(). Commit
9035073d0e ("reset: convert reset core to using firmware nodes")
replaced it with fwnode_reset_simple_xlate(). Since then the directive
finds nothing for it and the default translation helper is missing from
the rendered controller API section.

Use the current name.

Fixes: 9035073d0e ("reset: convert reset core to using firmware nodes")
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <20260905085211.40286-1-kmehltretter@gmail.com>
2026-09-07 09:49:54 -06:00
Manuel Ebner
31e7eb7e38 Documentation: gpio: Fix bracket
Balance parentheses.

Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260903155345.733244-2-manuelebnerli@mailbox.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-09-07 10:37:15 +02:00
Miquel Raynal
63489002d3 mtd: spi-nor: Refactor Read Status/Write Status support
SPI NOR has a lot of history. Additions over additions, the subtleties
of the JESD216 specification, their implementations by the manufacturers
and the hardware mistakes have generated a gigantic maze, let's try to
understand what is really needed.

The specification explains the QE (Quad Enable) bitfield as describing
where the bit to enable the Quad capability is, but also how to set
it. Unfortunately, the specification is not precise about what opcodes
are supported exactly in all the cases. There is an introduction that
basically states:
- Opcode 0x05 reads SR1
- Opcode 0x35 reads SR2
- Opcode 0x01 writes SR1, and then SR2 if another byte is written

Then the bitfield, among indicating the location of the QE bit, may
indicate:
- Reading SR1 and SR2 in one operation is not possible (loops over the
  content of SR1)
- Reading SR2 directly is possible
- Only writing SR1 zeroes SR2.

One problem with the current implementation, is that it only focuses on
the QE bit. A quad_enable function was created for each case, even
though in practice, the logic was always the same: read, modify, write,
read back and verify. One problem comes when other features need to play
with the status registers, like software block protection or OTP: you
never know how to properly handle the QE bit, nor where it is, nor how
to read/write the Status registers. This lead to
approximations/guessing (in swp.c, otp.c and obviously in legacy
controller drivers like atmel.c) but also to the implementation of a
gazillon of helpers for reading/writing/checking the status registers.

In addition, I believe some design decisions had a negative impact over
the years.

- All possible situations had to be flagged by the core. This is likely
  wrong, because we no longer know why we need specific quirks. It was
  ineherent to the state of the SPI NOR core before the great cleanup
  that had happened the past few years. I believe this creates confusion
  in the core today, and we should push this to vendor fixups
  instead. As an example, in 2023 Hsin-Yi was facing an issue because
  his chip was setting the wrong QER value, leading to RDCR being
  prevented, thus falling into a condition blindly setting a random QE
  bit (I strongy believe it is done like that for wrong reasons). His
  chip actually had RDCR support! The correct fix should have been to
  mark the capability in a device fixup instead of handling this in the
  core.

  Link: https://lore.kernel.org/lkml/CAJMQK-hR0eaO0b4Vd0U8_KAndLyZapqdHjVLAoe42rWi9rdLkA@mail.gmail.com/

- SFDP parsing is over cautious. I believe
  BFPT_DWORD15_QER_SR2_BIT1_NO_RD is abusive (nothing states that RDCR is
  not supported), and BFPT_DWORD15_QER_SR2_BIT1 is also out of
  specification when forcing 16-bit Status writes.

- SNOR_F_HAS_16BIT_SR is only imposing 16bit Status writes, whereas
  reads can still be 8-bit wide.

- The usage of helpers verifying the writes was also spread for IMHO no
  really good reason. Why shouldn't we trust spi operations when it
  comes to Status Registers? We do not read back our page reads, so why
  status registers should be treated with so much care, if it's not
  because we are unsure of what is being done? My proposal includes a
  check when it comes to the QE bit (done once) but we don't need these
  checks otherwise. If the QE bit was written properly, there are high
  chances that the other register accesses will just be fine, no?

Asde from my main quest, I also observed no good reason to ask the
read/write status register callers to use nor->bouncebuf while the
low-level helpers could do it themselves (we are talking about one or
two bytes being copied).

So after these observations, my proposal is the following:
- Create private low level helpers that just read or write a status
  register. They are flexible, we can give the opcode (which varies
  based on the SFDP QER field) and the length (1 or 2).
- Create public generic accessors which will be used to read/write sr1
  and/or sr2. This is where all the cleverness shall be. The helpers use
  the available opcodes for a given chip in order to fullfill the
  request.
- Provide a single generic ->quad_enable() hook which generically does
  all the steps mentioned above (read, modify, write, read back and
  verify).
- Create a list of opcodes for all 6 possible situations:
  {read, write} {sr1, sr2, sr1 and sr2}. These opcodes are
  filled/cleared based on the QER field. An opcode set to 0 indicates
  the absence of support (there is no 0x00 opcode in SPI NOR).

I tried my best to analyze the current behavior and to mimic it as much
as possible, but this is a risky cleanup. However, if we go for this, it
will be *much* easier in the future to handle all kind of chip
variations. We won't be limited to a couple of flags anymore, but rather
we'll be able to just disable a read or write capability using a single
line.

Known deviations:
- The Atmel manufacturer driver drives non SFDP chips which by default
  were receiving the HAS_16B_WR flag, forcing SR2 writes all the times,
  but it was deliberately making single bytes writes to SR1 for its
  locking operations. The flag is likely wrong for them, so I removed
  it.
- I am proposing on purpose a single quad_enable helper. It should match
  all the cases, with 1 identified difference which I believe is
  harmless: in the SR2_BIT7 case, the helper would make an extra SR1
  read/write which was not done before. This entry explicitly supports
  reading and writing the two registers. Note: no manufacturer has been
  identified to actually use that entry yet.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07 09:45:20 +02:00
Manuel Ebner
960909d2c6 docs: pwm: Fix bracket and punctuation
Remove needless '(' and fix comma splice.

Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260904122005.760299-2-manuelebnerli@mailbox.org
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2026-09-05 10:13:29 +02:00
Manuel Ebner
60b9d29969 thermal: docs: cpu-idle-cooling.rst: Drop unbalanced paren
Remove needless '(' from equation.

Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
[ rjw: Subject adjustments ]
Link: https://patch.msgid.link/20260903160751.734704-2-manuelebnerli@mailbox.org
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2026-09-04 18:00:19 +02:00
Manuel Ebner
f0f38b3d07 cxl: docs/platform/acpi: Fix brackets
Add '}' and fix indentation.

Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260903095445.729419-2-manuelebnerli@mailbox.org
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
2026-09-03 09:52:06 -07:00
Manuel Ebner
635e425c07 docs: dmaengine: Fix bracket
Add missing ')' to sentence.

Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org>
Link: https://patch.msgid.link/20260903095545.729607-3-manuelebnerli@mailbox.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2026-09-03 19:02:13 +05:30
Linus Torvalds
3382bfbca5 More ACPI support updates for 7.3-rc1
- Update MAINTAINERS, CREDITS and ACPI subsystem documentation to
    reflect recent changes in the upstream ACPICA project (Rafael
    Wysocki)
 
  - Prevent the core ACPI enumeration code from combining device
    resources that overlap completely in order to avoid resource
    conflicts during platform device registration because there are
    drivers that expect such resources to be present (Rafael Wysocki)
 
  - Defer device power initialization during ACPI-based device
    enumeration to the point when the given device is known to be present
    and functional and all of its dependencies have been met (Peixin Xie)
 
  - Fix bus ID cleanup on device_add() failures during ACPI device object
    registration (Hongyan Xu)
 
  - Introduce a new helper function for looking up the primary "physical"
    device for a given ACPI device object and update the core ACPI device
    enumeration code to use that function (Rafael Wysocki)
 
  - Protect all battery properties with a separated mutex in the ACPI
    battery driver to prevent race conditions from occurring and avoid
    evaluating the _BST ACPI control method multiple times in parallel
    for the same battery device (Rong Zhang)
 
  - Add DMI quirk for the Razer Blade Pro 17 early 2020 lid switch to the
    ACPI button driver (Robin Everaars)
 
  - Convert fixed clock rates in the ACPI driver for AMD SoCs (APD) to
    use HZ_PER_MHZ and add a clock frequency for the HJMC01 I2C
    controller to it (Hongnan Li and Xiangyang Yu)
 
  - Fix a stack buffer overflow in query_capability() in the ACPI
    platform firmware runtime update driver (Anirudh Prasad)
 -----BEGIN PGP SIGNATURE-----
 
 iQFGBAABCAAwFiEEcM8Aw/RY0dgsiRUR7l+9nS/U47UFAmqPL0oSHHJqd0Byand5
 c29ja2kubmV0AAoJEO5fvZ0v1OO1RrYH/AgB9tvwsenlB1jp2JxOqZhzuaKezH66
 wRAddLVPg4Goc6XV6EUFZZi47PpAbgUPvRFhxBXu8oxY4W9g8Ak3BKxAefcjH2Gh
 WhGxAo51Be/4PskO47e29CUf1pWlMD9QeffIxBFqB5uqJ48/E2WDdstsR8tUazKL
 6n7APE9udaL/xNAvGvgXEmhrj6hdhMhQfiQISOrcHGtbNd1AIsVrfC4BRi/qCjdv
 s385YtkAtY0xgfu3s6HmjtUQxJ0Isse5dhgDCC5cb05pFxItPqmCPgUY8VYCWqml
 07EfplwaOBBv9IxAuBTyB9gl7E/WDxg9cVTPy6Hm2TZ9PeIFXK2NvI4=
 =Jtbh
 -----END PGP SIGNATURE-----

Merge tag 'acpi-7.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull more ACPI support updates from Rafael Wysocki:
 "These update documentation to reflect recent changes in the upstream
  ACPICA project, fix issues in the core ACPI device enumeration code
  (one of which has been introduced recently), improve the primary
  "physical" device lookup for ACPI device objects in that code, and
  update ACPI device drivers:

   - Update MAINTAINERS, CREDITS and ACPI subsystem documentation to
     reflect recent changes in the upstream ACPICA project (Rafael
     Wysocki)

   - Prevent the core ACPI enumeration code from combining device
     resources that overlap completely in order to avoid resource
     conflicts during platform device registration because there are
     drivers that expect such resources to be present (Rafael Wysocki)

   - Defer device power initialization during ACPI-based device
     enumeration to the point when the given device is known to be
     present and functional and all of its dependencies have been met
     (Peixin Xie)

   - Fix bus ID cleanup on device_add() failures during ACPI device
     object registration (Hongyan Xu)

   - Introduce a new helper function for looking up the primary
     "physical" device for a given ACPI device object and update the
     core ACPI device enumeration code to use that function (Rafael
     Wysocki)

   - Protect all battery properties with a separated mutex in the ACPI
     battery driver to prevent race conditions from occurring and avoid
     evaluating the _BST ACPI control method multiple times in parallel
     for the same battery device (Rong Zhang)

   - Add DMI quirk for the Razer Blade Pro 17 early 2020 lid switch to
     the ACPI button driver (Robin Everaars)

   - Convert fixed clock rates in the ACPI driver for AMD SoCs (APD) to
     use HZ_PER_MHZ and add a clock frequency for the HJMC01 I2C
     controller to it (Hongnan Li and Xiangyang Yu)

   - Fix a stack buffer overflow in query_capability() in the ACPI
     platform firmware runtime update driver (Anirudh Prasad)"

* tag 'acpi-7.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: button: Add DMI quirk for Razer Blade Pro 17 early 2020 lid switch
  ACPI: scan: Do not combine resources that overlap completely
  ACPI: Update upstream ACPICA repository URL in documentation
  ACPI: Update MAINTAINERS entry for ACPICA
  ACPI: Add Bob Moore to CREDITS
  ACPI: pfr_update: fix stack buffer overflow in query_capability()
  ACPI: scan: Defer device power initialization
  ACPI: APD: Add clock frequency for HJMC01 I2C controller
  ACPI: APD: Convert fixed clock rates to use HZ_PER_MHZ
  ACPI: scan: Use acpi_bus_get_primary_device()
  ACPI: platform: Use acpi_bus_get_primary_device()
  ACPI: bus: Introduce acpi_bus_get_primary_device()
  ACPI: scan: fix bus ID cleanup on device_add() failures
  ACPI: battery: Protect all properties with a separated mutex
2026-08-26 14:06:08 -07:00
Linus Torvalds
502d45774a Mostly the usual clk driver updates and new SoC additions plus non-critical
data fixes for things that weren't used yet. One thing that's new here in the
 core is SSC spread spectrum support (SSC) in the clk provider API. The idea is
 that DT authors will configure SSC for certain clks and they'll be configured
 at clk provider registration time or when a consumer device is probed, similar
 to how we handle assigned clk rates or parents.
 
 On the clk driver side we have Qualcomm adding almost half the diff because
 they add support for 4 different SoCs and then a long tail of other SoCs like
 Mediatek, Renesas, Rockchip, SpaceMiT, etc. add more SoC support this time
 around. Luckily it's mostly clk data for these new SoCs because the actual
 clk_ops are already there. Beyond the new drivers we get all the little fixups
 for more compilation coverage or usage of more modern APIs. That all looks
 normal.
 
 Finally, I kinda buried the lead, I'm bringing on Brian and Jerome to help out
 with maintaining the clk subsystem. The current working model is already
 semi-distributed in that silicon vendors typically take care of their drivers
 and send me pull requests but I'm becoming a bottleneck for new drivers and
 core framework review because this has become a 100% volunteer effort on my
 part. Mike is stepping down after all these years (thanks Mike!) and that jump
 started the conversation around finding co-maintainers. Brian and Jerome have
 graciously offered to help me with the work load, meaning in the future they'll
 be sending pull requests and committing directly to the clk.git tree. They've
 both been around on the list for a while, I've met them both in person, and
 they've been making changes to the core clk framework along with helping review
 patches so I'm pretty confident this will work well.
 
 Core:
  - devm_clk_bulk_get_enable() consumer API
  - devm_clk_hw_register_composite_pdata() provider API
  - Spread Spectrum Clock (SSC) support via DT bindings and provider APIs
  - Divider clk rounding improved (and tested)
 
 New Drivers:
  - Cix Sky1 audio subsystem (AUDSS)
  - UltraRISC DP1000
  - MediaTek MT8173 MFG_TOP
  - Si549
  - Aspeed AST2700 PECI
  - Airoha EN7523 PCIe
  - Rockchip RV1106
  - Mobileye EyeQ7H
  - Qualcomm Maili GCC, TCSR, RPMh, and video clks
  - Qualcomm Shikra GCC, RPM, GPU, display, and audio clks
  - Qualcomm Nord display and graphics clks
  - Qualcomm Glymur camera and EVA clks
  - Qualcomm Hawi video clks
  - Amlogic A9 AO and peripheral clks
  - Renesas R-Car X5H (R8A78000) CPG
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmqPGK4UHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSXB+g/+O8McZyE7kqNPiz8nQNQq9YwzO9uB
 /5LkNUUvvxhzJ9YEcXx8HCkmUcAks+kMCHzrZ/gxAN6BQGv9qrTChZZD2ZmD8e50
 nj3IxyvN51PwRk5ley1PEsUILrnOqRpY6g83arnFppTP2aU/NxFFGjc5u+5qlIT4
 f0xj2sJ0H96Ykw+brSJgEj9MXJHMEKerEqBmaDd0boHavDV3YkT/HxRrjy3WH/sE
 FBAdq6sOAEX3qnNwsF9debrfg1nKJGH2U8ecb1JThlAufn8yHvC+mxr3P4USxdov
 xGhDkvKbS+9nkbxeL1LOhnoReOWqNBGQg9qmadQKTrPEu/BAOb8nG62xpucIgLSl
 6X3AACRzEE8u8Thaboz+cvQluQfOo667xz5X+bpTsQjfQuq4Yh0F4pO6pLmLd+LT
 NdOzbQctglbpwHbXIxXQftg+Fnk1bgERILW64DU9mUqXzSJJG9uzv+Ne5R0TTXJp
 TMRTp/o8o4Fclr1WB73wES523xpf7VltPfUw5XL9UN2xCCY5TI2bpHQwgfmkz/6J
 nHmxNBBK19qlNFzDovN1gfgwn9XVDLmT7YVSw0El24kINHs7rYXuGc++OX+LmUb3
 r19QxJXU8ESV89ZGJYhnaSOKrCj1d4W49AkVqovvJXXYxxlFTab1ox8xKnhUlxGH
 SGDC+kZah2zUl7A=
 =iYa8
 -----END PGP SIGNATURE-----

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

Pull clk updates from Stephen Boyd:
 "Mostly the usual clk driver updates and new SoC additions plus
  non-critical data fixes for things that weren't used yet.

  One thing that's new here in the core is SSC spread spectrum support
  (SSC) in the clk provider API. The idea is that DT authors will
  configure SSC for certain clks and they'll be configured at clk
  provider registration time or when a consumer device is probed,
  similar to how we handle assigned clk rates or parents.

  On the clk driver side we have Qualcomm adding almost half the diff
  because they add support for 4 different SoCs and then a long tail of
  other SoCs like Mediatek, Renesas, Rockchip, SpaceMiT, etc. add more
  SoC support this time around. Luckily it's mostly clk data for these
  new SoCs because the actual clk_ops are already there. Beyond the new
  drivers we get all the little fixups for more compilation coverage or
  usage of more modern APIs. That all looks normal.

  Finally, I kinda buried the lede, I'm bringing on Brian and Jerome to
  help out with maintaining the clk subsystem. The current working model
  is already semi-distributed in that silicon vendors typically take
  care of their drivers and send me pull requests but I'm becoming a
  bottleneck for new drivers and core framework review because this has
  become a 100% volunteer effort on my part.

  Mike is stepping down after all these years (thanks Mike!) and that
  jump started the conversation around finding co-maintainers. Brian and
  Jerome have graciously offered to help me with the work load, meaning
  in the future they'll be sending pull requests and committing directly
  to the clk.git tree. They've both been around on the list for a while,
  I've met them both in person, and they've been making changes to the
  core clk framework along with helping review patches so I'm pretty
  confident this will work well.

  Core:
   - devm_clk_bulk_get_enable() consumer API
   - devm_clk_hw_register_composite_pdata() provider API
   - Spread Spectrum Clock (SSC) support via DT bindings and provider APIs
   - Divider clk rounding improved (and tested)

  New Drivers:
   - Cix Sky1 audio subsystem (AUDSS)
   - UltraRISC DP1000
   - MediaTek MT8173 MFG_TOP
   - Si549
   - Aspeed AST2700 PECI
   - Airoha EN7523 PCIe
   - Rockchip RV1106
   - Mobileye EyeQ7H
   - Qualcomm Maili GCC, TCSR, RPMh, and video clks
   - Qualcomm Shikra GCC, RPM, GPU, display, and audio clks
   - Qualcomm Nord display and graphics clks
   - Qualcomm Glymur camera and EVA clks
   - Qualcomm Hawi video clks
   - Amlogic A9 AO and peripheral clks
   - Renesas R-Car X5H (R8A78000) CPG"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (269 commits)
  clk: microchip: mpfs: fix regmap_update_bits() mask/val order
  clk: visconti: Make sure clk_init_data is fully initialized
  clk: ti: Make sure clk_init_data is fully initialized
  MAINTAINERS: Add Brian Masney and Jerome Brunet as co-maintainers for clk subsystem
  Drop Michael Turquette's clk maintainer entry
  clk: ti: composite: resolve parent clocks by DT index, not by name
  clk: ti: mux: resolve parent clocks by DT index, not by name
  clk: devres: fix cleanup in devm_clk_get_optional_enabled_with_rate()
  dt-bindings: clock: ti,keystone-gate: Convert to DT schema
  dt-bindings: clock: ti: Convert APLL clock to DT schema
  clk: zynq: pll: Fix kernel-doc after determine_rate() conversion
  dt-bindings: clock: ti,clockdomain: Convert to DT schema
  dt-bindings: clock: Correct white-space style
  clk: samsung: Don't include <linux/mod_devicetable.h>
  clk: at91: Read "reg" with helper
  clk: renesas: Add R-Car X5H CPG driver
  clk: rockchip: rk3576: fix source muxes for SPI0..SPI4
  clk: rockchip: Add clock controller for the RV1106
  dt-bindings: clock: rockchip: Add RV1106 CRU support
  dt-bindings: clock: Document Renesas R-Car X5H Clock Pulse Generator
  ...
2026-08-26 11:14:30 -07:00
Linus Torvalds
a5218c6474 power sequencing updates for v7.3-rc1
- rename pwrseq_power_on/off() to pwrseq_enable/disable() tree-wide
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmqOn6AACgkQBZ0uy/82
 hMMikg/9Hmh3JJ8mx9o3BYTDRRJXsTcuvIGH7zdjYNqgt8wOrBjqqF3dMn8XMBUJ
 N/jAjXeUogToXN50htKgMDiVDvJHHnEOVVEu9/jXSBx96Oesq0TNfdBfhOgYx1a7
 H1dtstw0JHxHWmt8P+q0p0Bm6dS3dMS7/YBZA91ACodYS1imqMfxAk4Z5Wemv6uQ
 1yqjuJNLQ3/8YCXW3t3CT+BPbO6PHWSF+6lL9tuSvWMQU6roUdLS99bExJADNAa9
 kIHN/5c0kSAfqkp/LQCpTkA1upeaU3eZbYVBVOjmqhdTczKGAD5P8/LRMHFf4/oz
 sx7Yai8d62owP21GxZ7mDnmOLLKWBkTEVENFkOduvDqg2rLNR+Mi5qu0apinmvaA
 ZuhnuGRYhJ6YaT+cJMkIEchDdTEsbzFcN7l4T47HwJ2pdBQ2Mi3V5YuJO69wEPaY
 5eNa+CrMOw58OD0McYbWH26pKxbba93ihDZRyT/uuu+pijs/4iF3xBhC0D1zpK9p
 iV4bfnRHn5r5iePO/8aT270CX+0zy1mQc3gEduUbhs9oy6x3juvMd9huV0aprdhe
 iNWQYZhehfq2YVRcnSDfOH9FPgCk1ERnlGXNiEAAvwHzlcqNJg6xTbGQRiaexmEc
 H26qFD+WBMW/173aF/I93H2IIu7FdvRxmf1s0lsVKyaqeV73BkI=
 =6NL2
 -----END PGP SIGNATURE-----

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

Pull another power sequencing update from Bartosz Golaszewski:
 "A single tree-wide rename of two of the public functions to better
  reflect their actual semantics:

   - rename pwrseq_power_on/off() to pwrseq_enable/disable() tree-wide"

* tag 'pwrseq-updates-for-v7.3-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  power: sequencing: rename pwrseq_power_on/off() to pwrseq_enable/disable()
2026-08-26 08:45:09 -07:00
Bartosz Golaszewski
d51fc9d4cd power: sequencing: rename pwrseq_power_on/off() to pwrseq_enable/disable()
The way power sequencing works means that a call to pwrseq_power_on()
does not necessarily result in the pwrseq target being powered-on at
that time: it may have already been powered on before. Similarly: a call
to pwrseq_power_off() does not have to result in an actual powering off
of resources: there may still be other users that requested a power-on
before.

We will also introduce the concept of "non-controllable" pwrseq targets
soon which further increases the disconnect between the naming
convention and the actual semantics.

What consumers of pwrseq descriptors actually do is: they *vote* for a
powering on of a given target or retract that vote. These operations
could be called get/put in line with runtime PM but this could become
confusing since we already provide pwrseq_get/put() for a different
purpose. pwrseq_vote_on/off() also have been rejected as unusual in
the tree.

Change the name of the two functions to pwrseq_enable/disable() which
better reflects their purpose and semantics and also mirrors other
enable-counted resources like regulators and clocks. No functional change
intended.

If at any point users need to know *when* the exact power event happens,
we can provide that information in the form of a notifier.

Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Acked-by: Alessio Belle <alessio.belle@imgtec.com> # imagination
Link: https://patch.msgid.link/20260731-pwrseq-vote-rename-v3-1-44e60b8be053@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-08-26 10:05:45 +02:00
Linus Torvalds
93e4b3076b Char/Misc/IIO/etc driver update for 7.3-rc1
Here is the big set of char, misc, iio, counter, fpga, and other small
 driver subsystems for 7.3-rc1.
 
 Overall, due to some driver removals we only added a bit more code than
 removed, which was a nice change.  Highlights in this merge request are:
   - Loads of IIO driver updates and additions
   - binder driver updates (more on that below...)
   - Removal of the SGI XP and GRU drivers as they are not used anymore
     and turn out to be pretty insecure overall
   - Removal of the obsolete ibmasm driver as it's not being used anymore
   - Coresight driver updates and additions
   - Mei driver udpates
   - Counter driver updates
   - FPGA driver updates
   - ICC driver updates
   - lots and lots of other tiny driver updates to resolve reported
     issues
 
 All of these have been in linux-next for a while, with the only reported
 issues being some major merge conflicts.  Miguel pointed out some of
 these with the Rust tree merge, which is the majority of them.  I'll
 follow up with a diffstat of the merge resolution I made against your
 most recent tree, which works for me.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCao143A8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymtUgCeKB62gT1JfA86cg3NDB1opp+10N0An3oBBegQ
 IJLqJgK45dTNtMGBwGFV
 =68af
 -----END PGP SIGNATURE-----

Merge tag 'char-misc-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc/IIO/etc driver updates from Greg KH:
 "Here is the big set of char, misc, iio, counter, fpga, and other small
  driver subsystems for 7.3-rc1.

  Overall, due to some driver removals we only added a bit more code
  than removed, which was a nice change. Highlights in this merge
  request are:

   - Loads of IIO driver updates and additions

   - binder driver updates (more on that below...)

   - Removal of the SGI XP and GRU drivers as they are not used anymore
     and turn out to be pretty insecure overall

   - Removal of the obsolete ibmasm driver as it's not being used
     anymore

   - Coresight driver updates and additions

   - Mei driver udpates

   - Counter driver updates

   - FPGA driver updates

   - ICC driver updates

   - lots and lots of other tiny driver updates to resolve reported
     issues

  All of these have been in linux-next for a while"

* tag 'char-misc-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (513 commits)
  iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF
  iio: adc: pac1921: fix wrong channel used in trigger handler read
  iio: light: gp2ap002: re-enable irq if runtime suspend fails
  iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes
  iio: light: apds9306: fix PM reference leak in apds9306_read_data()
  iio: gyro: mpu3050: fix sign of raw angular velocity readings
  iio: srf04: fix pm_runtime handling on probe error path
  iio: adc: ad4080: configure backend data size
  iio: adc: adi-axi-adc: add data size support for AD408X backend
  iio: chemical: atlas-sensor: fix PM reference leak in buffer postenable
  iio: dac: ad5446: fix OF module device table
  iio: light: opt4001: Fix reversed GENMASK() arguments in fault count mask
  iio: light: opt4001: Reject integration times with a non-zero seconds part
  iio: light: opt4001: Fix incompatible pointer type passed to div_u64_rem()
  iio: light: opt4001: Fix power down clearing bits of the wrong register
  iio: light: opt4060: Fix incorrect register name in threshold read error message
  iio: light: opt4060: Fix pointer type passed to div_u64_rem()
  iio: light: opt4060: Reject integration times with a non-zero seconds part
  iio: light: ltrf216a: fix runtime PM reference leak in error path
  iio: pressure: dps310: fix NULL pointer dereference on ACPI probe
  ...
2026-08-25 09:38:50 -07:00
Linus Torvalds
66498c75b4 dmaengine updates for v7.3
Core:
   - New API to combine configuration and preparation and users
 
  New Support:
   - Mediatek MT8189 SoC uart dma support
 
  Updates:
   - Designware dma driver flatten desc structures and simplify code,
     interrupt-path groundwork changes, first part of PCI EP DMA support
   - Updates to zynqmp_dma with runtime PM and device removal improvments
   - Xilinx dma optimizations for AXIDMA and MCDMA channel management
 -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEE+vs47OPLdNbVcHzyfBQHDyUjg0cFAmqMgZEACgkQfBQHDyUj
 g0e82w/4oLwj2QUjUO3QEO2l4E/RVS2/7UyCYKoJDAh66aM8Z3QjQ+lUvy+4wHHE
 H8AtTpRzGEPpqqU+BckHEySf8mNhlA4ULhX17aPc+NKqYNlW8p2L63kPFYggI1ja
 Z6/zVFrJDLwWTI0bSxAyJ6OoaObSXY0P6qpMcXKcqoHc981+EHMGrt/iVJM4Et/c
 Q6nFMxIMgxYPI1VCMSrJqOBA4ZvymyWBisJPZf6SK0iH3PnaBnGWWWilpT8eUJxm
 /MbVf2aUMetdK1+QVx1nNQUdb1eyAw50zFgbeDFDTXQ85Mfbvwh8XxxuT4wXJS5b
 8MFwIEUq6iRgyjZYlykmFYBXw1A3SZWuWMUuMic4l13lw7dxk92wR31j99pIRaV3
 g2iykz+gzQNQ5RNPuo/9j0s26FAmMNxbFW1RPAMnoVc33vZakV4ueaYtIy7s7mMJ
 eDrE6YNDW24DWfWrSxkQGCW1qFGBUY20dXZ0sBmhUxpTLB0ubPZrWLvKKZe/qTUJ
 wmrGNtTBLAYJMsGBm5VMybXwrQXa2Hvqa6KKFR2TdjpdcJwyWVHzRPpR+sJ7GfxZ
 Lz59ODW3x1MnukRQS/T+RXGT42Tzk+qQQ+xK/yCrXq0VkxE3010n7SglTEEygGYP
 Zk2eos4fARpXOUNqAxoKTVRyvQBxrIrHuJuQjAys2RhLHARuCQ==
 =lUcr
 -----END PGP SIGNATURE-----

Merge tag 'dmaengine-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine

Pull dmaengine updates from Vinod Koul:
 "Core:

   - New API to combine configuration and preparation and users

  New hardware support:

   - Mediatek MT8189 SoC uart dma support

  Updates:

   - Designware dma driver flatten desc structures and simplify code,
     interrupt-path groundwork changes, first part of PCI EP DMA support

   - Updates to zynqmp_dma with runtime PM and device removal
     improvments

   - Xilinx dma optimizations for AXIDMA and MCDMA channel management"

* tag 'dmaengine-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (73 commits)
  dmaengine: dw-edma: Mark emulated IRQ as level-triggered
  dmaengine: idxd: assign all engines to group 0 in IAA defaults
  dmaengine: qcom_hidma: remove conditional return with no effect
  dmaengine: qcom-bam-dma: fix autosuspend cleanup during removal
  dmaengine: fsl-edma: tracing: no ptr dereference during log output
  dmaengine: dw-edma: Program endpoint function numbers
  dmaengine: dw-edma-pcie: Add chip flags to match data
  dmaengine: dw-edma-pcie: Handle optional data blocks
  dmaengine: dw-edma-pcie: Factor out descriptor block address lookup
  dmaengine: dw-edma-pcie: Add register offset match flag
  dmaengine: dw-edma-pcie: Add platform ops to match data
  dmaengine: dw-edma-pcie: Rename vsec_data to dma_data
  dmaengine: dw-edma-pcie: Add capability match data
  dmaengine: dw-edma-pcie: Track non-LL mode in DMA data
  dmaengine: dw-edma: Add partial channel ownership mode
  dmaengine: dw-edma: Initialize IRQ data before requesting IRQs
  dmaengine: dw-edma: Add core quiesce operations
  dmaengine: dw-edma: Add per-channel interrupt routing control
  dmaengine: dw-edma: Factor out HDMA interrupt setup helper
  dmaengine: dw-edma: Defer channel IRQ handling to workqueue
  ...
2026-08-24 12:21:15 -07:00
Linus Torvalds
cf9610f911 Pin control bulk changes for kernel v7.3
Core changes:
 
 - Use the non-blocking mux_state_try_select() in the generic
   MUX pin control back-end.
 
 - Free pin maps on pinctrl_generic_to_map() failure in the core
   helpers.
 
 New drivers:
 
 - Qualcomm Maili TLMM SoC pin control.
 
 - Qualcomm PMG1110 PMIC pin control.
 
 - Qualcomm Eliza LPASS LPI TLMM SoC pin control (this is for
   the low power audio, LPASS = Low Power Audio SubSystem
   portions).
 
 - Upboard support on top of the Intel pin controller.
 
 - Apple T6030 and T6031 support (just compatible strings).
 
 - Samsung Exynos 8855 SoC pin control.
 
 - Mediatek MT6858 SoC pin control.
 
 - Rockchip RK3308B SoC pin control.
 
 - Rockchip RV1106 SoC pin control.
 
 - Airoha EN7523 SoC pin control.
 
 - Airoha AN7563 SoC pin control.
 
 Improvements:
 
 - Qualcomm TLMM GPIOs are unconditionally marked as wakeup capable.
 
 - Qualcomm improvements on top of the Qualcomm PDC (power domain
   controller) irqchip improvements from tglx:s tree.
 
 - Qualcomm IPQ806x and IPQ9650 nonurgent pin grop fixups.
 
 - The NPCM8xx driver has been put into shape fixing many pin and
   group definitions.
 
 - Some nonurgent Tegra 264 pin assignments are fixed up.
 
 - Some nonurgent fixups to Airoha AN7581 and AN7583 registers and
   pin assignments, missing features etc.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmqMBvYACgkQQRCzN7AZ
 XXOCRw//aRnxM6R7HJkmcJt70749sE2GSbQ5Vx22zkRLRt8FA0QL4GdPQWjG+rwA
 /Q5XhMv5TpSXaBo63fFyAEHEhgbuxlgyUMijpXuMFVHB4AKIcp0P9Mn+TfTkpsIu
 QPIUktn2wqaIoFoAZj7G2KhXUyyeQnISplBSFl4wfpsJ25fjKqqeoiOMrMCVc05A
 Hfgm047beur5vkvYBIwFG0BC992l9ucSQJ4jDEm2XtkQ/NqIQBd16lYdxrb6vkJu
 Bj2qUH/GVQN3c+n2ZgfwVbkoWMum7VgBymxbnjhraJmQoGm27IQsnBtDnhD5bv6s
 bk5Y6Vyji0kNhHYU5uBFwjDWmYt5PxjXynkeFuruNuBkqnioQCyoTNlIeiJf5pZv
 kM0dBkR0eUTQVPrZX5kXbi9B2JqdbnkdhKbL2YQt1zV0uvs1m8xl3dLu+bvtHjEM
 xNghQKkSDvSHDgulbjTcKEthILSA48Q+poCaOoYre8KIOc4I7novSal6UzcHoTH7
 4D8+BnwJXbS5RRIG2snUWHRLB8aY+yuPlfAQBrAu0apuKWrnr2SjfWMMek1kDv57
 U/iXjSKvjSUQc+sYhq+cPMrD8yYqjIgfg483p4L8xsTIi0Mer6UhnHcZJ82TONTa
 K1A3iGlKOtw4jNFOeow8VAW8MyEHcnx3q70rgA2O+eH7WpT28rs=
 =sSjn
 -----END PGP SIGNATURE-----

Merge tag 'pinctrl-v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control updates from Linus Walleij:
 "Core changes:

   - Use the non-blocking mux_state_try_select() in the generic MUX pin
     control back-end

   - Free pin maps on pinctrl_generic_to_map() failure in the core
     helpers

  New hardware pin control:

   - Qualcomm Maili TLMM SoC, PMG1110 PMIC, and Eliza LPASS LPI TLMM SoC
     (this is for the low power audio, LPASS = Low Power Audio SubSystem
     portions)

   - Upboard support on top of the Intel pin controller

   - Apple T6030 and T6031 support (just compatible strings)

   - Samsung Exynos 8855 SoC

   - Mediatek MT6858 SoC

   - Rockchip RK3308B and RV1106 SoCs

   - Airoha EN7523 and AN7563 SoCs

  Improvements:

   - Qualcomm TLMM GPIOs are unconditionally marked as wakeup capable

   - Qualcomm improvements on top of the Qualcomm PDC (power domain
     controller) irqchip improvements from tglx:s tree

   - Qualcomm IPQ806x and IPQ9650 non-urgent pin grop fixups

   - The NPCM8xx driver has been put into shape fixing many pin and
     group definitions

   - Some non-urgent Tegra 264 pin assignments are fixed up

   - Some non-urgent fixups to Airoha AN7581 and AN7583 registers and
     pin assignments, missing features etc"

* tag 'pinctrl-v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (130 commits)
  dt-bindings: pinctrl: Convert TI DA850 pupd to DT schema
  pinctrl: meson: sync some modify from A4
  pinctrl: meson: a4: Add input enable pin configuration
  pinctrl: realtek: rtd1625: remove unused group name spdif_sel
  pinctrl: realtek: rtd1625: fix base_bit for VE4 GPIO 13
  dt-bindings: pinctrl: microchip,pic32mzda-pinctrl: Convert to DT schema
  Revert "Merge branch 'ib-rsk7204' into devel"
  pinctrl: rockchip: Add RV1106 pinctrl support
  dt-bindings: pinctrl: rockchip: Add RV1106 compatible
  pinctrl: rockchip: Decode drive strength in the get function
  pinctrl: fix PINCTRL_GENERIC_MUX not always being selectable
  pinctrl: airoha: add support of an7563 SoC
  dt-bindings: pinctrl: airoha: add support of an7563 pin controller
  pinctrl: airoha: try to find chip scu node by phandle first
  pinctrl: airoha: add support of en7523 SoC
  dt-bindings: pinctrl: airoha: add support of en7523 pin controller
  pinctrl: airoha: an7583: add support for olt pinmux
  pinctrl: airoha: an7583: add support for pon_alt pinmux
  pinctrl: airoha: an7583: add support for npu_uart pinmux
  dt-bindings: pinctrl: airoha: an7583: add missed features
  ...
2026-08-24 08:46:03 -07:00
Linus Torvalds
ed3b875bea mm.git review status for mm-hotfixes-stable..mm-stable
Everything:
 
 Total patches:       501
 Reviews/patch:       1.66
 Reviewed rate:       70%
 
 Excluding DAMON:
 
 Total patches:       356
 Reviews/patch:       2.26
 Reviewed rate:       90%
 
 Excluding DAMON and selftests:
 
 Total patches:       329
 Reviews/patch:       2.31
 Reviewed rate:       92%
 
 Excluding DAMON, selftests and maple_tree:
 
 Total patches:       328
 Reviews/patch:       2.31
 Reviewed rate:       92%
 
 Summary of patch series in this merge:
 
 - The 2 patch series "mm: drop "sub" prefix from various places" from
   Dev Jain implements some page->folio conversion and a naming cleanup.
 
 - The 2 patch series "mm/kasan: remove redundant initialization for
   kasan_flag_write_only" from Igor Putko provides some KASAN cleanup work.
 
 - The 2 patch series "mm/filemap: reduce unnecessary xarray lookups"
   from Chi Zhiling provides a small speedup in the pagecaache read code.
 
 - The 4 patch series "mm/percpu: Fix possible NOFS/NOIO reclaim
   recursion" from Kaitao Cheng improves a few things in the vmalloc code -
   mainly the avoidance of GFP_KERNEL allocations when the caller asked for
   GFP_NOFS or GFP_NOIO.
 
 - The 3 patch series "mm/kmemleak: avoid soft lockup when scanning task
   stacks" from Breno Leitao avoids a soft lockup watchdog trigger from the
   kmemleak scanning code in extreme situations.
 
 - The 6 patch series "mm/page_owner: misc cleanups" from Ye Liu is a
   collection of unrelated cleanups to the page_owner code.  For some
   reason lots of people have been working on the page_owner code this
   cycle.
 
 - The 4 patch series "mm: convert to walk_page_range_vma() to eliminate
   find_vma()" from Kefeng Wang simplifies and accelerates the page walking
   library function.
 
 - The 3 patch series "mm/migrate: preparatory cleanups for batch copy
   and offload" from Shivank Garg implements cleanups in the migration
   code.
 
 - The 4 patch series "mm/page_owner: add per-fd filter infrastructure
   for print_mode and NUMA filtering" from Zhen Ni provides per-fd
   filtering to page_owner in order to reduce the sometimes vast amount of
   output it can produce.
 
 - The 19 patch series "mm: Refactor bootmem gigantic hugepage
   allocation" from Muchun Song is a "set of fixes and preparatory cleanups
   around bootmem HugeTLB handling, sparse initialization ordering, and
   related vmemmap setup".
 
 - The 4 patch series "mm/zsmalloc: reduce lock contention in zs_free()"
   from Wenchao Hao reduces lock contention in zs_free(), which dominates
   the unmap path under memory pressure on Android (LMK kills) and on x86
   servers running zswap-heavy workloads.  Up to 1.83x improvement in
   microbenchmarking.
 
 - The 2 patch series "move alloc_tag.c file under mm/" from Suren
   Baghdasaryan does that.
 
 - The 6 patch series "samples/damon: handle damon_{start,stop}()
   failures" from SJ Park fixes improper handling of damon_start(),
   damon_stop(), and damon_call() failures across DAMON sample modules to
   prevent potential memory leaks, operation disruptions and use-after-free
   bugs.
 
 - The 11 patch series "mm/damon/sysfs: kobject_del() directories that
   users can create/remove" from SJ Park resolves an issue where delayed
   sysfs directory removal under CONFIG_DEBUG_KOBJECT_RELEASE causes
   creation failures due to duplicate directory names by adding missing
   kobject_del() calls before creating new directories.
 
 - The 3 patch series "mm: cleanup clear_not_present_full_ptes()" from
   David Hildenbrand cleans up the core pte handling code.
 
 - The 3 patch series "selftests/damon: misc fixes for test bugs" from
   Kunwu Chan fixes several bugs in the DAMON selftests.
 
 - The 2 patch series "selftests/damon: fix memcg_path staging handling"
   from Cheng Nie fixes a bug in _damon_sysfs.py for damos_filter
   memcg_path setup, and adds a test case for it in sysfs.py.
 
 - The 2 patch series "selftests/damon: test kdamond refresh_ms" from
   Ruslan Valiyev introduces selftest coverage for DAMON's refresh_ms sysfs
   feature by updating the test control module and verifying that scheme
   stats update automatically without manual intervention.
 
 - The 5 patch series "mm/damon: five misc fixups" from Akinobu Mita
   contains miscellaneous DAMON fixups.
 
 - The 2 patch series "mm/damon/core: detect internal variation above
   max_nr_regions/2" from Jiayuan Chen fixes DAMON's region splitting
   behavior when region counts exceed half the maximum budget by
   dynamically scaling down the split fraction as the limit approaches,
   preventing large regions from staying un-split, and adds corresponding
   KUnit test coverage.
 
 - The 6 patch series "mm: preparatory patches for PMD level swap
   entries" from Usama Arif refactors and cleans up PMD softleaf helpers,
   call sites, and architecture flags to lay the groundwork for a follow-up
   series that introduces PMD page table swap entries.
 
 - The 11 patch series "mm/damon: update, optimize, and clean up doc,
   tests, and code" from SJ Park updates DAMON design and ABI
   documentation, expands unit and selftest coverage, optimizes
   damon_commit_target_regions(), and cleans up recently added sysfs
   interface code for better readability.
 
 - The 2 patch series "mm/vmpressure: reduce CPU, memory and code
   overhead on cgroup v2" from Usama Arif optimizes vmpressure() by
   skipping unnecessary work on cgroup v2 for userspace event notifications
   and refactors v1-only eventfd handling into mm/memcontrol-v1.c to reduce
   memory overhead and code complexity.
 
 - The 10 patch series "selftests/mm: refactor pkey helpers and fix mmap
   error handling" from Hongfu Li refactors pkeys shared tracing and
   assertion helpers into a common file, unifies protection key selftests
   to use consistent diagnostic logging and assertions, and enforces
   standardized MAP_FAILED return checks for mmap() calls across the tests.
 
 - The 18 patch series "mm/damon: optimize out nr_accesses_bp" from SJ
   Park replaces the error-prone, continuously updated nr_accesses_bp field
   in damon_region with an on-demand moving sum function
   (damon_nr_accesses_mvsum()), reducing structure memory overhead and
   avoiding state corruption bugs.
 
 - The 6 patch series "Open HugeTLB allocation routine for more generic
   use" from Ackerley Tng decouples HugeTLB folio allocation from VMA
   dependencies by introducing hugetlb_alloc_folio(), enabling subsystems
   like guest_memfd to allocate HugeTLB folios without standard VMA
   reservations or pseudo-VMAs.
 
 - The 3 patch series "mm/damon: provide pseudo moving sum probe_hits"
   from SJ Park integrates DAMON's probe_hits attribute counter into the
   pseudo moving sum infrastructure, enabling real-time, online monitoring
   without waiting for full aggregation intervals.
 
 - The 18 patch series "mm: Some cleanups for page allocator APIs" from
   Brendan Jackman simplifies and refactors the page allocator entry points
   and flags by unifying allocation paths, adding internal alloc_flags
   arguments, and eliminating redundant __ prefixed alloc_pages variants.
 
 - The 5 patch series "Fix incorrect access of hugetlb pte entries" from
   Dev Jain enforces the consistent use of huge_ptep_get() instead of
   ptep_get() for HugeTLB entries and fixes an unaligned address issue in
   arm64's huge_ptep_get() implementation.
 
 - The 8 patch series "mm/damon: validate all parameters in the core"
   from SJ Park consolidates parameter validation into the DAMON core
   specifically within damon_start() and damon_commit_ctx() to centralize
   error checking, eliminate caller-side redundant checks and to improve
   maintenance efficiency.
 
 - The 3 patch series "tools/mm/page_owner_sort: fix filtering and
   cleanup issues" from Yichong Chen renames is_need() to filter_record()
   for clearer return semantics, fixes per-record allocation memory leaks
   and bounds output copies in search_pattern() to address an existing
   buffer issue.
 
 - The 4 patch series "memcg: bail out reclaim when memcg is dying" from
   Jiayuan Chen mitigates a system-wide stall which occurs when a cgroup is
   removed while one of its memory control files is doing synchronous
   reclaim.
 
 - The 5 patch series "mm/memory-failure: add panic option for
   unrecoverable pages" from Breno Leitao introduces an opt-in
   vm.panic_on_unrecoverable_memory_failure sysctl that immediately panics
   the kernel on unrecoverable memory errors in kernel-owned pages to
   preserve error context and prevent delayed, silent data corruption.
 
 - The 11 patch series "mm/damon: refactor damon_{start,stop,commit}()
   for simple error handling" from SJ Park refactors the DAMON core API
   functions to guarantee that all contexts are fully stopped when
   damon_start(), damon_stop(), or damon_commit() fail, eliminating the
   need for complex and error-prone caller-side cleanup code.
 
 - The 5 patch series "Keep tail page private zero at free and folio
   split" from Zi Yan adds checks to ensure tail_page->private is zero when
   freeing compound or high-order pages and when promoting tail pages
   during large folio splits.  By validating these fields at free and split
   time, it allows the removal of redundant private field clearing inside
   prep_compound_tail().
 
 - The 4 patch series "mm: drop redundant lru_add_drain in anon folio
   reuse paths" from Barry Song eliminates redundant lru_add_drain() calls
   in wp_can_reuse_anon_folio() and do_swap_page() to reduce LRU lock
   contention and system overhead.
 
   By validating folio refcounts against the LRU cache before draining
   and removing unnecessary drains in the swap path, it achieves up to a
   30.5% reduction in drain calls during heavy swap workloads.
 
 - The 3 patch series "mm: clean up folio LRU and swap declarations" from
   Jianyue Wu reorganizes folio LRU and swap code by relocating
   page-cluster state to mm/swap_state.c, renaming mm/swap.c to mm/folio.c,
   and moving MM-internal reclaim declarations into mm/internal.h.
 
 - The 15 patch series "userfaultfd: working set tracking for VM guest
   memory" from Kiryl Shutsemau adds userfaultfd support for tracking the
   working set of VM guest memory, so a VMM can identify hot pages and
   reclaim cold ones to tiered or remote storage.
 
 - The 10 patch series "mm: remove CONFIG_HAVE_BOOTMEM_INFO_NODE (Part
   2)" from David Hildenbrand removes the remaining pieces of
   CONFIG_HAVE_BOOTMEM_INFO_NODE, performing some smaller cleanups around
   freeing of reserved vmemmap pages on the way.
 
 - The 7 patch series "mm/damon: update probe hits for runtime parameter
   commits" from SJ Park ensures that DAMON's probe_hits attribute counter
   is properly updated when monitoring intervals are changed at runtime,
   matching the behavior of nr_accesses.  To achieve this, it refactors and
   renames existing helper functions for shared use, applies the updates to
   probe_hits, and handles edge cases in damon_probe_hits_mvsum() to
   maintain measurement accuracy.
 
 - The 3 patch series "KSM: performance optimizations for rmap_walk_ksm"
   from xu xin resolves a severe KSM reverse-mapping performance bottleneck
   where thousands of split VMAs sharing a single anon_vma cause extended
   lock contention.  By adding an interval-filtering check during the rmap
   walk, it reduces worst-case anon_vma lock hold times from over 500ms
   down to under 2ms, preventing application freezes and latency spikes
   under memory pressure.
 
 - The 3 patch series "mm: split a couple of headers from internal.h"
   from Mike Rapoport splits declarations related to mm_init, memblock,
   vmalloc and sparse into new headers.
 
 - The 2 patch series "KSM: use linear_page_index in collect_procs_ksm()"
   from xu xin applies the interval tree optimization from rmap_walk_ksm()
   to collect_procs_ksm() to avoid iterating over non-matching VMAs during
   KSM memory error handling.  It hoists loop-invariant address
   initialization and restricts the anon_vma_interval_tree_foreach walk to
   a targeted page offset range, reducing redundant checks and improving
   lookup efficiency.
 
 - The 3 patch series "selftests/mm: avoid false failures in hugetlb and
   KSM tests" from Sayali Patil fixes issues in the hugetlb and KSM MM
   selftest categories that can report failures when the prerequisites for
   the tests are not satisfied.
 
 - The 19 patch series "mm/damon: introduce data attributes only
   monitoring" from SJ Park introduces attribute-weighted region management
   in DAMON, allowing users to prioritize specific data attributes (such as
   page sizes or cgroups) over or instead of access monitoring.
 
   By assigning weights to attribute probes, DAMON can completely disable
   access tracking and adjust monitoring regions based on weighted
   probe-hit counters to optimize monitoring quality for attribute-focused
   workloads.
 
 - The 8 patch series "mm/hmm: Add mmap lock-drop support for
   userfaultfd-backed mappings" from Stanislav Kinsburskii extends
   hmm_range_fault() to support userfaultfd-backed regions by allowing the
   mmap lock to be dropped during fault handling via a new
   hmm_range_fault_locked() helper.
 
   By accepting a locked pointer and signaling retry status when lock
   release occurs, it enables page fault resolution in userfaultfd regions
   while preserving backward compatibility for existing callers.
 
 - The 33 patch series "mm: make VMA page offset handling more
   consistent" from Lorenzo Stoakes cleans up and standardizes how
   vma->vm_pgoff is accessed and manipulated across file-backed and
   anonymous mappings in the kernel.
 
   It introduces dedicated helper functions such as vma_start_pgoff(),
   vma_end_pgoff(), vma_set_pgoff() and linear_page_delta() while renaming
   rmap interval tree helpers to better reflect their functionality.
 
   These changes establish a cleaner foundation for future work that will
   unify virtual page offset indexing for all anonymous and CoW'd folios.
 
 - The 3 patch series "mm: handle device-private PMDs in walk callbacks"
   from Usama Arif addresses kernel panics and state corruption caused by
   MM walk callbacks reaching non-present device-private PMD swap entries
   created during HMM migrations.
 
   It ensures that functions which acquire pmd_trans_huge_lock() properly
   recognize device-private PMDs instead of assuming a present THP or a
   standard migration entry.
 
 - The 5 patch series "mm/rmap: Refactor try_to_unmap_one" from Dev Jain
   refactors try_to_unmap_one by modularizing Hugetlb, anonymous-lazyfree,
   and anonymous-swapbacked logic into dedicated functions, laying the
   structural groundwork for batched anonymous large folio unmapping.
 
 - The 4 patch series "Docs/ABI/damon: sysfs ABI document fixes and
   additions" from Song Hu fixes typos and fills in missing entries in the
   DAMON sysfs ABI document.
 
 - The 10 patch series "dax/kmem: atomic whole-device hotplug via sysfs"
   from Gregory Price introduces an atomic sysfs state attribute and
   supporting DAX/MM infrastructure to prevent userland races when
   offlining and removing entire memory regions.
 
   By adding an unplugged state alongside standard online modes, it
   enables whole-device atomic hotplug control while preserving backward
   compatibility.
 
 - The 13 patch series "mm: convert more vm_flags_t users to vma_flags_t"
   from Lorenzo Stoakes continues transitioning the kernel from the
   deprecated vm_flags_t type to vma_flags_t across core memory management
   infrastructure.
 
   It replaces legacy type usage in core functions such as do_mmap(),
   unmapped area allocation, mm->def_vma_flags, and VMA operations like
   mlock, mprotect, and mremap.
 
 - The 2 patch series "Two small patches to clean up mm/mm_slot.h" from
   xu xin refactors mm_slot.h by introducing mm_slot_remove() to unify
   duplicate slot deletion sequences in khugepaged and KSM.  It also adds
   code documentation explaining why mm_slot_lookup and mm_slot_insert must
   remain as preprocessor macros rather than static inline functions.
 
 - The 10 patch series "mm/damon/core: hide core-private struct fields"
   from SJ Park cleans up DAMON core structures by consistently marking
   internal-only fields with private: comment tags to prevent improper
   direct access from outer layers.
 
   It enforces encapsulation across core structures including
   damon_region, damon_target, and damon_ctx and updates DAMON_SYSFS to
   interact through approved access APIs instead of exposing raw struct
   members.
 
 - The 6 patch series "mm/damon: unurgent fixes for infinite loop, NULL
   de-ref and races" from SJ Park addresses potential infinite loops, NULL
   dereferences, and race conditions identified in DAMON.
 
   It fixes an infinite loop triggered by extreme user configurations, a
   NULL pointer dereference within unit tests and minor monitoring
   accuracy degradation caused by subtle runtime races.
 
 - The 2 patch series "mm/page_alloc: fixes for free_pages_nolock() on
   RT/UP" from Brendan Jackman fixes an NMI safety flaw in
   __free_frozen_pages() where freeing pages on non-SMP or PREEMPT_RT
   kernels can bypass can_spin_trylock() checks via non-PCP or isolated
   migration paths.
 
   It also resolves potential kernel crashes and privilege escalation
   risks triggered when BPF tracing runs in NMI context alongside memory
   hotplug or large allocation frees.
 
 - The 4 patch series "mm/page_alloc: couple of followups for recent
   cleanups" from Brendan Jackman cleans up and updates page allocator
   nomenclature, documentation, and debug assertions.
 
   It aligns internal FPI_ flags with the public "nolock" naming
   convention, removes outdated internal implementation details from
   high-level page allocator comments, and eliminates obsolete VM_BUG_ON()
   assertions in allocation paths.
 
 - The 3 patch series "mm/mseal: further cleanups" from Lorenzo Stoakes
   refactors and simplifies the mseal implementation by clarifying API
   boundaries and removing unnecessary code complexity.
 
   It replaces generic do_mseal() usage outside the syscall with a
   dedicated mseal_mmap_page_zero() helper for MMAP_PAGE_ZERO, eliminates
   mm_struct parameters to enforce that sealing applies only to
   current->mm, and streamlines overall logic and comments with no
   functional changes intended.
 
 - The 4 patch series "mm/vmscan: fix swappiness=max and clean up
   per-node proactive reclaim" from Ridong Chen resolves reclaim behavior
   bugs and cleans up function parameters across memory reclaim paths.
 
   It fixes swappiness=max in both standard reclaim and MGLRU so
   unswappable anonymous memory no longer falls back to evicting page
   cache, ensures reclaim_store() returns accurate error codes instead of
   collapsing all failures into -EAGAIN, and removes the obsolete gfp_mask
   parameter from __node_reclaim().
 
 - The 6 patch series "mm: mincore: misc cleanups" from Kefeng Wang
   cleans up and simplifies the mincore code.  Most importantly, it removes
   the historical special behavior that always reports VM_PFNMAP pages as
   non-resident.
 
 - The 2 patch series "mm/huge_memory: drop dead split helper variants"
   from Kiryl Shutsemau implements two trivial cleanups in the folio split
   API.
 
 - The 7 patch series "mm/damon: fix uninitialized DAMOS field and kunit
   exec expectation bugs" from SJ Park resolves minor operational and
   testing bugs in DAMON identified by Sashiko.  It initializes the
   damos->last_applied field to prevent occasional efficiency degradation
   and fixes invalid memory accesses in DAMON KUnit tests during test
   failure handling.
 
 - The 3 patch series "cleanup for stable_page_flags()" from Jinjiang Tu
   cleans up and refactors stable_page_flags() used by /proc/kpageflags
   without altering functionality.
 
   It uses BIT_ULL() to prevent shift-overflow warnings on 64-bit flag
   bits, converts folio-specific flag checks to standard folio_test_*()
   helpers, and removes redundant CONFIG_PAGE_IDLE_FLAG handling.
 
 - The 3 patch series "Batch unmap of uffd-wp file folios" from Dev Jain
   extends batched folio unmapping support to file folios within
   userfaultfd write-protect (uffd-wp) VMAs by adding batching capabilities
   to pte_install_uffd_wp_if_needed().
 
   This removes special-case restrictions on uffd-wp VMAs in
   try_to_unmap_one(), significantly simplifying the function's control
   flow and complexity.
 
 - The 3 patch series "mm/early_ioremap: clarify and clean up
   early_ioremap_reset()" from Sang-Heon Jeon clarifies and cleans up the
   architecture-specific usage of __late_set_fixmap() and
   __late_clear_fixmap() after early_ioremap_reset().
 
   It adds explicit documentation regarding when early_ioremap_reset()
   must be called and removes redundant macro definitions and reset calls
   in the RISC-V and ARM64 architectures.
 
 - The 4 patch series "mm: fix reclaim storms in defrag_mode" from
   Johannes Weiner addresses severe performance regressions, swap storms,
   and spurious OOMs caused by vm.defrag_mode=1 under high memory pressure
   in Meta production.
 
   It updates the page allocator slowpath so non-movable allocation
   requests actively trigger direct reclaim and direct compaction at
   pageblock_order scale, allowing them to claim whole pageblocks rather
   than spinning unproductively.
 
 - The 2 patch series "zram: lockmap tweaks" from Sebastian Siewior
   optimizes and fixes lockdep tracking for zram devices by consolidating
   per-entry lockmaps and isolating lock classes across multiple instances.
 
   It reduces memory overhead by replacing per-entry lockdep_map instances
   with a single map per struct zram, and assigns a dynamic lock_class_key
   to each instance to prevent false deadlock reports when different zram
   devices are backed by distinct filesystems.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCaoUJbQAKCRDdBJ7gKXxA
 jqrzAP9WoPU0hiK4qS/kSjhtoZxhjpS5eLSUCy/utKuEvZbfGgEAu1zA+LH+X9Tm
 THK5ex4iUZxiFbXpWfLMxE/Q9PmQYQ8=
 =QTyb
 -----END PGP SIGNATURE-----

Merge tag 'mm-stable-2026-08-18-18-39' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull MM updates from Andrew Morton:

 - "mm: drop "sub" prefix from various places" (Dev Jain)

   page->folio conversion and a naming cleanup

 - "mm/kasan: remove redundant initialization for kasan_flag_write_only"
   (Igor Putko)

   KASAN cleanup work

 - "mm/filemap: reduce unnecessary xarray lookups" (Chi Zhiling)

   Small speedup in the pagecaache read code

 - "mm/percpu: Fix possible NOFS/NOIO reclaim recursion" (Kaitao Cheng)

   Improve the vmalloc code - mainly the avoidance of GFP_KERNEL
   allocations when the caller asked for GFP_NOFS or GFP_NOIO

 - "mm/kmemleak: avoid soft lockup when scanning task stacks" (Breno
   Leitao)

   Avoid a soft lockup watchdog trigger from the kmemleak scanning code
   in extreme situations

 - "mm/page_owner: misc cleanups" (Ye Liu)

   Cleanups to the page_owner code. For some reason lots of people have
   been working on the page_owner code this cycle.

 - "mm: convert to walk_page_range_vma() to eliminate find_vma()"
   (Kefeng Wang)

   Simplify and accelerate the page walking library function

 - "mm/migrate: preparatory cleanups for batch copy and offload"
   (Shivank Garg)

   Cleanups in the migration code

 - "mm/page_owner: add per-fd filter infrastructure for print_mode and
   NUMA filtering" (Zhen Ni)

   Per-fd filtering to page_owner in order to reduce the sometimes vast
   amount of output it can produce

 - "mm: Refactor bootmem gigantic hugepage allocation" (Muchun Song)

   Fixes and preparatory cleanups around bootmem HugeTLB handling,
   sparse initialization ordering, and related vmemmap setup

 - "mm/zsmalloc: reduce lock contention in zs_free()" (Wenchao Hao)

   Reduce lock contention in zs_free(), which dominates the unmap path
   under memory pressure on Android (LMK kills) and on x86 servers
   running zswap-heavy workloads.

   Up to 1.83x improvement in microbenchmarking.

 - "move alloc_tag.c file under mm/" (Suren Baghdasaryan)

 - "samples/damon: handle damon_{start,stop}() failures" (SJ Park)

   Fix improper handling of damon_start(), damon_stop(), and
   damon_call() failures across DAMON sample modules to prevent
   potential memory leaks, operation disruptions and use-after-free
   bugs

 - "mm/damon/sysfs: kobject_del() directories that users can
   create/remove" (SJ Park)

   Fix delayed sysfs directory removal under DEBUG_KOBJECT_RELEASE
   causeing creation failures due to duplicate directory names by adding
   missing kobject_del() calls before creating new directories

 - "mm: cleanup clear_not_present_full_ptes()" (David Hildenbrand)

   Clean up the core pte handling code

 - "selftests/damon: misc fixes for test bugs" (Kunwu Chan)

   Fix several bugs in the DAMON selftests

 - "selftests/damon: fix memcg_path staging handling" (Cheng Nie)

   Fix a bug in _damon_sysfs.py for damos_filter memcg_path setup, and
   add a test case for it in sysfs.py.

 - "selftests/damon: test kdamond refresh_ms" (Ruslan Valiyev)

   Selftest coverage for DAMON's refresh_ms sysfs feature by updating
   the test control module and verifying that scheme stats update
   automatically without manual intervention

 - "mm/damon: five misc fixups" (Akinobu Mita)

   Miscellaneous DAMON fixups.

 - "mm/damon/core: detect internal variation above max_nr_regions/2"
   (Jiayuan Chen)

   Fix DAMON's region splitting behavior when region counts exceed half
   the maximum budget by dynamically scaling down the split fraction as
   the limit approaches, preventing large regions from staying un-split,
   and add corresponding KUnit test coverage

 - "mm: preparatory patches for PMD level swap entries" (Usama Arif)

   Refactor and clean up PMD softleaf helpers, call sites, and
   architecture flags to lay the groundwork for a follow-up series that
   introduces PMD page table swap entries

 - "mm/damon: update, optimize, and clean up doc, tests, and code" (SJ
   Park)

   Update DAMON design and ABI documentation, expands unit and selftest
   coverage, optimize damon_commit_target_regions(), and clean up
   recently added sysfs interface code for better readability

 - "mm/vmpressure: reduce CPU, memory and code overhead on cgroup v2"
   (Usama Arif)

   Optimize vmpressure() by skipping unnecessary work on cgroup v2 for
   userspace event notifications and refactor v1-only eventfd handling
   into mm/memcontrol-v1.c to reduce memory overhead and code complexity

 - "selftests/mm: refactor pkey helpers and fix mmap error handling"
   (Hongfu Li)

   Refactor pkeys shared tracing and assertion helpers into a common
   file, unify protection key selftests to use consistent diagnostic
   logging and assertions, and enforce standardized MAP_FAILED return
   checks for mmap() calls across the tests

 - "mm/damon: optimize out nr_accesses_bp" (SJ Park)

   Replace the error-prone, continuously updated nr_accesses_bp field in
   damon_region with an on-demand moving sum function, reducing
   structure memory overhead and avoiding state corruption bugs

 - "Open HugeTLB allocation routine for more generic use" (Ackerley Tng)

   Decouple HugeTLB folio allocation from VMA dependencies by
   introducing hugetlb_alloc_folio(), enabling subsystems like
   guest_memfd to allocate HugeTLB folios without standard VMA
   reservations or pseudo-VMAs

 - "mm/damon: provide pseudo moving sum probe_hits" (SJ Park)

   Integrate DAMON's probe_hits attribute counter into the pseudo moving
   sum infrastructure, enabling real-time, online monitoring without
   waiting for full aggregation intervals

 - "mm: Some cleanups for page allocator APIs" (Brendan Jackman)

   Simplify and refactor the page allocator entry points and flags by
   unifying allocation paths, adding internal alloc_flags arguments, and
   eliminating redundant __ prefixed alloc_pages variants.

 - "Fix incorrect access of hugetlb pte entries" (Dev Jain)

   Enforce the consistent use of huge_ptep_get() instead of ptep_get()
   for HugeTLB entries and fixes an unaligned address issue in arm64's
   huge_ptep_get() implementation

 - "mm/damon: validate all parameters in the core" (SJ Park)

   Consolidate parameter validation into the DAMON core specifically
   within damon_start() and damon_commit_ctx() to centralize error
   checking, eliminate caller-side redundant checks and to improve
   maintenance efficiency

 - "tools/mm/page_owner_sort: fix filtering and cleanup issues" (Yichong
   Chen)

   Rename is_need() to filter_record() for clearer return semantics, fix
   per-record allocation memory leaks and bound output copies in
   search_pattern() to address an existing buffer issue

 - "memcg: bail out reclaim when memcg is dying" (Jiayuan Chen)

   Mitigate a system-wide stall which occurs when a cgroup is removed
   while one of its memory control files is doing synchronous reclaim

 - "mm/memory-failure: add panic option for unrecoverable pages" (Breno
   Leitao)

   Introduce an opt-in vm.panic_on_unrecoverable_memory_failure sysctl
   that immediately panics the kernel on unrecoverable memory errors in
   kernel-owned pages to preserve error context and prevent delayed,
   silent data corruption

 - "mm/damon: refactor damon_{start,stop,commit}() for simple error
   handling" (SJ Park)

   Refactor the DAMON core API functions to guarantee that all contexts
   are fully stopped when damon_start(), damon_stop(), or damon_commit()
   fail, eliminating the need for complex and error-prone caller-side
   cleanup code

 - "Keep tail page private zero at free and folio split" (Zi Yan)

   Add checks to ensure tail_page->private is zero when freeing compound
   or high-order pages and when promoting tail pages during large folio
   splits. By validating these fields at free and split time, it allows
   the removal of redundant private field clearing inside
   prep_compound_tail()

 - "mm: drop redundant lru_add_drain in anon folio reuse paths" (Barry
   Song)

   Eliminate redundant lru_add_drain() calls in
   wp_can_reuse_anon_folio() and do_swap_page() to reduce LRU lock
   contention and system overhead

   By validating folio refcounts against the LRU cache before draining
   and removing unnecessary drains in the swap path, it achieves up to a
   30.5% reduction in drain calls during heavy swap workloads

 - "mm: clean up folio LRU and swap declarations" (Jianyue Wu)

   Reorganize folio LRU and swap code by relocating page-cluster state
   to mm/swap_state.c, renaming mm/swap.c to mm/folio.c, and moving
   MM-internal reclaim declarations into mm/internal.h.

 - "userfaultfd: working set tracking for VM guest memory" (Kiryl
   Shutsemau)

   Add userfaultfd support for tracking the working set of VM guest
   memory, so a VMM can identify hot pages and reclaim cold ones to
   tiered or remote storage

 - "mm: remove CONFIG_HAVE_BOOTMEM_INFO_NODE (Part 2)" (David
   Hildenbrand)

   Remove the remaining pieces of CONFIG_HAVE_BOOTMEM_INFO_NODE,
   performing some smaller cleanups around freeing of reserved vmemmap
   pages on the way.

 - "mm/damon: update probe hits for runtime parameter commits" (SJ Park)

   Ensure that DAMON's probe_hits attribute counter is properly updated
   when monitoring intervals are changed at runtime, matching the
   behavior of nr_accesses. To achieve this, it refactors and renames
   existing helper functions for shared use, applies the updates to
   probe_hits, and handles edge cases in damon_probe_hits_mvsum() to
   maintain measurement accuracy.

 - "KSM: performance optimizations for rmap_walk_ksm" (xu xin)

   Resolve a severe KSM reverse-mapping performance bottleneck where
   thousands of split VMAs sharing a single anon_vma cause extended lock
   contention.

   By adding an interval-filtering check during the rmap walk, it
   reduces worst-case anon_vma lock hold times from over 500ms down to
   under 2ms, preventing application freezes and latency spikes under
   memory pressure.

 - "mm: split a couple of headers from internal.h" (Mike Rapoport)

   Split declarations related to mm_init, memblock, vmalloc and sparse
   into new headers

 - "KSM: use linear_page_index in collect_procs_ksm()" (xu xin)

   Apply the interval tree optimization from rmap_walk_ksm() to
   collect_procs_ksm() to avoid iterating over non-matching VMAs during
   KSM memory error handling.

   It hoists loop-invariant address initialization and restricts the
   anon_vma_interval_tree_foreach walk to a targeted page offset range,
   reducing redundant checks and improving lookup efficiency.

 - "selftests/mm: avoid false failures in hugetlb and KSM tests" (Sayali
   Patil)

   Fix issues in the hugetlb and KSM MM selftest categories that can
   report failures when the prerequisites for the tests are not
   satisfied

 - "mm/damon: introduce data attributes only monitoring" (SJ Park)

   Introduce attribute-weighted region management in DAMON, allowing
   users to prioritize specific data attributes (such as page sizes or
   cgroups) over or instead of access monitoring.

   By assigning weights to attribute probes, DAMON can completely
   disable access tracking and adjust monitoring regions based on
   weighted probe-hit counters to optimize monitoring quality for
   attribute-focused workloads.

 - "mm/hmm: Add mmap lock-drop support for userfaultfd-backed mappings"
   (Stanislav Kinsburskii)

   Extend hmm_range_fault() to support userfaultfd-backed regions by
   allowing the mmap lock to be dropped during fault handling via a new
   hmm_range_fault_locked() helper.

   By accepting a locked pointer and signaling retry status when lock
   release occurs, it enables page fault resolution in userfaultfd
   regions while preserving backward compatibility for existing callers.

 - "mm: make VMA page offset handling more consistent" (Lorenzo Stoakes)

   Clean up and standardize how vma->vm_pgoff is accessed and
   manipulated across file-backed and anonymous mappings in the kernel

   It introduces dedicated helper functions such as vma_start_pgoff(),
   vma_end_pgoff(), vma_set_pgoff() and linear_page_delta() while
   renaming rmap interval tree helpers to better reflect their
   functionality.

   These changes establish a cleaner foundation for future work that
   will unify virtual page offset indexing for all anonymous and CoW'd
   folios.

 - "mm: handle device-private PMDs in walk callbacks" (Usama Arif)

   Address kernel panics and state corruption caused by MM walk
   callbacks reaching non-present device-private PMD swap entries
   created during HMM migrations

   It ensures that functions which acquire pmd_trans_huge_lock()
   properly recognize device-private PMDs instead of assuming a present
   THP or a standard migration entry.

 - "mm/rmap: Refactor try_to_unmap_one" (Dev Jain)

   Refactor try_to_unmap_one by modularizing Hugetlb,
   anonymous-lazyfree, and anonymous-swapbacked logic into dedicated
   functions, laying the structural groundwork for batched anonymous
   large folio unmapping.

 - "Docs/ABI/damon: sysfs ABI document fixes and additions" (Song Hu)

   Fix typos and fills in missing entries in the DAMON sysfs ABI
   document

 - "dax/kmem: atomic whole-device hotplug via sysfs" (Gregory Price)

   Introduce an atomic sysfs state attribute and supporting DAX/MM
   infrastructure to prevent userland races when offlining and removing
   entire memory regions

   By adding an unplugged state alongside standard online modes, it
   enables whole-device atomic hotplug control while preserving backward
   compatibility.

 - "mm: convert more vm_flags_t users to vma_flags_t" (Lorenzo Stoakes)

   Continue transitioning the kernel from the deprecated vm_flags_t type
   to vma_flags_t across core memory management infrastructure.

   It replaces legacy type usage in core functions such as do_mmap(),
   unmapped area allocation, mm->def_vma_flags, and VMA operations like
   mlock, mprotect, and mremap.

 - "Two small patches to clean up mm/mm_slot.h" (xu xin)

   Refactor mm_slot.h by introducing mm_slot_remove() to unify duplicate
   slot deletion sequences in khugepaged and KSM. It also adds code
   documentation explaining why mm_slot_lookup and mm_slot_insert must
   remain as preprocessor macros rather than static inline functions.

 - "mm/damon/core: hide core-private struct fields" (SJ Park)

   Clean up DAMON core structures by consistently marking internal-only
   fields with private: comment tags to prevent improper direct access
   from outer layers.

   It enforces encapsulation across core structures including
   damon_region, damon_target, and damon_ctx and updates DAMON_SYSFS to
   interact through approved access APIs instead of exposing raw struct
   members.

 - "mm/damon: unurgent fixes for infinite loop, NULL de-ref and races"
   (SJ Park)

   Address potential infinite loops, NULL dereferences, and race
   conditions identified in DAMON

   It fixes an infinite loop triggered by extreme user configurations, a
   NULL pointer dereference within unit tests and minor monitoring
   accuracy degradation caused by subtle runtime races.

 - "mm/page_alloc: fixes for free_pages_nolock() on RT/UP" (Brendan
   Jackman)

   Fix an NMI safety flaw in __free_frozen_pages() where freeing pages
   on non-SMP or PREEMPT_RT kernels can bypass can_spin_trylock() checks
   via non-PCP or isolated migration paths.

   It also resolves potential kernel crashes and privilege escalation
   risks triggered when BPF tracing runs in NMI context alongside memory
   hotplug or large allocation frees.

 - "mm/page_alloc: couple of followups for recent cleanups" (Brendan
   Jackman)

   Clean up and update page allocator nomenclature, documentation, and
   debug assertions.

   It aligns internal FPI_ flags with the public "nolock" naming
   convention, removes outdated internal implementation details from
   high-level page allocator comments, and eliminates obsolete
   VM_BUG_ON() assertions in allocation paths.

 - "mm/mseal: further cleanups" (Lorenzo Stoakes)

   Refactor and simplify the mseal implementation by clarifying API
   boundaries and removing unnecessary code complexity.

   It replaces generic do_mseal() usage outside the syscall with a
   dedicated mseal_mmap_page_zero() helper for MMAP_PAGE_ZERO,
   eliminates mm_struct parameters to enforce that sealing applies only
   to current->mm, and streamlines overall logic and comments with no
   functional changes intended.

 - "mm/vmscan: fix swappiness=max and clean up per-node proactive
   reclaim" (Ridong Chen)

   Resolve reclaim behavior bugs and clean up function parameters across
   memory reclaim paths

   It fixes swappiness=max in both standard reclaim and MGLRU so
   unswappable anonymous memory no longer falls back to evicting page
   cache, ensures reclaim_store() returns accurate error codes instead
   of collapsing all failures into -EAGAIN, and removes the obsolete
   gfp_mask parameter from __node_reclaim().

 - "mm: mincore: misc cleanups" (Kefeng Wang)

   Clean up and simplifies the mincore code. Most importantly, it
   removes the historical special behavior that always reports VM_PFNMAP
   pages as non-resident.

 - "mm/huge_memory: drop dead split helper variants" (Kiryl Shutsemau)

   Two trivial cleanups in the folio split API

 - "mm/damon: fix uninitialized DAMOS field and kunit exec expectation
   bugs" (SJ Park)

   Resolve minor operational and testing bugs in DAMON identified by
   Sashiko. It initializes the damos->last_applied field to prevent
   occasional efficiency degradation and fixes invalid memory accesses
   in DAMON KUnit tests during test failure handling.

 - "cleanup for stable_page_flags()" (Jinjiang Tu)

   Clean up and refactor stable_page_flags() used by /proc/kpageflags
   without altering functionality.

   It uses BIT_ULL() to prevent shift-overflow warnings on 64-bit flag
   bits, converts folio-specific flag checks to standard folio_test_*()
   helpers, and removes redundant CONFIG_PAGE_IDLE_FLAG handling.

 - "Batch unmap of uffd-wp file folios" (Dev Jain)

   Extend batched folio unmapping support to file folios within
   userfaultfd write-protect (uffd-wp) VMAs by adding batching
   capabilities to pte_install_uffd_wp_if_needed().

   This removes special-case restrictions on uffd-wp VMAs in
   try_to_unmap_one(), significantly simplifying the function's control
   flow and complexity.

 - "mm/early_ioremap: clarify and clean up early_ioremap_reset()"
   (Sang-Heon Jeon)

   Clarify and clean up the architecture-specific usage of
   __late_set_fixmap() and __late_clear_fixmap() after
   early_ioremap_reset()

   It adds explicit documentation regarding when early_ioremap_reset()
   must be called and removes redundant macro definitions and reset
   calls in the RISC-V and ARM64 architectures.

 - "mm: fix reclaim storms in defrag_mode" (Johannes Weiner)

   Address severe performance regressions, swap storms, and spurious
   OOMs caused by vm.defrag_mode=1 under high memory pressure in Meta
   production

   It updates the page allocator slowpath so non-movable allocation
   requests actively trigger direct reclaim and direct compaction at
   pageblock_order scale, allowing them to claim whole pageblocks rather
   than spinning unproductively.

 - "zram: lockmap tweaks" (Sebastian Siewior)

   Optimize and fix lockdep tracking for zram devices by consolidating
   per-entry lockmaps and isolate lock classes across multiple instances

   This reduces memory overhead by replacing per-entry lockdep_map
   instances with a single map per struct zram, and assigns a dynamic
   lock_class_key to each instance to prevent false deadlock reports
   when different zram devices are backed by distinct filesystems.

* tag 'mm-stable-2026-08-18-18-39' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (501 commits)
  selftests/mm: thuge-gen: fix test_shmget() for PAGE_SIZE check
  selftests/mm: unpoison pages in memory-failure teardown
  mm/shmem: downgrade final i_blocks check in shmem_evict_inode() to pr_warn()
  mm/khugepaged: replace mutex_lock/mutex_unlock usage with guard macro
  mm/zsmalloc: fix release order of locks in zs_page_migrate()
  Documentation: zram: remove sections numbering
  ksm: stop iterating VMAs when ksm_test_exit returns true
  mm: fold userfaultfd_rwp() to false without CONFIG_ARCH_HAS_PTE_PROTNONE
  mm/migrate: report RCU-tasks quiescent states in migrate_pages_batch()
  zram: use a custom key for each zram object
  zram: move lockmap to be per-zram instead per table
  selftests/mm: fix gup_longterm EINVAL error message
  mm: page_alloc: fix non-movable reclaim storm in defrag_mode
  mm: page_alloc: move capture_control to the page allocator
  mm: compaction: support non-movable compaction for pageblock requests
  mm: page_alloc: __GFP_FS lockdep annotation for direct compaction
  hugetlb: evaluate subpool free state while locked
  mm/damon: remove trailing semicolons after function definitions
  mm/damon/ops-common: prevent migration fallback to non-target nodes
  mm/damon: update outdated comment about DAMOS filter handling
  ...
2026-08-20 18:17:08 -07:00
Linus Torvalds
920f27122c CXL for v7.3
CXL core type2 support:
 cxl: Support dpa without a mailbox
 cxl: Support Type2 cxl regs mapping
 
 CXL test type2 support:
 cxl/test: Rework cxl_type2_mem_init() to use cxl_mock_platform_device_add()
 cxl/test: Add cxl_test accelerator driver
 cxl/test: Fixup hdm init for auto region to support type2
 cxl/test: Propagate -ENOMEM on platform_device_alloc() failures
 cxl/test: Add hierarchy enumeration support for type2 device
 cxl/test: Refactor platform device enumerations
 cxl/test: Add type2 support for mock CFMWS0
 cxl/test: Add test for module parameters
 
 CXL port error handling support prep patches:
 cxl: Rename find_cxl_port() to find_cxl_port_by_dport()
 cxl: Tighten CPER kfifo registration API and symbol visibility
 acpi/apei/ghes: Use raw_spinlock_t for CXL CPER work locks
 cxl/ras: Fix cxl_rch_get_aer_severity() wrong severity register
 cxl/ras: Fix cxl_rch_get_aer_info() out-of-bounds AER register read
 
 CXL misc patches:
 cxl/Documentation: Spell out globbed sysfs attribute names
 cxl/test: Assign one mock memdev a full-width serial number
 cxl/core: Format the memdev serial number as unsigned in TP_printk
 cxl/pmem: Format the nvdimm serial number as unsigned decimal
 cxl: Use %pe to print error pointers
 cxl: Deny Features commands on the RAW mailbox path
 
 CXL fixes:
 cxl/region: Use __free(put_device) in find_pos_and_ways()
 cxl/region: Fix use-after-free in find_pos_and_ways() error path
 cxl/features: Clamp Get Feature output size to the remaining buffer
 cxl/features: Reject Set Features output buffer smaller than the header
 cxl/features: Reject Get Feature count larger than the output buffer
 cxl/port: Restart port enumeration when a sibling adds the dport first
 cxl/features: Serialize multi-part Get/Set Feature transfers
 cxl/pci: Honor -EPROBE_DEFER from component register setup
 cxl/mbox: Break poison list loop on an empty payload
 cxl/memdev: Fix firmware upload exact-fit handling
 cxl/features: bound fwctl command payload to the input buffer
 cxl/mce: Make the MCE notifier per-region
 cxl/pci: Remove incorrect mbox.valid check in cxl_pci_type3_init_mailbox()
 cxl: docs/linux/dax-driver - fix typos
 cxl: fix mailbox return code description typo
 cxl/mbox: Clamp mailbox output allocation to the payload size
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE5DAy15EJMCV1R6v9YGjFFmlTOEoFAmqDPQEACgkQYGjFFmlT
 OEqNBw/+LP25RACa3Jtwb53KtycNi/MzyVBXV311rDaBGzSKUixkO9LYCIV76lI/
 86x+U7+fmXBTmynD8lNwgVUw2P18xguYPe3bfn9qlmC2AZ6zmyeEzRU4p4BRzxTv
 iE9utK7DLetNRLGMnYIz3ziHLaSaZf0RslvecXF61y+nNhfd5N/pg52Bw1dUdpRi
 91m8v0JJ+v+OtEKwCsinV4lck07WRmk+roCFFqcwIdR4GkhKBKiipf+Vv9EoR/k5
 zBkhPazWFNKmnvf3VAY+vvo/Nh+wmHOrLqJUi5QYOQDXUGiJgt6/2JDVDBrY+QZL
 1I7BN66d4PE7lQnYpZHnu/aSlhcV/QI/4tKRnt1eZ7kIFO0s7QbPo7Fg8+Ql+43m
 V/qYWPxC6BgQXHBYAcnvJZO6COL1EIG1+sGy+x6kInTn33KPBeit6Ru7c3wxmYFa
 jXfdrudfN+0fUtjEhrMb2IIxfhNV5O/wLQqlj2c8vXgRmZo9dElyyiIxOC87EnOG
 sWD2Z+4z9Id4egU6bU5iTdVdT+CW0WkUHAd9gtmYwlr9Ttrqh01CTu7vc0XEKyKS
 j5YU/3sV2H8KbU5PqVo9GeYRukylESe+w42+7UemBUSzX6OIDaiNNokmDt9L+Cg7
 pdBr1qzjasR7XIDXNP9IRdkPKTgqDbSrg/gVIZJe+j7OsUHu0Nw=
 =6Bd/
 -----END PGP SIGNATURE-----

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

Pull CXL updates from Dave Jiang:
 "This includes the remaining patches to complete the basic support for
  CXL type2 (accelerators) drivers by the CXL core. A set of unit
  testing support to catch regressions for the CXL core type2 exported
  functions has also been added. The actual CXL type 2 driver support
  for the AMD Solarflare NIC driver has been picked up by net-dev.

  A set of preparatory patches has been picked up from the CXL port
  error handling series in order to reduce the number of patches in that
  series for review. The rest of that series is getting close to be
  merged but was not ready for the 7.3 merge window.

  There are also a number of misc patches and a large number of bug
  fixes against pre-existing issues flagged by sashiko reviews as
  contributors post new patches on the mailing list. We will continue to
  work through the sashiko raised issues as they show up."

* tag 'cxl-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (35 commits)
  cxl/Documentation: Spell out globbed sysfs attribute names
  cxl: Rename find_cxl_port() to find_cxl_port_by_dport()
  cxl: Tighten CPER kfifo registration API and symbol visibility
  acpi/apei/ghes: Use raw_spinlock_t for CXL CPER work locks
  cxl/ras: Fix cxl_rch_get_aer_severity() wrong severity register
  cxl/ras: Fix cxl_rch_get_aer_info() out-of-bounds AER register read
  cxl/test: Assign one mock memdev a full-width serial number
  cxl/core: Format the memdev serial number as unsigned in TP_printk
  cxl/pmem: Format the nvdimm serial number as unsigned decimal
  cxl: Use %pe to print error pointers
  cxl/region: Use __free(put_device) in find_pos_and_ways()
  cxl/region: Fix use-after-free in find_pos_and_ways() error path
  cxl: Deny Features commands on the RAW mailbox path
  cxl/features: Clamp Get Feature output size to the remaining buffer
  cxl/features: Reject Set Features output buffer smaller than the header
  cxl/features: Reject Get Feature count larger than the output buffer
  cxl/port: Restart port enumeration when a sibling adds the dport first
  cxl/features: Serialize multi-part Get/Set Feature transfers
  cxl/pci: Honor -EPROBE_DEFER from component register setup
  cxl/mbox: Break poison list loop on an empty payload
  ...
2026-08-20 15:02:09 -07:00