diff options
author | Konstantin Khlebnikov <khlebnikov@openvz.org> | 2012-12-13 20:03:03 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-12-14 13:14:07 -0500 |
commit | 1e9f954516ee03251e0ac2e98cad2e4be6ce9958 (patch) | |
tree | 883f6df1483f8d48dd1ad18f62a06e0d52099df1 /net | |
parent | cfb6f99dd9629ec7759b78cff51d9bf7eedf105a (diff) |
mac802154: fix destructon ordering for ieee802154 devices
mutex_destroy() must be called before wpan_phy_free(), because it puts the last
reference and frees memory. Catched as overwritten poison in kmalloc-2048.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: linux-zigbee-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac802154/ieee802154_dev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac802154/ieee802154_dev.c b/net/mac802154/ieee802154_dev.c index e748aed290aa..b7c7f815deae 100644 --- a/net/mac802154/ieee802154_dev.c +++ b/net/mac802154/ieee802154_dev.c | |||
@@ -224,9 +224,9 @@ void ieee802154_free_device(struct ieee802154_dev *hw) | |||
224 | 224 | ||
225 | BUG_ON(!list_empty(&priv->slaves)); | 225 | BUG_ON(!list_empty(&priv->slaves)); |
226 | 226 | ||
227 | wpan_phy_free(priv->phy); | ||
228 | |||
229 | mutex_destroy(&priv->slaves_mtx); | 227 | mutex_destroy(&priv->slaves_mtx); |
228 | |||
229 | wpan_phy_free(priv->phy); | ||
230 | } | 230 | } |
231 | EXPORT_SYMBOL(ieee802154_free_device); | 231 | EXPORT_SYMBOL(ieee802154_free_device); |
232 | 232 | ||