commit 3414cf4d0aeae75dc9d6faf74b3b6fc57485d56a Author: Michal Schmidt Date: Fri May 15 16:21:54 2009 +0200 cancel_rearming_delayed_work is only for keventd work diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 719c331..adee776 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -533,8 +533,10 @@ static int ieee80211_stop(struct net_device *dev) /* fall through */ default: if (local->scan_dev == sdata->dev) { - if (!local->ops->hw_scan) - cancel_rearming_delayed_work(&local->scan_work); + if (!local->ops->hw_scan) { + cancel_delayed_work(&local->scan_work); + flush_workqueue(local->hw.workqueue); + } /* * The software scan can no longer run now, so we can * clear out the scan_dev reference. However, the