]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Jul 2024 09:40:53 +0000 (11:40 +0200)
[ Upstream commit e1533b6319ab9c3a97dad314dd88b3783bc41b69 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/lantiq_etop.c

index 98aa172da051f5da02b95ce929c7d6905c5b02a7..932796080c7f7f2ef59debc1691a524de64e9bde 100644 (file)
@@ -213,9 +213,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]);
        }
 }