Re: [PATCH] net: korina: remove busy skb free

From: Julian Wiedmann
Date: Mon Dec 14 2020 - 05:05:22 EST


On 13.12.20 18:20, Vincent Stehlé wrote:
> The ndo_start_xmit() method must not attempt to free the skb to transmit
> when returning NETDEV_TX_BUSY. Fix the korina_send_packet() function
> accordingly.
>
> Fixes: ef11291bcd5f ("Add support the Korina (IDT RC32434) Ethernet MAC")
> Signed-off-by: Vincent Stehlé <vincent.stehle@xxxxxxxxxxx>
> Cc: David S. Miller <davem@xxxxxxxxxxxxx>
> Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
> Cc: Florian Fainelli <florian.fainelli@xxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/korina.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/korina.c b/drivers/net/ethernet/korina.c
> index bf48f0ded9c7d..9d84191de6824 100644
> --- a/drivers/net/ethernet/korina.c
> +++ b/drivers/net/ethernet/korina.c
> @@ -216,7 +216,6 @@ static int korina_send_packet(struct sk_buff *skb, struct net_device *dev)
> netif_stop_queue(dev);
> else {
> dev->stats.tx_dropped++;
> - dev_kfree_skb_any(skb);
> spin_unlock_irqrestore(&lp->lock, flags);
>
> return NETDEV_TX_BUSY;
>

As this skb is returned to the stack (and not dropped), the tx_dropped
statistics increment looks bogus too.