Message ID | 20220120112115.448077-6-miquel.raynal@bootlin.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ieee802154: A bunch of fixes | expand |
Hi, On Thu, 20 Jan 2022 at 06:21, Miquel Raynal <miquel.raynal@bootlin.com> wrote: > > Upon error the ieee802154_xmit_complete() helper is not called. Only > ieee802154_wake_queue() is called manually. We then leak the skb > structure. > > Free the skb structure upon error before returning. > > Fixes: ded845a781a5 ("ieee802154: Add CA8210 IEEE 802.15.4 device driver") > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > --- > drivers/net/ieee802154/ca8210.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c > index ece6ff6049f6..8e69441f1fff 100644 > --- a/drivers/net/ieee802154/ca8210.c > +++ b/drivers/net/ieee802154/ca8210.c > @@ -1772,6 +1772,7 @@ static int ca8210_async_xmit_complete( > ); > if (status != MAC_TRANSACTION_OVERFLOW) { > ieee802154_wake_queue(priv->hw); > + dev_kfree_skb_any(priv->tx_skb); > return 0; first free() then wake(). - Alex
diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c index ece6ff6049f6..8e69441f1fff 100644 --- a/drivers/net/ieee802154/ca8210.c +++ b/drivers/net/ieee802154/ca8210.c @@ -1772,6 +1772,7 @@ static int ca8210_async_xmit_complete( ); if (status != MAC_TRANSACTION_OVERFLOW) { ieee802154_wake_queue(priv->hw); + dev_kfree_skb_any(priv->tx_skb); return 0; } }
Upon error the ieee802154_xmit_complete() helper is not called. Only ieee802154_wake_queue() is called manually. We then leak the skb structure. Free the skb structure upon error before returning. Fixes: ded845a781a5 ("ieee802154: Add CA8210 IEEE 802.15.4 device driver") Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/net/ieee802154/ca8210.c | 1 + 1 file changed, 1 insertion(+)