mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 16:19:53 +00:00
dmaengine: move module_/dma_device_put() after route free
We call dma_device_put() and module_put() after invoking .device_free_chan_resources callback, but we should also take care of router devices and invoke this after .route_free callback. So move it after .route_free Reviewed-by: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
bf453a0a18
commit
83c77940db
@ -427,15 +427,15 @@ static void dma_chan_put(struct dma_chan *chan)
|
||||
chan->device->device_free_chan_resources(chan);
|
||||
}
|
||||
|
||||
dma_device_put(chan->device);
|
||||
module_put(dma_chan_to_owner(chan));
|
||||
|
||||
/* If the channel is used via a DMA request router, free the mapping */
|
||||
if (chan->router && chan->router->route_free) {
|
||||
chan->router->route_free(chan->router->dev, chan->route_data);
|
||||
chan->router = NULL;
|
||||
chan->route_data = NULL;
|
||||
}
|
||||
|
||||
dma_device_put(chan->device);
|
||||
module_put(dma_chan_to_owner(chan));
|
||||
}
|
||||
|
||||
enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie)
|
||||
|
Loading…
x
Reference in New Issue
Block a user