summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <IvDoorn@gmail.com>2011-01-30 13:23:42 +0100
committerJohn W. Linville <linville@tuxdriver.com>2011-01-31 15:06:25 -0500
commite1f4e808bb7a884d6563553c2c94cbdd901a16c7 (patch)
tree154b1ed060f6b475adce7df2f29065dcbca0c14d
parenta0aff623ca8bc8779e6c3a394772d70d8a65dee9 (diff)
rt2x00: Kill all tasklets during device removal
During device removal all pending work and tasklets must be guaranteed to be halted. So far only the txstatus_tasklet was killed. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 5812a4e05c7..e7162852ec3 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -1067,6 +1067,10 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
* Kill the tx status tasklet.
*/
tasklet_kill(&rt2x00dev->txstatus_tasklet);
+ tasklet_kill(&rt2x00dev->pretbtt_tasklet);
+ tasklet_kill(&rt2x00dev->tbtt_tasklet);
+ tasklet_kill(&rt2x00dev->rxdone_tasklet);
+ tasklet_kill(&rt2x00dev->autowake_tasklet);
/*
* Uninitialize device.