Messages in this thread | | | Date | Fri, 21 Feb 2014 20:51:59 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH] rapidio/tsi721: fix tasklet termination in dma channel release |
| |
On Fri, 21 Feb 2014, Alexandre Bounine wrote: > This patch is a modification of the patch originally proposed > by Xiaotian Feng <xtfeng@gmail.com>: https://lkml.org/lkml/2012/11/5/413 > This new version disables DMA channel interrupts and ensures that the tasklet > wil not be scheduled again before calling tasklet_kill(). > > Unfortunately the updated patch was not released at that time due to planned > rework of Tsi721 mport driver to use threaded interrupts (which has yet to > happen). > Recently the issue was reported again: https://lkml.org/lkml/2014/2/19/762. > > Description from the original Xiaotian's patch: > > "Some drivers use tasklet_disable in device remove/release process, > tasklet_disable will inc tasklet->count and return. If the tasklet is > not handled yet under some softirq pressure, the tasklet will be > placed on the tasklet_vec, never have a chance to be excuted. This > might lead to a heavy loaded ksoftirqd, wakeup with pending_softirq, > but tasklet is disabled. tasklet_kill should be used in this case." > > This patch is applicable to kernel versions starting from v3.5. > > Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> > Cc: Matt Porter <mporter@kernel.crashing.org> > Cc: Xiaotian Feng <xtfeng@gmail.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Mike Galbraith <bitbucket@online.de> > Cc: <stable@vger.kernel.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
| |