Message ID | 20220117115440.60296-27-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | IEEE 802.15.4 scan support | expand |
Hi, On Mon, 17 Jan 2022 at 06:55, Miquel Raynal <miquel.raynal@bootlin.com> wrote: > > 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. > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > --- > net/mac802154/tx.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c > index 18ee6fcfcd7f..de5ecda80472 100644 > --- a/net/mac802154/tx.c > +++ b/net/mac802154/tx.c > @@ -112,6 +112,8 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb) > static netdev_tx_t > ieee802154_hot_tx(struct ieee802154_local *local, struct sk_buff *skb) > { > + WARN_ON(mac802154_queue_is_stopped(local)); > + we should do a WARN_ON_ONCE() in this hot function. - Alex
Hi Alexander, alex.aring@gmail.com wrote on Mon, 17 Jan 2022 18:14:17 -0500: > Hi, > > On Mon, 17 Jan 2022 at 06:55, Miquel Raynal <miquel.raynal@bootlin.com> wrote: > > > > 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. > > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > --- > > net/mac802154/tx.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c > > index 18ee6fcfcd7f..de5ecda80472 100644 > > --- a/net/mac802154/tx.c > > +++ b/net/mac802154/tx.c > > @@ -112,6 +112,8 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb) > > static netdev_tx_t > > ieee802154_hot_tx(struct ieee802154_local *local, struct sk_buff *skb) > > { > > + WARN_ON(mac802154_queue_is_stopped(local)); > > + > > we should do a WARN_ON_ONCE() in this hot function. Sure! Thanks, Miquèl
diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c index 18ee6fcfcd7f..de5ecda80472 100644 --- a/net/mac802154/tx.c +++ b/net/mac802154/tx.c @@ -112,6 +112,8 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb) static netdev_tx_t ieee802154_hot_tx(struct ieee802154_local *local, struct sk_buff *skb) { + WARN_ON(mac802154_queue_is_stopped(local)); + return ieee802154_tx(local, skb); }
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. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- net/mac802154/tx.c | 2 ++ 1 file changed, 2 insertions(+)