diff options
author | Koen Zandberg <koen@bergzand.net> | 2016-02-10 05:49:38 -0500 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-02-23 14:29:40 -0500 |
commit | aef00c15b8c503083a703900a755fdb1cf2436e0 (patch) | |
tree | a55e5a8aaca24cd8a7eab610970d8fdf82e6a9ef | |
parent | 6367551f462a3c1e2f38f5ea7335e49443379ab2 (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.c | 2 |
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 | } |
231 | EXPORT_SYMBOL(ieee802154_unregister_hw); | 231 | EXPORT_SYMBOL(ieee802154_unregister_hw); |