linux/drivers/cxl
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
..
core CXL for v7.4 2026-10-26 06:50:38 -10:00
acpi.c cxl/acpi: Convert QTG _DSM latencies to picoseconds 2026-10-09 14:10:35 -07:00
cxl.h Merge branch 'for-7.4/cxl-dcd' into cxl-for-next 2026-10-13 09:01:39 -07:00
cxlmem.h cxl/core: Enforce partition order/simplify partition calls 2026-10-12 09:44:52 -07:00
cxlpci.h cxl: Support Type2 cxl regs mapping 2026-06-29 10:55:47 -07:00
Kconfig cxl/acpi: Fix CXL_ACPI and CXL_PMEM Kconfig tristate mismatch 2026-03-06 08:08:53 -07:00
Makefile cxl/port: Fix CXL port initialization order when the subsystem is built-in 2024-10-25 16:06:49 -05:00
mem.c Merge branch 'for-7.4/cxl-dcd' into cxl-for-next 2026-10-13 09:01:39 -07:00
pci.c CXL for v7.4 2026-10-26 06:50:38 -10:00
pmem.c cxl/pmem: Format the nvdimm serial number as unsigned decimal 2026-08-05 13:20:33 -07:00
pmu.h
port.c cxl/hdm: Allow zero sized HDM decoders 2026-09-15 08:35:58 -07:00
security.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00