Re: [PATCH 1/2] dmaengine: move module_/dma_device_put() after route free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2019-12-23 10:03 p.m., Vinod Koul wrote:
> 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
> 
> Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>

Makes sense.

Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>

> ---
>  drivers/dma/dmaengine.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
> index e316abe3672d..0505ea5b002f 100644
> --- a/drivers/dma/dmaengine.c
> +++ b/drivers/dma/dmaengine.c
> @@ -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)
> 



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux