Re: [GIT] Networking

Torsten Kaiser
2012-04-03T19:23:57Z

On Tue, Apr 3, 2012 at 2:34 AM, David Miller <davem@davemloft.net> wrote:
> 7) virtio_net accidently uses net_ratelimit() not only on the kernel
>   warning but also the statistic bump, fix from Rick Jones.

I just saw this commit land in Linus tree and I think its got its
parentheses wrong.

Old code (minus the dev_warn()-messages):
if (net_ratelimit()) {
if (likely(capacity == -ENOMEM)) {
dev_warn(...);
} else {
dev->stats.tx_fifo_errors++;
dev_warn(...);
}
}

New code (minus the dev_warn()-messages):
if (likely(capacity == -ENOMEM)) {
if (net_ratelimit()) {
dev_warn(...);
} else {
dev->stats.tx_fifo_errors++;
if (net_ratelimit())
dev_warn(...);
}
}

Now it will count -ENOMEM errors that were not logged..

I think, intended was:
if (likely(capacity == -ENOMEM)) {
if (net_ratelimit()) {
dev_warn(...);
}
} else {
dev->stats.tx_fifo_errors++;
if (net_ratelimit())
dev_warn(...);
}

HTH, Torsten