Hi, The following patches introduce a driver to use the DMA hardware inside PLX ExpressLane PEX Switches. The DMA devices appear as one or more PCI virtual functions per channel and can serve similar use cases as Intel's IOAT driver. The first two patches in this series fix some bugs that are required to support cases where the driver is unbound while the DMA engine is in use. Without these patches the kernel will panic when that happens. The final three patches implement the driver itself. This patchset is based off of v5.4-rc4 and a git branch is available here: https://github.com/sbates130272/linux-p2pmem/ plx-dma Thanks, Logan -- Logan Gunthorpe (5): dmaengine: Store module owner in dma_device struct dmaengine: Call module_put() after device_free_chan_resources() dmaengine: plx-dma: Introduce PLX DMA engine PCI driver skeleton dmaengine: plx-dma: Implement hardware initialization and cleanup dmaengine: plx-dma: Implement descriptor submission MAINTAINERS | 5 + drivers/dma/Kconfig | 9 + drivers/dma/Makefile | 1 + drivers/dma/dmaengine.c | 7 +- drivers/dma/plx_dma.c | 658 ++++++++++++++++++++++++++++++++++++++ include/linux/dmaengine.h | 2 + 6 files changed, 680 insertions(+), 2 deletions(-) create mode 100644 drivers/dma/plx_dma.c -- 2.20.1