Don't consume skb if virtqueue_add return -ENOSPC. Signed-off-by: Angus Chen <angus.chen@xxxxxxxxxxxxxxx> --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index fb5e68ed3ec2..4096ea3d2eb6 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1980,7 +1980,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) qnum, err); dev->stats.tx_dropped++; dev_kfree_skb_any(skb); - return NETDEV_TX_OK; + return (err == -ENOSPC) ? NETDEV_TX_BUSY : NETDEV_TX_OK; } /* Don't wait up for transmitted skbs to be freed. */ -- 2.25.1