On Mon, 21 Jun 2010 06:03:16 pm Michael S. Tsirkin wrote:
> On Mon, Jun 21, 2010 at 12:13:49PM +0930, Rusty Russell wrote:
> > -           return NETDEV_TX_BUSY;
> > +           kfree_skb(skb);
> > +           return NETDEV_TX_OK;
> 
> If we do so, let's increment the dropped counter and/or error counter?

Yep, here's the extra change:

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -571,14 +571,16 @@ static netdev_tx_t start_xmit(struct sk_
        /* This can happen with OOM and indirect buffers. */
        if (unlikely(capacity < 0)) {
                if (net_ratelimit()) {
-                       if (likely(capacity == -ENOMEM))
+                       if (likely(capacity == -ENOMEM)) {
                                dev_warn(&dev->dev,
                                         "TX queue failure: out of memory\n");
-                       else
+                       } else {
+                               dev->stats.tx_fifo_errors++;
                                dev_warn(&dev->dev,
                                         "Unexpected TX queue failure: %d\n",
                                         capacity);
                }
+               dev->stats.tx_dropped++;
                kfree_skb(skb);
                return NETDEV_TX_OK;
        }
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to