summaryrefslogtreecommitdiffstats
path: root/kernel/net/mac802154/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/net/mac802154/util.c')
-rw-r--r--kernel/net/mac802154/util.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/kernel/net/mac802154/util.c b/kernel/net/mac802154/util.c
index 150bf807e..f9fd0957a 100644
--- a/kernel/net/mac802154/util.c
+++ b/kernel/net/mac802154/util.c
@@ -14,6 +14,7 @@
*/
#include "ieee802154_i.h"
+#include "driver-ops.h"
/* privid for wpan_phys to determine whether they belong to us or not */
const void *const mac802154_wpan_phy_privid = &mac802154_wpan_phy_privid;
@@ -85,11 +86,17 @@ void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb,
hrtimer_start(&local->ifs_timer,
ktime_set(0, hw->phy->sifs_period * NSEC_PER_USEC),
HRTIMER_MODE_REL);
-
- consume_skb(skb);
} else {
ieee802154_wake_queue(hw);
- consume_skb(skb);
}
+
+ dev_consume_skb_any(skb);
}
EXPORT_SYMBOL(ieee802154_xmit_complete);
+
+void ieee802154_stop_device(struct ieee802154_local *local)
+{
+ flush_workqueue(local->workqueue);
+ hrtimer_cancel(&local->ifs_timer);
+ drv_stop(local);
+}