summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Zandberg <koen@bergzand.net>2016-02-10 11:49:38 +0100
committerMarcel Holtmann <marcel@holtmann.org>2016-02-23 20:29:40 +0100
commitaef00c15b8c503083a703900a755fdb1cf2436e0 (patch)
treea55e5a8aaca24cd8a7eab610970d8fdf82e6a9ef
parent6367551f462a3c1e2f38f5ea7335e49443379ab2 (diff)
downloadlinux-aef00c15b8c503083a703900a755fdb1cf2436e0.tar.gz
linux-aef00c15b8c503083a703900a755fdb1cf2436e0.tar.bz2
linux-aef00c15b8c503083a703900a755fdb1cf2436e0.zip
mac802154: Fixes kernel oops when unloading a radio driver
Destroying the workqueue before unregistering the net device caused a kernel oops Signed-off-by: Koen Zandberg <koen@bergzand.net> Acked-by: Alexander Aring <aar@pengutronix.de> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r--net/mac802154/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac802154/main.c b/net/mac802154/main.c
index e8cab5bb80c6..87da85ae5a6b 100644
--- a/net/mac802154/main.c
+++ b/net/mac802154/main.c
@@ -218,7 +218,6 @@ void ieee802154_unregister_hw(struct ieee802154_hw *hw)
tasklet_kill(&local->tasklet);
flush_workqueue(local->workqueue);
- destroy_workqueue(local->workqueue);
rtnl_lock();
@@ -226,6 +225,7 @@ void ieee802154_unregister_hw(struct ieee802154_hw *hw)
rtnl_unlock();
+ destroy_workqueue(local->workqueue);
wpan_phy_unregister(local->phy);
}
EXPORT_SYMBOL(ieee802154_unregister_hw);