diff mbox

[2/2] dmaengine: pch_dma: use tasklet_kill in teardown

Message ID 1394089610-3314-3-git-send-email-vinod.koul@intel.com (mailing list archive)
State Superseded
Headers show

Commit Message

Vinod Koul March 6, 2014, 7:06 a.m. UTC
As discussed in [1] the tasklet_disable is not a proper function for teardown.
The driver also uses correct method of tasklet_kill. So remove tasklet_disable

[1]: http://lwn.net/Articles/588457/

Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 drivers/dma/pch_dma.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

Comments

Thomas Gleixner March 6, 2014, 11:22 a.m. UTC | #1
On Thu, 6 Mar 2014, Vinod Koul wrote:

> As discussed in [1] the tasklet_disable is not a proper function for teardown.
> The driver also uses correct method of tasklet_kill. So remove tasklet_disable
> 
> [1]: http://lwn.net/Articles/588457/
> 
> Reported-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  drivers/dma/pch_dma.c |    1 -
>  1 files changed, 0 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
> index 61fdc54..fcba40b 100644
> --- a/drivers/dma/pch_dma.c
> +++ b/drivers/dma/pch_dma.c
> @@ -968,7 +968,6 @@ static void pch_dma_remove(struct pci_dev *pdev)
>  					 device_node) {
>  			pd_chan = to_pd_chan(chan);
>  
> -			tasklet_disable(&pd_chan->tasklet);
>  			tasklet_kill(&pd_chan->tasklet);
>  		}

How is ensured, that the interrupt is disabled and the last interrupt
has completed before you call tasklet_kill()?

Thanks,

	tglx
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
index 61fdc54..fcba40b 100644
--- a/drivers/dma/pch_dma.c
+++ b/drivers/dma/pch_dma.c
@@ -968,7 +968,6 @@  static void pch_dma_remove(struct pci_dev *pdev)
 					 device_node) {
 			pd_chan = to_pd_chan(chan);
 
-			tasklet_disable(&pd_chan->tasklet);
 			tasklet_kill(&pd_chan->tasklet);
 		}