diff options
author | Miquel Raynal <miquel.raynal@bootlin.com> | 2022-05-19 17:05:15 +0200 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2022-06-10 09:48:41 +0200 |
commit | 2b13db13af50a5dcdb944723c828915a50f0c3b2 (patch) | |
tree | f32b59b62f2c3163e55f6c5a58864662148c245f /net/mac802154/util.c | |
parent | ddd9ee7cda122ac55571b8b11b51ef1e71918b63 (diff) | |
download | lwn-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.c | 1 |
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; |