Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1265663
| From | Jon Hunter <jonathanh@nvidia.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH V2 6/6] dmaengine: tegra-apb: Free interrupts before killing tasklets |
| Date | 2015-11-09 14:30 +0100 |
| Message-ID | <qsUGf-6X1-27@gated-at.bofh.it> (permalink) |
| References | <qsUGe-6X1-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On probe failure or driver removal, before killing any tasklets, ensure
that the channel interrupt is freed to ensure that another channel
interrupt cannot occur and schedule the tasklet again.
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
V2 changes:
- Updated patch to use free_irq instead of disable_irq
drivers/dma/tegra20-apb-dma.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 004edcdb2d2e..d3892a106c1e 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -1396,8 +1396,7 @@ static int tegra_dma_probe(struct platform_device *pdev)
}
tdc->irq = res->start;
snprintf(tdc->name, sizeof(tdc->name), "apbdma.%d", i);
- ret = devm_request_irq(&pdev->dev, tdc->irq,
- tegra_dma_isr, 0, tdc->name, tdc);
+ ret = request_irq(tdc->irq, tegra_dma_isr, 0, tdc->name, tdc);
if (ret) {
dev_err(&pdev->dev,
"request_irq failed with err %d channel %d\n",
@@ -1478,6 +1477,8 @@ err_unregister_dma_dev:
err_irq:
while (--i >= 0) {
struct tegra_dma_channel *tdc = &tdma->channels[i];
+
+ free_irq(tdc->irq, tdc);
tasklet_kill(&tdc->tasklet);
}
@@ -1497,6 +1498,7 @@ static int tegra_dma_remove(struct platform_device *pdev)
for (i = 0; i < tdma->chip_data->nr_channels; ++i) {
tdc = &tdma->channels[i];
+ free_irq(tdc->irq, tdc);
tasklet_kill(&tdc->tasklet);
}
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V2 0/6] DMA: tegra-apb: Clean-up Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 3/6] dmaengine: tegra-apb: Save and restore word count Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
Re: [PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Andy Shevchenko <andy.shevchenko@gmail.com> - 2015-11-09 15:00 +0100
Re: [PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Jon Hunter <jonathanh@nvidia.com> - 2015-11-10 11:00 +0100
[PATCH V2 2/6] dmaengine: tegra-apb: Use dev_get_drvdata() Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
Re: [PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Andy Shevchenko <andy.shevchenko@gmail.com> - 2015-11-09 15:00 +0100
Re: [PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Jon Hunter <jonathanh@nvidia.com> - 2015-11-10 11:00 +0100
[PATCH V2 6/6] dmaengine: tegra-apb: Free interrupts before killing tasklets Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 5/6] dmaengine: tegra-apb: Update driver to use GFP_NOWAIT Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
csiph-web