aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Zandberg <koen@bergzand.net>2016-02-10 05:49:38 -0500
committerMarcel Holtmann <marcel@holtmann.org>2016-02-23 14:29:40 -0500
commitaef00c15b8c503083a703900a755fdb1cf2436e0 (patch)
treea55e5a8aaca24cd8a7eab610970d8fdf82e6a9ef
parent6367551f462a3c1e2f38f5ea7335e49443379ab2 (diff)
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)
218 218
219 tasklet_kill(&local->tasklet); 219 tasklet_kill(&local->tasklet);
220 flush_workqueue(local->workqueue); 220 flush_workqueue(local->workqueue);
221 destroy_workqueue(local->workqueue);
222 221
223 rtnl_lock(); 222 rtnl_lock();
224 223
@@ -226,6 +225,7 @@ void ieee802154_unregister_hw(struct ieee802154_hw *hw)
226 225
227 rtnl_unlock(); 226 rtnl_unlock();
228 227
228 destroy_workqueue(local->workqueue);
229 wpan_phy_unregister(local->phy); 229 wpan_phy_unregister(local->phy);
230} 230}
231EXPORT_SYMBOL(ieee802154_unregister_hw); 231EXPORT_SYMBOL(ieee802154_unregister_hw);