Merge tag 'for_linus-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jwesse...
[linux-2.6-block.git] / drivers / net / virtio_net.c
index 019da012669fe724ecb0bf37f31df7da10c7df2f..4de2760c593762634f0925cf9ccb1ab9c7f2c111 100644 (file)
@@ -625,12 +625,13 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
 
        /* This can happen with OOM and indirect buffers. */
        if (unlikely(capacity < 0)) {
-               if (net_ratelimit()) {
-                       if (likely(capacity == -ENOMEM)) {
+               if (likely(capacity == -ENOMEM)) {
+                       if (net_ratelimit()) {
                                dev_warn(&dev->dev,
                                         "TX queue failure: out of memory\n");
                        } else {
-                               dev->stats.tx_fifo_errors++;
+                       dev->stats.tx_fifo_errors++;
+                       if (net_ratelimit())
                                dev_warn(&dev->dev,
                                         "Unexpected TX queue failure: %d\n",
                                         capacity);