[PATCH] net: moxa: fix TX overrun memory leak

David Miller davem at davemloft.net
Sun Jun 7 19:22:02 PDT 2015


From: Jonas Jensen <jonas.jensen at gmail.com>
Date: Fri,  5 Jun 2015 15:46:18 +0200

>  	desc = priv->tx_desc_base + (TX_REG_DESC_SIZE * tx_head);
>  
> -	spin_lock_irq(&priv->txlock);
> +	if (CIRC_SPACE(tx_head, tx_tail, TX_DESC_NUM) == 0) {
> +		priv->stats.tx_dropped++;
> +		goto out_unlock;
> +	}

You can't do this.

Whatever code creates this condition _must_ stop the TX queue
so that the core netdevice transmit layer does not call your
transmit method.



More information about the linux-arm-kernel mailing list