Collection of DOE material, v4: Migrate to synchronous API, create mailboxes in PCI core instead of in drivers, relax restrictions on request/response size. This should probably go in via the cxl tree because Dave Jiang is basing his cxl work for the next merge window on it. The first 6 patches are fixes, so could be applied immediately. Thanks! Changes v3 -> v4: * [PATCH v4 01/17] cxl/pci: Fix CDAT retrieval on big endian * In pci_doe_discovery(), add request_pl_le / response_pl_le variables to avoid typecasts in pci_doe_task initializer (Jonathan) * In cxl_cdat_read_table(), use __le32 instead of u32 for "*data" variable (Jonathan) * Use sizeof(__le32) instead of sizeof(u32) (Jonathan) * [PATCH v4 03/17] cxl/pci: Handle truncated CDAT entries * Check for sizeof(*entry) instead of sizeof(struct cdat_entry_header) for clarity (Jonathan) * [PATCH v4 12/17] PCI/DOE: Create mailboxes on device enumeration * Amend commit message with additional justification for the commit (Alexey) * [PATCH v4 16/17] cxl/pci: cxl/pci: Simplify CDAT retrieval error path * Newly added patch in v4 on popular request (Jonathan, Dave) * [PATCH v4 17/17] cxl/pci: Rightsize CDAT response allocation * Amend commit message with spec reference to the Table Access Response Header (Ira) * In cxl_cdat_get_length(), check for sizeof(response) instead of 2 * sizeof(u32) for clarity Link to v3: https://lore.kernel.org/linux-pci/cover.1676043318.git.lukas@xxxxxxxxx/ Dave Jiang (1): cxl/pci: Simplify CDAT retrieval error path Lukas Wunner (16): cxl/pci: Fix CDAT retrieval on big endian cxl/pci: Handle truncated CDAT header cxl/pci: Handle truncated CDAT entries cxl/pci: Handle excessive CDAT length PCI/DOE: Silence WARN splat with CONFIG_DEBUG_OBJECTS=y PCI/DOE: Fix memory leak with CONFIG_DEBUG_OBJECTS=y PCI/DOE: Provide synchronous API and use it internally cxl/pci: Use synchronous API for DOE PCI/DOE: Make asynchronous API private PCI/DOE: Deduplicate mailbox flushing PCI/DOE: Allow mailbox creation without devres management PCI/DOE: Create mailboxes on device enumeration cxl/pci: Use CDAT DOE mailbox created by PCI core PCI/DOE: Make mailbox creation API private PCI/DOE: Relax restrictions on request and response size cxl/pci: Rightsize CDAT response allocation .clang-format | 1 - drivers/cxl/core/pci.c | 140 +++++++--------- drivers/cxl/cxlmem.h | 3 - drivers/cxl/cxlpci.h | 14 ++ drivers/cxl/pci.c | 49 ------ drivers/pci/doe.c | 342 ++++++++++++++++++++++++++++++---------- drivers/pci/pci.h | 11 ++ drivers/pci/probe.c | 1 + drivers/pci/remove.c | 1 + include/linux/pci-doe.h | 62 +------- include/linux/pci.h | 3 + 11 files changed, 350 insertions(+), 277 deletions(-) -- 2.39.1