mbox series

[v4,00/17] Collection of DOE material

Message ID cover.1678543498.git.lukas@wunner.de
Headers show
Series Collection of DOE material | expand

Message

Lukas Wunner March 11, 2023, 2:40 p.m. UTC
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@wunner.de/


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(-)

Comments

Bjorn Helgaas March 13, 2023, 7:55 p.m. UTC | #1
On Sat, Mar 11, 2023 at 03:40:00PM +0100, Lukas Wunner wrote:
> 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@wunner.de/
> 
> 
> 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

Acked-by: Bjorn Helgaas <bhelgaas@google.com> for the PCI/DOE patches,
and I assume these will all be merged via the cxl tree.

>  .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
>