atm: he: use tasklet_kill in device remove/release process
PATCH 1/1 atm: he: use tasklet_kill in device remove/release process
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 <[email protected]>
Cc Chas Williams <[email protected]>
--- drivers/atm/he.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/atm/he.c +1 -1
@@ -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 */
Signature · 1 line
1.7.9.5