Re: dma_async_device_unregister called while 2 clients hold a reference

From: Vinod Koul
Date: Tue Jan 02 2018 - 22:47:05 EST


On Tue, Dec 26, 2017 at 10:37:13AM +0530, Rayagonda Kokatanur wrote:
> Hi All,
>
> I am getting following error when I unload one of my dma client driver.
> When I looked further into dmaengine.c file I found that the error is
> because of WARN_ONCE in dma_async_device_unregister() api.
>
> Is this error expected ?
> Why do we need that WARN_ONCE macro ? If I comment that, errors will vanish.
> Do I need to set anything in client driver before calling
> dma_async_device_unregister() api ?
>
>
> root@bcm958802a8021:~# rmmod bcm_sba_raid
> [ 357.891751] dma_async_device_unregister called while 2 clients hold a
> reference

that means you are trying to remove the module while two clients hold the
ref. You should first ensure the clients are unloaded and then your driver

IMO this is a valid warn.

--
~Vinod