summaryrefslogtreecommitdiff
path: root/net/mac802154/util.c
diff options
context:
space:
mode:
authorMiquel Raynal <miquel.raynal@bootlin.com>2022-05-19 17:05:15 +0200
committerStefan Schmidt <stefan@datenfreihafen.org>2022-06-10 09:48:41 +0200
commit2b13db13af50a5dcdb944723c828915a50f0c3b2 (patch)
treef32b59b62f2c3163e55f6c5a58864662148c245f /net/mac802154/util.c
parentddd9ee7cda122ac55571b8b11b51ef1e71918b63 (diff)
downloadlwn-2b13db13af50a5dcdb944723c828915a50f0c3b2.tar.gz
lwn-2b13db13af50a5dcdb944723c828915a50f0c3b2.zip
net: mac802154: Add a warning in the hot path
We should never start a transmission after the queue has been stopped. But because it might work we don't kill the function here but rather warn loudly the user that something is wrong. Set a flag when the queue should remain stopped. Reset this flag when the queue actually gets restarded. Just check this value to know if a transmission is legitimate, warn if it is not. Turn the flags variable into an unsigned long to allow the use of atomic helpers on it. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Acked-by: Alexander Aring <aahringo@redhat.com> Link: https://lore.kernel.org/r/20220519150516.443078-11-miquel.raynal@bootlin.com Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Diffstat (limited to 'net/mac802154/util.c')
-rw-r--r--net/mac802154/util.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac802154/util.c b/net/mac802154/util.c
index 5e1fcc7b0123..60eb7bd3bfc1 100644
--- a/net/mac802154/util.c
+++ b/net/mac802154/util.c
@@ -29,6 +29,7 @@ static void ieee802154_wake_queue(struct ieee802154_hw *hw)
struct ieee802154_sub_if_data *sdata;
rcu_read_lock();
+ clear_bit(WPAN_PHY_FLAG_STATE_QUEUE_STOPPED, &local->phy->flags);
list_for_each_entry_rcu(sdata, &local->interfaces, list) {
if (!sdata->dev)
continue;