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@xxxxxxxxx> patches [1], plus some additional fixes from me. [1] https://lore.kernel.org/linux-pci/20230214140858.1133292-1-rick.wertenbroek@xxxxxxxxx/ 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 | 53 ++-- drivers/pci/endpoint/pci-epf-core.c | 32 --- include/linux/pci-epf.h | 2 - 7 files changed, 174 insertions(+), 228 deletions(-) -- 2.39.2