mbox series

[v5,00/17] PCI endpoint fixes and improvements

Message ID 20230415023542.77601-1-dlemoal@kernel.org (mailing list archive)
Headers show
Series PCI endpoint fixes and improvements | expand

Message

Damien Le Moal April 15, 2023, 2:35 a.m. UTC
This series fixes several issues with the PCI endpoint code and endpoint
test drivers (RC 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 RC 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].

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

Changes from v4:
 - Addressed Bjorn comments on the commit messages (typos, text clarity)
 - Changed patch 1 to use dev_err() instead of pr_err().
 - Add print of invalid command value in patch 10
 - Chnaged all patches author and Signed-off-by tag to use my kernel.org
   email address
 - Added Mani's review tags

Changes from v3:
 - Corrected patch 7 and 12 title
 - Added patch 11

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 (17):
  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: Simplify 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: Cleanup request result handling
  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 | 266 ++++++++----------
 drivers/pci/endpoint/pci-ep-cfs.c             |  54 ++--
 drivers/pci/endpoint/pci-epf-core.c           |  32 ---
 include/linux/pci-epf.h                       |   2 -
 7 files changed, 175 insertions(+), 228 deletions(-)

Comments

Lorenzo Pieralisi April 21, 2023, 10:10 a.m. UTC | #1
On Sat, 15 Apr 2023 11:35:25 +0900, Damien Le Moal wrote:
> This series fixes several issues with the PCI endpoint code and endpoint
> test drivers (RC 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.
> 
> [...]

Applied to controller/endpoint, thanks!

[01/17] PCI: endpoint: Automatically create a function specific attributes group
        https://git.kernel.org/pci/pci/c/8dcae97d9819
[02/17] PCI: endpoint: Move pci_epf_type_add_cfs() code
        https://git.kernel.org/pci/pci/c/f373bc7cee2a
[03/17] PCI: epf-test: Fix DMA transfer completion initialization
        https://git.kernel.org/pci/pci/c/8b60b96dc008
[04/17] PCI: epf-test: Fix DMA transfer completion detection
        https://git.kernel.org/pci/pci/c/5628aaabe60e
[05/17] PCI: epf-test: Use dmaengine_submit() to initiate DMA transfer
        https://git.kernel.org/pci/pci/c/62d58b868ebe
[06/17] PCI: epf-test: Simplify read/write/copy test functions
        https://git.kernel.org/pci/pci/c/8b5609b95b7b
[07/17] PCI: epf-test: Simplify pci_epf_test_raise_irq()
        https://git.kernel.org/pci/pci/c/508f488b0913
[08/17] PCI: epf-test: Simplify IRQ test commands execution
        https://git.kernel.org/pci/pci/c/82e72fc97901
[09/17] PCI: epf-test: Improve handling of command and status registers
        https://git.kernel.org/pci/pci/c/ad15592c26d5
[10/17] PCI: epf-test: Cleanup pci_epf_test_cmd_handler()
        https://git.kernel.org/pci/pci/c/0674535d28a8
[11/17] PCI: epf-test: Cleanup request result handling
        https://git.kernel.org/pci/pci/c/00b225e73f30
[12/17] PCI: epf-test: Simplify DMA support checks
        https://git.kernel.org/pci/pci/c/64cedb06b1d9
[13/17] PCI: epf-test: Simplify transfers result print
        https://git.kernel.org/pci/pci/c/e68f5440ffb6
[14/17] misc: pci_endpoint_test: Free IRQs before removing the device
        https://git.kernel.org/pci/pci/c/0ca8e07fc751
[15/17] misc: pci_endpoint_test: Re-init completion for every test
        https://git.kernel.org/pci/pci/c/259456ae2804
[16/17] misc: pci_endpoint_test: Do not write status in IRQ handler
        https://git.kernel.org/pci/pci/c/53a52a0d213e
[17/17] misc: pci_endpoint_test: Simplify pci_endpoint_test_msi_irq()
        https://git.kernel.org/pci/pci/c/7885dbeb8780

Thanks,
Lorenzo