mbox series

[v3,00/16] PCI endpoint fixes and improvements

Message ID 20230325070226.511323-1-damien.lemoal@opensource.wdc.com (mailing list archive)
Headers show
Series PCI endpoint fixes and improvements | expand

Message

Damien Le Moal March 25, 2023, 7:02 a.m. UTC
This series fixes several issues with the PCI endpoint code and endpoint
test drivers (host side and EP side).

The first 2 patches address an issue with the use of configfs to create
an endpoint driver type attributes group, preventing a potential crash
if the user creates a directory multiple times for the driver type
attributes.

The following patches are fixes and improvements for the endpoint test
drivers, EP side and RP side.

This is all tested using a Pine Rockpro64 board, with the rockchip ep
driver fixed using Rick Wertenbroek <rick.wertenbroek@gmail.com>
patches [1], plus some additional fixes from me.

[1] https://lore.kernel.org/linux-pci/20230214140858.1133292-1-rick.wertenbroek@gmail.com/

Changes from v2:
 - Add updates of the ntb and vntb function driver documentation in
   patch 1 to reflect the patch changes.
 - Removed unnecessary WARN_ON() call in patch 4
 - Added missing cc: stable tags
 - Added review tags

Changes from v1:
 - Improved patch 1 commit message
 - Modified patch 2 to not have to add an internal header file
 - Split former patch 3 into patch 3, 4 and 5
 - Removed former patch 4 introducing volatile casts and replaced it
   with patch 9
 - Added patch 6, 7, 8 and 10
 - Added Reviewed-by tags in patches not modified

Damien Le Moal (16):
  PCI: endpoint: Automatically create a function specific attributes group
  PCI: endpoint: Move pci_epf_type_add_cfs() code
  PCI: epf-test: Fix DMA transfer completion initialization
  PCI: epf-test: Fix DMA transfer completion detection
  PCI: epf-test: Use dmaengine_submit() to initiate DMA transfer
  PCI: epf-test: Simplify read/write/copy test functions
  PCI: epf-test: Simply pci_epf_test_raise_irq()
  PCI: epf-test: Simplify IRQ test commands execution
  PCI: epf-test: Improve handling of command and status registers
  PCI: epf-test: Cleanup pci_epf_test_cmd_handler()
  PCI: epf-test: Simplify dma support checks
  PCI: epf-test: Simplify transfers result print
  misc: pci_endpoint_test: Free IRQs before removing the device
  misc: pci_endpoint_test: Re-init completion for every test
  misc: pci_endpoint_test: Do not write status in IRQ handler
  misc: pci_endpoint_test: Simplify pci_endpoint_test_msi_irq()

 Documentation/PCI/endpoint/pci-ntb-howto.rst  |  11 +-
 Documentation/PCI/endpoint/pci-vntb-howto.rst |  13 +-
 drivers/misc/pci_endpoint_test.c              |  25 +-
 drivers/pci/endpoint/functions/pci-epf-test.c | 238 ++++++++----------
 drivers/pci/endpoint/pci-ep-cfs.c             |  53 ++--
 drivers/pci/endpoint/pci-epf-core.c           |  32 ---
 include/linux/pci-epf.h                       |   2 -
 7 files changed, 162 insertions(+), 212 deletions(-)

Comments

Bjorn Helgaas March 28, 2023, 5:57 p.m. UTC | #1
On Sat, Mar 25, 2023 at 04:02:10PM +0900, Damien Le Moal wrote:

>   PCI: endpoint: Automatically create a function specific attributes group
>   PCI: endpoint: Move pci_epf_type_add_cfs() code
>   PCI: epf-test: Fix DMA transfer completion initialization
>   PCI: epf-test: Fix DMA transfer completion detection
>   PCI: epf-test: Use dmaengine_submit() to initiate DMA transfer
>   PCI: epf-test: Simplify read/write/copy test functions
>   PCI: epf-test: Simply pci_epf_test_raise_irq()

"Simplify"

>   PCI: epf-test: Simplify IRQ test commands execution
>   PCI: epf-test: Improve handling of command and status registers
>   PCI: epf-test: Cleanup pci_epf_test_cmd_handler()
>   PCI: epf-test: Simplify dma support checks

"DMA"
Kishon Vijay Abraham I March 31, 2023, 10:20 a.m. UTC | #2
On 3/25/2023 12:32 PM, Damien Le Moal wrote:
> This series fixes several issues with the PCI endpoint code and endpoint
> test drivers (host side and EP side).
> 
> The first 2 patches address an issue with the use of configfs to create
> an endpoint driver type attributes group, preventing a potential crash
> if the user creates a directory multiple times for the driver type
> attributes.
> 
> The following patches are fixes and improvements for the endpoint test
> drivers, EP side and RP side.
> 
> This is all tested using a Pine Rockpro64 board, with the rockchip ep
> driver fixed using Rick Wertenbroek <rick.wertenbroek@gmail.com>
> patches [1], plus some additional fixes from me.

Thank you for improving the PCI endpoint code!

For the series:
Reviewed-by: Kishon Vijay Abraham I <kishon@kernel.org>
> 
> [1] https://lore.kernel.org/linux-pci/20230214140858.1133292-1-rick.wertenbroek@gmail.com/
> 
> Changes from v2:
>   - Add updates of the ntb and vntb function driver documentation in
>     patch 1 to reflect the patch changes.
>   - Removed unnecessary WARN_ON() call in patch 4
>   - Added missing cc: stable tags
>   - Added review tags
> 
> Changes from v1:
>   - Improved patch 1 commit message
>   - Modified patch 2 to not have to add an internal header file
>   - Split former patch 3 into patch 3, 4 and 5
>   - Removed former patch 4 introducing volatile casts and replaced it
>     with patch 9
>   - Added patch 6, 7, 8 and 10
>   - Added Reviewed-by tags in patches not modified
> 
> Damien Le Moal (16):
>    PCI: endpoint: Automatically create a function specific attributes group
>    PCI: endpoint: Move pci_epf_type_add_cfs() code
>    PCI: epf-test: Fix DMA transfer completion initialization
>    PCI: epf-test: Fix DMA transfer completion detection
>    PCI: epf-test: Use dmaengine_submit() to initiate DMA transfer
>    PCI: epf-test: Simplify read/write/copy test functions
>    PCI: epf-test: Simply pci_epf_test_raise_irq()
>    PCI: epf-test: Simplify IRQ test commands execution
>    PCI: epf-test: Improve handling of command and status registers
>    PCI: epf-test: Cleanup pci_epf_test_cmd_handler()
>    PCI: epf-test: Simplify dma support checks
>    PCI: epf-test: Simplify transfers result print
>    misc: pci_endpoint_test: Free IRQs before removing the device
>    misc: pci_endpoint_test: Re-init completion for every test
>    misc: pci_endpoint_test: Do not write status in IRQ handler
>    misc: pci_endpoint_test: Simplify pci_endpoint_test_msi_irq()
> 
>   Documentation/PCI/endpoint/pci-ntb-howto.rst  |  11 +-
>   Documentation/PCI/endpoint/pci-vntb-howto.rst |  13 +-
>   drivers/misc/pci_endpoint_test.c              |  25 +-
>   drivers/pci/endpoint/functions/pci-epf-test.c | 238 ++++++++----------
>   drivers/pci/endpoint/pci-ep-cfs.c             |  53 ++--
>   drivers/pci/endpoint/pci-epf-core.c           |  32 ---
>   include/linux/pci-epf.h                       |   2 -
>   7 files changed, 162 insertions(+), 212 deletions(-)
>