Messages in this thread | | | From | Logan Gunthorpe <> | Date | Mon, 16 Dec 2019 12:01:15 -0700 | Subject | [PATCH 0/5] Support hot-unbind in IOAT |
| |
Hey,
This patchset creates some common infrastructure which I will use in the next version of the PLX driver. It adds a reference count to the dma_device struct which is taken and released every time a channel is allocated or freed. A call back is used to allow the driver to free the underlying memory and do any final cleanup.
For a use-case, I've adjusted the ioat driver to properly support hot-unbind. The driver was already pretty close as it already had a shutdown state; so it mostly only required freeing the memory correctly and calling ioat_shutdown at the correct time.
This patchset is based on v5.5-rc2 and a git branch is available here:
https://github.com/sbates130272/linux-p2pmem/ ioat-hot-unbind
Thanks,
Logan
--
Logan Gunthorpe (5): dmaengine: Store module owner in dma_device struct dmaengine: Call module_put() after device_free_chan_resources() dmaengine: Move dma_channel_rebalance() infrastructure up in code dmaengine: Add reference counting to dma_device struct dmaengine: ioat: Support in-use unbind
drivers/dma/dmaengine.c | 352 +++++++++++++++++++++----------------- drivers/dma/ioat/init.c | 38 ++-- include/linux/dmaengine.h | 10 +- 3 files changed, 233 insertions(+), 167 deletions(-)
-- 2.20.1
| |