Re: [PATCH v3 00/13] NVIDIA Tegra APB DMA driver fixes and improvements

From: Thierry Reding
Date: Wed Jan 08 2020 - 07:51:13 EST


On Mon, 06 Jan 2020 04:16:55 +0300, Dmitry Osipenko wrote:
> Hello,
>
> This is series fixes some problems that I spotted recently, secondly the
> driver's code gets a cleanup. Please review and apply, thanks in advance!
>
> Changelog:
>
> v3: - In the review comment to v1 MichaÅ MirosÅaw suggested that "Prevent
> race conditions on channel's freeing" does changes that deserve to
> be separated into two patches. I factored out and improved tasklet
> releasing into this new patch:
>
> dmaengine: tegra-apb: Clean up tasklet releasing
>
> - The "Fix use-after-free" patch got an improved commit message.
>
> v2: - I took another look at the driver and spotted few more things that
> could be improved, which resulted in these new patches:
>
> dmaengine: tegra-apb: Remove runtime PM usage
> dmaengine: tegra-apb: Clean up suspend-resume
> dmaengine: tegra-apb: Add missing of_dma_controller_free
> dmaengine: tegra-apb: Allow to compile as a loadable kernel module
> dmaengine: tegra-apb: Remove MODULE_ALIAS
>
> Dmitry Osipenko (13):
> dmaengine: tegra-apb: Fix use-after-free
> dmaengine: tegra-apb: Implement synchronization callback
> dmaengine: tegra-apb: Prevent race conditions on channel's freeing
> dmaengine: tegra-apb: Clean up tasklet releasing
> dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
> dmaengine: tegra-apb: Use devm_platform_ioremap_resource
> dmaengine: tegra-apb: Use devm_request_irq
> dmaengine: tegra-apb: Fix coding style problems
> dmaengine: tegra-apb: Remove runtime PM usage
> dmaengine: tegra-apb: Clean up suspend-resume
> dmaengine: tegra-apb: Add missing of_dma_controller_free
> dmaengine: tegra-apb: Allow to compile as a loadable kernel module
> dmaengine: tegra-apb: Remove MODULE_ALIAS
>
> drivers/dma/Kconfig | 2 +-
> drivers/dma/tegra20-apb-dma.c | 481 ++++++++++++++++------------------
> 2 files changed, 220 insertions(+), 263 deletions(-)

Test results:
13 builds: 13 pass, 0 fail
12 boots: 11 pass, 1 fail
38 tests: 38 pass, 0 fail

Linux version: 5.5.0-rc5-gf9d40c056c0f
Boards tested: tegra20-ventana, tegra30-cardhu-a04, tegra124-jetson-tk1,
tegra186-p2771-0000, tegra194-p2972-0000,
tegra210-p2371-2180