]> www.infradead.org Git - users/hch/xfs.git/commitdiff
net: ethernet: lantiq_etop: fix double free in detach
authorAleksander Jan Bajkowski <olek2@wp.pl>
Mon, 8 Jul 2024 20:58:26 +0000 (22:58 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 10 Jul 2024 02:02:07 +0000 (19:02 -0700)
The number of the currently released descriptor is never incremented
which results in the same skb being released multiple times.

Fixes: 504d4721ee8e ("MIPS: Lantiq: Add ethernet driver")
Reported-by: Joe Perches <joe@perches.com>
Closes: https://lore.kernel.org/all/fc1bf93d92bb5b2f99c6c62745507cc22f3a7b2d.camel@perches.com/
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20240708205826.5176-1-olek2@wp.pl
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/lantiq_etop.c

index 5352fee62d2b8f1db58996bd01041c570e8e3d0c..0b99828043708e83215aac7f015e3ba78762c36a 100644 (file)
@@ -217,9 +217,9 @@ ltq_etop_free_channel(struct net_device *dev, struct ltq_etop_chan *ch)
        if (ch->dma.irq)
                free_irq(ch->dma.irq, priv);
        if (IS_RX(ch->idx)) {
-               int desc;
+               struct ltq_dma_channel *dma = &ch->dma;
 
-               for (desc = 0; desc < LTQ_DESC_NUM; desc++)
+               for (dma->desc = 0; dma->desc < LTQ_DESC_NUM; dma->desc++)
                        dev_kfree_skb_any(ch->skb[ch->dma.desc]);
        }
 }