Re: [PATCH] dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`

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

 



On 23-10-21, 15:41, Lars-Peter Clausen wrote:
> Before the `callback_result` callback was introduced drivers coded their
> invocation to the callback in a similar way to:
> 
> 	if (cb->callback) {
> 		spin_unlock(&dma->lock);
> 		cb->callback(cb->callback_param);
> 		spin_lock(&dma->lock);
> 	}
> 
> With the introduction of `callback_result` two helpers where introduced to
> transparently handle both types of callbacks. And drivers where updated to
> look like this:
> 
> 	if (dmaengine_desc_callback_valid(cb)) {
> 		spin_unlock(&dma->lock);
> 		dmaengine_desc_callback_invoke(cb, ...);
> 		spin_lock(&dma->lock);
> 	}
> 
> dmaengine_desc_callback_invoke() correctly handles both `callback_result`
> and `callback`. But we forgot to update the dmaengine_desc_callback_valid()
> function to check for `callback_result`. As a result DMA descriptors that
> use the `callback_result` rather than `callback` don't have their callback
> invoked by drivers that follow the pattern above.
> 
> Fix this by checking for both `callback` and `callback_result` in
> dmaengine_desc_callback_valid().

Thanks for the fix, applied now

-- 
~Vinod



[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