Skip to contentSkip to conversation

atm: he: use tasklet_kill in device remove/release process

PATCH New Xiaotian Feng 1 participant 1 message Oct 31, 2012 ATM

lore
Share & tools
lore
#0 lore raw

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.

---
 drivers/atm/he.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/atm/he.c +1 -1
index b182c2f..1dfcc9a 100644
@@ -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