[GIT PULL] CXL fixes for v6.1-rc4

From: Dan Williams
Date: Sun Nov 06 2022 - 13:11:37 EST


Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-fixes-for-6.1-rc4

...to receive several fixes for CXL region creation crashes, leaks and
failures. This is mainly fallout from the original implementation of
dynamic CXL region creation (instantiate new physical memory pools) that
arrived in v6.0-rc1. Given the theme of "failures in the presence of
pass-through decoders" this also includes new regression test
infrastructure for that case.

Half of this has appeared in a linux-next release, while the other half
has been exposed to the build robots for the past couple days with no
reported issues. Rafael acked the drivers/acpi/ touch, and the risk is
low that linux-next will find anything wrong with the rest that is
self-contained to drivers/cxl/.

---

The following changes since commit 9abf2313adc1ca1b6180c508c25f22f9395cc780:

Linux 6.1-rc1 (2022-10-16 15:36:24 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-fixes-for-6.1-rc4

for you to fetch changes up to 8f401ec1c8975eabfe4c089de91cbe058deabf71:

cxl/region: Recycle region ids (2022-11-04 16:03:43 -0700)

----------------------------------------------------------------
cxl fixes for 6.1-rc4

- Fix region creation crash with pass-through decoders

- Fix region creation crash when no decoder allocation fails

- Fix region creation crash when scanning regions to enforce the
increasing physical address order constraint that CXL mandates

- Fix a memory leak for cxl_pmem_region objects, track 1:N instead of
1:1 memory-device-to-region associations.

- Fix a memory leak for cxl_region objects when regions with active
targets are deleted

- Fix assignment of NUMA nodes to CXL regions by CFMWS (CXL Window)
emulated proximity domains.

- Fix region creation failure for switch attached devices downstream of
a single-port host-bridge

- Fix false positive memory leak of cxl_region objects by recycling
recently used region ids rather than freeing them

- Add regression test infrastructure for a pass-through decoder
configuration

- Fix some mailbox payload handling corner cases

----------------------------------------------------------------
Dan Williams (8):
ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set
cxl/region: Fix region HPA ordering validation
cxl/region: Fix cxl_region leak, cleanup targets at region delete
cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak
tools/testing/cxl: Fix some error exits
tools/testing/cxl: Add a single-port host-bridge regression config
cxl/region: Fix 'distance' calculation with passthrough ports
cxl/region: Recycle region ids

Jonathan Cameron (3):
cxl/mbox: Add a check on input payload size
cxl/region: Fix null pointer dereference due to pass through decoder commit
cxl/pmem: Fix failure to account for 8 byte header for writes to the device LSA.

Vishal Verma (1):
cxl/region: Fix decoder allocation crash

Yu Zhe (1):
cxl/pmem: Use size_add() against integer overflow

drivers/acpi/numa/srat.c | 1 +
drivers/cxl/core/mbox.c | 2 +-
drivers/cxl/core/pmem.c | 2 +
drivers/cxl/core/port.c | 11 +-
drivers/cxl/core/region.c | 113 ++++++++++++----
drivers/cxl/cxl.h | 4 +-
drivers/cxl/pmem.c | 105 +++++++++------
tools/testing/cxl/test/cxl.c | 301 ++++++++++++++++++++++++++++++++++++++++---
8 files changed, 448 insertions(+), 91 deletions(-)