Messages in this thread Patch in this message | | | From | Xiaotian Feng <> | Subject | [PATCH] atm: he: use tasklet_kill in device remove/release process | Date | Wed, 31 Oct 2012 18:34:47 +0800 |
| |
Some driver uses 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.
Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com> Cc: Chas Williams <chas@cmf.nrl.navy.mil> Cc: linux-atm-general@lists.sourceforge.net --- drivers/atm/he.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/atm/he.c b/drivers/atm/he.c index b182c2f..1dfcc9a 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c @@ -1556,7 +1556,7 @@ he_stop(struct he_dev *he_dev) gen_cntl_0 &= ~(INT_PROC_ENBL | INIT_ENB); pci_write_config_dword(pci_dev, GEN_CNTL_0, gen_cntl_0); - tasklet_disable(&he_dev->tasklet); + tasklet_kill(&he_dev->tasklet); /* disable recv and transmit */ -- 1.7.9.5
| |