summaryrefslogtreecommitdiff
path: root/net/mac802154/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac802154/util.c')
-rw-r--r--net/mac802154/util.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/mac802154/util.c b/net/mac802154/util.c
index 999534f64485..5e1fcc7b0123 100644
--- a/net/mac802154/util.c
+++ b/net/mac802154/util.c
@@ -140,7 +140,8 @@ void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb,
}
dev_consume_skb_any(skb);
- atomic_dec(&hw->phy->ongoing_txs);
+ if (!atomic_dec_and_test(&hw->phy->ongoing_txs))
+ wake_up(&hw->phy->sync_txq);
}
EXPORT_SYMBOL(ieee802154_xmit_complete);
@@ -152,7 +153,8 @@ void ieee802154_xmit_error(struct ieee802154_hw *hw, struct sk_buff *skb,
local->tx_result = reason;
ieee802154_release_queue(local);
dev_kfree_skb_any(skb);
- atomic_dec(&hw->phy->ongoing_txs);
+ if (!atomic_dec_and_test(&hw->phy->ongoing_txs))
+ wake_up(&hw->phy->sync_txq);
}
EXPORT_SYMBOL(ieee802154_xmit_error);