]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY
authorZhang Changzhong <zhangchangzhong@huawei.com>
Fri, 21 Oct 2022 01:32:24 +0000 (09:32 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Nov 2022 14:49:18 +0000 (23:49 +0900)
[ Upstream commit 9c1eaa27ec599fcc25ed4970c0b73c247d147a2b ]

The ndo_start_xmit() method must not free skb when returning
NETDEV_TX_BUSY, since caller is going to requeue freed skb.

Fixes: 504d4721ee8e ("MIPS: Lantiq: Add ethernet driver")
Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/lantiq_etop.c

index a167fd7ee13e0dcb36ce40fa6ba435c1883e348b..1a2c1a309d223f1ed31b22d7c735a49e9137c271 100644 (file)
@@ -488,7 +488,6 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
        len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
 
        if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) {
-               dev_kfree_skb_any(skb);
                netdev_err(dev, "tx ring full\n");
                netif_tx_stop_queue(txq);
                return NETDEV_TX_BUSY;