Hi, On Thu, May 12, 2022 at 10:34 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > In order to be able to detect possible conflicts between the net > interface core and the ieee802154 core, let's add a warning in the slow > path: we want to be sure that whenever we start an asynchronous MLME > transmission (which can be fully asynchronous) the net core somehow > agrees that this transmission is possible, ie. the device was not > stopped. Warning in this case would allow us to track down more easily > possible issues with the MLME logic if we ever get reports. > > Unlike in the hot path, such a situation cannot be handled. > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > --- > net/mac802154/tx.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c > index a3c9f194c025..d61b076239c3 100644 > --- a/net/mac802154/tx.c > +++ b/net/mac802154/tx.c > @@ -132,6 +132,25 @@ int ieee802154_sync_and_hold_queue(struct ieee802154_local *local) > return ret; > } > > +static bool ieee802154_netif_is_down(struct ieee802154_local *local) > +{ > + struct ieee802154_sub_if_data *sdata; > + bool is_down = false; > + > + rcu_read_lock(); > + list_for_each_entry_rcu(sdata, &local->interfaces, list) { > + if (!sdata->dev) > + continue; > + > + is_down = !(sdata->dev->flags & IFF_UP); Is there not a helper for this flag? - Alex